配置¶
配置目录 必须包含一个名为 conf.py 的文件。此文件(包含 Python 代码)被称为“构建配置文件”,其中包含(几乎)所有自定义 Sphinx 输入和输出行为所需的配置。
可以将可选文件 docutils.conf 添加到配置目录,以调整 Docutils 配置,除非被 Sphinx 覆盖或设置。
需要注意的要点
如果没有另行说明,值必须是字符串,并且其默认值为空字符串。
术语“完全限定名称”(FQN)指的是一个字符串,该字符串命名模块内可导入的 Python 对象;例如,完全限定名称
"sphinx.builders.Builder"指的是sphinx.builders模块中的Builder类。文档名称使用
/作为路径分隔符,并且不包含文件名扩展名。
在允许使用 glob 样式模式的地方,您可以使用标准 shell 构造(
*、?、[...]和[!...]),但这些构造均不匹配斜杠 (/)。双星号**可用于匹配任何字符序列, *包括* 斜杠。
提示
配置文件在构建时作为 Python 代码执行(使用 importlib.import_module(),并将当前目录设置为 配置目录),因此可以执行任意复杂的代码。
然后,Sphinx 从文件的命名空间中读取简单名称作为其配置。通常,配置值应为简单字符串、数字或简单值的列表或字典。
配置命名空间的内容会被 pickle 序列化(以便 Sphinx 可以了解配置何时更改),因此它可能不包含无法 pickle 序列化的值 – 如果适用,请使用 del 从命名空间中删除它们。模块会自动删除,因此无需删除导入的模块。
项目信息¶
- project¶
- 类型:
str- 默认值:
'项目名称未设置'
文档化项目的名称。示例
project = 'Thermidor'
- author¶
- 类型:
str- 默认值:
'作者姓名未设置'
项目的作者。示例
author = 'Joe Bloggs'
- copyright¶
- project_copyright¶
- 类型:
str | Sequence[str]- 默认值:
''
版权声明。允许的样式如下,其中 “YYYY” 代表四位数字年份。
copyright = 'YYYY'copyright = 'YYYY, 作者姓名'copyright = 'YYYY 作者姓名'copyright = 'YYYY-YYYY, 作者姓名'copyright = 'YYYY-YYYY 作者姓名'
如果字符串
'%Y'出现在版权行中,它将被替换为当前的四位数字年份。例如copyright = '%Y'copyright = '%Y, 作者姓名'copyright = 'YYYY-%Y, 作者姓名'
3.5 版本新增:
project_copyright别名。7.1 版本更改: 该值现在可以是上述形式的版权声明序列,每个声明将显示在各自的行中。
8.1 版本更改: 版权声明支持
'%Y'占位符。
常规配置¶
- needs_sphinx¶
- 类型:
str- 默认值:
''
设置构建项目所需的最低 Sphinx 版本。格式应为
'major.minor'版本字符串,例如'1.1'。如果运行的 Sphinx 版本过旧,Sphinx 将会将其版本与之进行比较,并拒绝构建项目。默认情况下,没有最低版本要求。1.0 版本新增。
1.4 版本更改: 允许使用
'major.minor.micro'版本字符串。
- extensions¶
- 类型:
list[str]- 默认值:
[]
字符串列表,这些字符串是 Sphinx 扩展 的模块名称。这些可以是与 Sphinx 捆绑在一起的扩展(命名为
sphinx.ext.*),也可以是自定义的第一方或第三方扩展。要使用第三方扩展,您必须确保已安装该扩展,并将其包含在
extensions列表中,如下所示extensions = [ ... 'numpydoc', ]
对于第一方扩展,有两种选择。配置文件本身可以是一个扩展;为此,您只需要在其中提供一个
setup()函数。否则,您必须确保您的自定义扩展是可导入的,并且位于 Python 路径中的目录中。在修改
sys.path时,请确保使用绝对路径。如果您的自定义扩展位于相对于 配置目录 的目录中,请使用pathlib.Path.resolve(),如下所示import sys from pathlib import Path sys.path.append(str(Path('sphinxext').resolve())) extensions = [ ... 'extname', ]
上述目录结构如下所示
<project directory>/ ├── conf.py └── sphinxext/ └── extname.py
- needs_extensions¶
- 类型:
dict[str, str]- 默认值:
{}
如果设置,则此值必须是一个字典,用于指定
extensions中扩展的版本要求。版本字符串应为'major.minor'形式。不必为所有扩展指定要求,只需为您要检查的扩展指定即可。示例needs_extensions = { 'sphinxcontrib.something': '1.5', }
这要求扩展在
setup()函数中声明其版本。有关更多详细信息,请参阅 Sphinx API。1.3 版本新增。
- manpages_url¶
- 类型:
str- 默认值:
''
用于交叉引用
manpage角色的 URL。如果将其定义为https://manpages.debian.org/{path},则:manpage:`man(1)`角色将链接到 <https://manpages.debian.org/man(1)>。可用的模式有页面手册页 (
man)章节手册章节 (
1)路径原始手册页和指定的章节 (
man(1))
这也支持指定为
man.1的手册页。# To use manpages.debian.org: manpages_url = 'https://manpages.debian.org/{path}' # To use man7.org: manpages_url = 'https://man7.org/linux/man-pages/man{section}/{page}.{section}.html' # To use linux.die.net: manpages_url = 'https://linux.die.net/man/{section}/{page}' # To use helpmanual.io: manpages_url = 'https://helpmanual.io/man{section}/{page}'
1.7 版本新增。
- today¶
- today_fmt¶
这些值确定如何格式化当前日期,该日期用作
|today|默认替换 的替换项。如果您将
today设置为非空值,则使用该值。否则,将使用
time.strftime()和today_fmt中给出的格式来格式化当前时间。
today的默认值为'',today_fmt的默认值为'%b %d, %Y'(或者,如果启用了language的翻译,则为所选区域设置的等效格式)。
图形编号选项¶
- numfig¶
- 类型:
bool- 默认值:
False
如果为
True,则如果图形、表格和代码块带有标题,则会自动编号。启用numref角色。目前仅 HTML 和 LaTeX 构建器遵守此设置。注意
无论是否启用此选项,LaTeX 构建器始终会分配编号。
1.3 版本新增。
- numfig_format¶
- 类型:
dict[str, str]- 默认值:
{}
一个字典,将
'figure'、'table'、'code-block'和'section'映射到用于图形编号格式的字符串。标记%s将被替换为图形编号。默认值是
numfig_format = { 'code-block': 'Listing %s', 'figure': 'Fig. %s', 'section': 'Section', 'table': 'Table %s', }
1.3 版本新增。
- numfig_secnum_depth¶
- 类型:
int- 默认值:
1
如果设置为
0,则图形、表格和代码块将从1开始连续编号。如果为
1,则编号将为x.1、x.2、…,其中x代表节号。(如果没有顶级节,则不会添加前缀)。这自然仅在通过toctree指令的:numbered:选项激活节编号时适用。如果为
2,则编号将为x.y.1、x.y.2、…,其中x代表节号,y代表子节号。如果直接位于节下,则不会有y.前缀,并且如果没有顶级节,则不会添加前缀。可以使用任何其他正整数,遵循上述规则。
1.3 版本新增。
1.7 版本更改: 如果
numfig设置为True,则 LaTeX 构建器会遵守此设置。
高亮选项¶
- highlight_language¶
- 类型:
str- 默认值:
'default'
用于突出显示源代码的默认语言。默认值为
'default',如果突出显示为 Python 代码失败,则会抑制警告。该值应为有效的 Pygments 词法分析器名称,有关更多详细信息,请参阅 显示代码示例。
0.5 版本新增。
1.4 版本更改: 默认值现在为
'default'。
- highlight_options¶
- 类型:
dict[str, dict[str, Any]]- 默认值:
{}
一个字典,将 Pygments 词法分析器名称映射到其选项。这些是词法分析器特定的;对于每个词法分析器理解的选项,请参阅 Pygments 文档。
示例
highlight_options = { 'default': {'stripall': True}, 'php': {'startinline': True}, }
1.3 版本新增。
3.5 版本更改: 允许为多个词法分析器配置高亮选项。
- pygments_style¶
- 类型:
str- 默认值:
'sphinx'
用于 Pygments 突出显示源代码的样式名称。如果未设置,则为 HTML 输出选择主题的默认样式或
'sphinx'。0.3 版本更改: 如果该值是自定义 Pygments 样式类的完全限定名称,则将其用作自定义样式。
HTTP 请求选项¶
- tls_verify¶
- 类型:
bool- 默认值:
True
如果为 True,则 Sphinx 验证服务器证书。
1.5 版本新增。
- tls_cacerts¶
- 类型:
str | dict[str, str]- 默认值:
''
CA 证书文件的路径或包含证书的目录的路径。这也允许使用字典将主机名映射到证书文件路径。证书用于验证服务器证书。
1.5 版本新增。
- user_agent¶
- 类型:
str- 默认值:
'Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0 Sphinx/X.Y.Z'
设置 Sphinx 用于 HTTP 请求的 User-Agent。
在 2.3 版本中添加。
国际化选项¶
这些选项会影响 Sphinx 的本地语言支持。有关详细信息,请参阅关于 国际化 的文档。
- language¶
- 类型:
str- 默认值:
'en'
文档编写所用语言的代码。Sphinx 自动生成的任何文本都将使用该语言。此外,Sphinx 将尝试使用从
locale_dirs获取的翻译集替换文档中的各个段落。Sphinx 将搜索由figure_language_filename命名的特定于语言的图片(例如,myfigure.png的德语版本在默认设置下将为myfigure.de.png),并将其替换为原始图片。在 LaTeX 构建器中,将选择合适的语言作为 Babel 包的选项。0.5 版本新增。
在 1.4 版本中变更: 支持图片替换
在 5.0 版本中变更: 默认值现在为
'en'(之前为None)。Sphinx 当前支持的语言包括
ar– 阿拉伯语bg– 保加利亚语bn– 孟加拉语ca– 加泰罗尼亚语cak– 卡克奇克尔语cs– 捷克语cy– 威尔士语da– 丹麦语de– 德语el– 希腊语en– 英语 (默认)eo– 世界语es– 西班牙语et– 爱沙尼亚语eu– 巴斯克语fa– 伊朗语fi– 芬兰语fr– 法语he– 希伯来语hi– 印地语hi_IN– 印地语 (印度)hr– 克罗地亚语hu– 匈牙利语id– 印尼语it– 意大利语ja– 日语ko– 韩语lt– 立陶宛语lv– 拉脱维亚语mk– 马其顿语nb_NO– 书面挪威语ne– 尼泊尔语nl– 荷兰语pl– 波兰语pt– 葡萄牙语pt_BR– 巴西葡萄牙语pt_PT– 欧洲葡萄牙语ro– 罗马尼亚语ru– 俄语si– 僧伽罗语sk– 斯洛伐克语sl– 斯洛文尼亚语sq– 阿尔巴尼亚语sr– 塞尔维亚语sr@latin– 塞尔维亚语 (拉丁文)sr_RS– 塞尔维亚语 (西里尔文)sv– 瑞典语ta– 泰米尔语te– 泰卢固语tr– 土耳其语uk_UA– 乌克兰语ur– 乌尔都语vi– 越南语zh_CN– 简体中文zh_TW– 繁体中文
- locale_dirs¶
- 类型:
list[str]- 默认值:
['locales']
在其中搜索其他消息目录的目录(请参阅
language),相对于源目录。此路径上的目录由gettext模块搜索。内部消息从
sphinx的文本域中获取;因此,如果将目录./locales添加到此设置,则消息目录(使用 msgfmt 从.po格式编译)必须位于./locales/language/LC_MESSAGES/sphinx.mo中。各个文档的文本域取决于gettext_compact。注意
sphinx-build的-v 选项对于检查locale_dirs设置是否按预期工作非常有用。如果未找到消息目录,则会发出调试消息。0.5 版本新增。
在 1.5 版本中变更: 使用
locales目录作为默认值
- gettext_allow_fuzzy_translations¶
- 类型:
bool- 默认值:
False
如果为 True,则消息目录中的“模糊”消息将用于翻译。
在 4.3 版本中添加。
- gettext_compact¶
- 类型:
bool | str- 默认值:
True
如果为
True,则文档的文本域是其文档名,如果它是顶级项目文件,否则是其基本目录。如果为
False,则文档的文本域是完整的文档名。如果设置为字符串,则每个文档的文本域都设置为此字符串,使所有文档都使用单个文本域。
使用
gettext_compact = True,文档markup/code.rst最终位于markup文本域中。如果此选项设置为False,则为markup/code。如果此选项设置为'sample',则为sample。在 1.1 版本中添加。
在 3.3 版本中变更: 允许字符串值。
- gettext_uuid¶
- 类型:
bool- 默认值:
False
如果为
True,Sphinx 会在消息目录中生成 UUID 信息以进行版本跟踪。它用于为
.pot文件中的每个 msgid 添加 UUID 行。计算新 msgid 和先前保存的旧 msgid 之间的相似度。(此计算可能需要很长时间。)
提示
如果要加速计算,可以使用第三方软件包 (Levenshtein),方法是运行 pip install levenshtein。
1.3 版本新增。
- gettext_location¶
- 类型:
bool- 默认值:
True
如果为
True,Sphinx 会在消息目录中生成消息的位置信息。1.3 版本新增。
- gettext_auto_build¶
- 类型:
bool- 默认值:
True
如果为
True,Sphinx 会为每个翻译目录文件构建一个.mo文件。1.3 版本新增。
- gettext_additional_targets¶
- 类型:
set[str] | Sequence[str]- 默认值:
[]
为某些元素类型启用
gettext翻译。示例gettext_additional_targets = {'literal-block', 'image'}
支持以下元素类型
'index'– 索引术语'literal-block'– 文本块 (::注释和code-block指令)'doctest-block'– doctest 块'raw'– 原始内容'image'– 图像/图形 uri
1.3 版本新增。
在 4.0 版本中变更: 默认情况下翻译图像的 alt 文本。
在 7.4 版本中变更: 允许并首选 set 类型。
- figure_language_filename¶
- 类型:
str- 默认值:
'{root}.{language}{ext}'
特定于语言的图片的文件名格式。可用的格式令牌包括
{root}: 文件名,包括任何路径组件,但不包括文件扩展名。例如:images/filename。{path}: 文件名的目录路径组件,如果非空,则带有尾部斜杠。例如:images/。{basename}: 文件名,不带目录路径或文件扩展名组件。例如:filename。{ext}: 文件扩展名。例如:.png。{language}: 翻译语言。例如:en。{docpath}: 当前文档的目录路径组件,如果非空,则带有尾部斜杠。例如:dirname/。
默认情况下,图像指令
.. image:: images/filename.png,使用位于images/filename.png的图像,将使用特定于语言的图片文件名images/filename.en.png。如果
figure_language_filename设置如下,则特定于语言的图片文件名将改为images/en/filename.png。figure_language_filename = '{path}{language}/{basename}{ext}'
在 1.4 版本中添加。
在 1.5 版本中变更: 添加了
{path}和{basename}令牌。在 3.2 版本中变更: 添加了
{docpath}令牌。
- translation_progress_classes¶
- 类型:
bool | 'translated' | 'untranslated'- 默认值:
False
控制是否添加类来指示翻译进度,以及添加哪些类。此设置可能仅供文档翻译人员使用,以便快速指示已翻译和未翻译的内容。
True将
translated和untranslated类添加到所有具有可翻译内容的节点。'translated'仅添加
translated类。'untranslated'仅添加
untranslated类。False不添加任何类来指示翻译进度。
在 7.1 版本中添加。
标记选项¶
- default_role¶
- 类型:
str- 默认值:
None
要用作默认角色的 reStructuredText 角色(内置角色或 Sphinx 扩展角色)的名称,即用于标记为
`像这样`的文本。可以将其设置为'py:obj',以使`filter`成为对 Python 函数 “filter” 的交叉引用。始终可以使用标准 reStructuredText default-role 指令在单个文档中设置默认角色。
在 0.4 版本中添加。
- keep_warnings¶
- 类型:
bool- 默认值:
False
将警告保留为呈现文档中的“系统消息”段落。无论此设置如何,当运行 sphinx-build 时,警告始终会写入标准错误流。
0.5 版本新增。
- option_emphasise_placeholders¶
- 类型:
bool- 默认值:
False
启用后,强调
option指令中的占位符。要显示文字花括号,请使用反斜杠 (\{) 进行转义。例如,option_emphasise_placeholders=True和.. option:: -foption={TYPE}将呈现为强调TYPE。在 5.1 版本中添加。
- primary_domain¶
- 类型:
str- 默认值:
'py'
默认 域 的名称。也可以为
None以禁用默认域。默认值为'py',用于 Python 域。其他域中的对象(无论域名是显式给出,还是由
default-domain指令选择)在命名时将显式地预先添加域名(例如,当默认域为 C 时,Python 函数将被命名为 “Python 函数”,而不仅仅是 “函数”)。示例primary_domain = 'cpp'
1.0 版本新增。
- rst_epilog¶
- 类型:
str- 默认值:
''
一个 reStructuredText 字符串,它将包含在读取的每个源文件的末尾。这是一个添加应在每个文件中可用的替换项的位置(另一个是
rst_prolog)。示例rst_epilog = """ .. |psf| replace:: Python Software Foundation """
在 0.6 版本中添加。
- rst_prolog¶
- 类型:
str- 默认值:
''
一个 reStructuredText 字符串,它将包含在读取的每个源文件的开头。这是一个添加应在每个文件中可用的替换项的位置(另一个是
rst_epilog)。示例rst_prolog = """ .. |psf| replace:: Python Software Foundation """
1.0 版本新增。
- show_authors¶
- 类型:
bool- 默认值:
False
一个布尔值,用于决定
codeauthor和sectionauthor指令是否在构建的文件中产生任何输出。
- trim_footnote_reference_space¶
- 类型:
bool- 默认值:
False
删除脚注参考之前的空格,这些空格对于 reStructuredText 解析器识别脚注是必需的,但在输出中看起来不太美观。
在 0.6 版本中添加。
数学选项¶
这些选项控制数学标记和符号。
- math_eqref_format¶
- 类型:
str- 默认值:
'({number})'
用于格式化对公式的引用的标签的字符串。
{number}占位符代表公式编号。示例:
'Eq.{number}'呈现为,例如,Eq.10。1.7 版本新增。
- math_number_all¶
- 类型:
bool- 默认值:
False
强制所有显示的公式都编号。示例
math_number_all = True
在 1.4 版本中添加。
- math_numfig¶
- 类型:
bool- 默认值:
True
如果为
True,则当启用numfig时,显示的数学公式将在页面之间编号。numfig_secnum_depth设置将被遵循。必须使用eq角色,而不是numref角色来引用公式编号。1.7 版本新增。
- math_numsep¶
- 类型:
str- 默认值:
'.'
当启用
numfig且numfig_secnum_depth为正数时,定义节号和公式编号之间分隔符的字符串。示例:
'-'呈现为1.2-3。在 7.4 版本中添加。
挑剔模式选项¶
- nitpicky¶
- 类型:
bool- 默认值:
False
如果为
True,则启用挑剔模式。在挑剔模式下,Sphinx 将警告所有 找不到目标的引用。建议新项目使用此模式,因为它确保所有引用都指向有效目标。您可以使用
--nitpicky命令行选项临时激活此模式。请参阅nitpick_ignore,了解如何将丢失的引用标记为“已知丢失”。nitpicky = True
1.0 版本新增。
- nitpick_ignore¶
- 类型:
set[tuple[str, str]] | Sequence[tuple[str, str]]- 默认值:
()
当在
“挑剔模式”下生成警告时,应忽略的(warning_type, target)元组的集合或列表。请注意,warning_type应包含域名(如果存在)。示例nitpick_ignore = { ('py:func', 'int'), ('envvar', 'LD_LIBRARY_PATH'), }
在 1.1 版本中添加。
在 6.2 版本中变更: 将允许的容器类型更改为 set、list 或 tuple
- nitpick_ignore_regex¶
- 类型:
set[tuple[str, str]] | Sequence[tuple[str, str]]- 默认值:
()
nitpick_ignore的扩展版本,它改为将warning_type和target字符串解释为正则表达式。请注意,正则表达式必须匹配整个字符串(就像插入了^和$标记一样)。例如,
(r'py:.*', r'foo.*bar\.B.*')将忽略所有以'foo'开头并在其中包含'bar.B'的 python 实体的挑剔警告,例如('py:const', 'foo_package.bar.BAZ_VALUE')或('py:class', 'food.bar.Barman')。在 4.1 版本中添加。
在 6.2 版本中变更: 将允许的容器类型更改为 set、list 或 tuple
对象签名选项¶
- add_function_parentheses¶
- 类型:
bool- 默认值:
True
一个布尔值,用于决定是否将圆括号附加到函数和方法角色文本(例如
:func:`input`的内容)以表示该名称是可调用的。
- maximum_signature_line_length¶
- 类型:
int | None- 默认值:
None
如果签名的字符长度超过设置的数字,则签名中的每个参数将显示在单独的逻辑行上。
当为
None时,没有最大长度,并且整个签名将显示在单个逻辑行上。“逻辑行”类似于硬换行符——构建器或主题可以选择“软换行”单个逻辑行,并且此设置不会影响该行为。
域可以提供选项来禁止对单个对象指令进行任何硬换行,例如在 C、C++ 和 Python 域中看到的(例如
py:function:single-line-parameter-list)。在 7.1 版本中添加。
- strip_signature_backslash¶
- 类型:
bool- 默认值:
False
启用反斜杠剥离后,域指令中每次出现的
\\都将更改为\,即使在字符串文字中也是如此。这是 3.0 版本之前的行为,将此变量设置为True将恢复该行为。在 3.0 版本中添加。
- toc_object_entries¶
- 类型:
bool- 默认值:
True
为域对象(例如,函数、类、属性等)创建目录条目。
在 5.2 版本中添加。
- toc_object_entries_show_parents¶
- 类型:
'domain' | 'hide' | 'all'- 默认值:
'domain'
一个字符串,用于确定域对象(函数、类、属性等)在其目录条目中的显示方式。
使用
'domain'以允许域确定要显示的适当父级数量。例如,Python 域将显示Class.method()和function(),而省略module.级别的父级。使用
'hide'仅显示元素的名称,而不显示任何父级(即method())。使用
'all'显示对象的完全限定名称(即module.Class.method()),显示所有父级。在 5.2 版本中添加。
源文件选项¶
- exclude_patterns¶
- 类型:
Sequence[str]- 默认值:
()
在查找源文件时应排除的 glob 样式模式 列表。它们与相对于源目录的源文件名进行匹配,在所有平台上都使用斜杠作为目录分隔符。
exclude_patterns优先于include_patterns。模式示例
'library/xml.rst'– 忽略library/xml.rst文件'library/xml'– 忽略library/xml目录'library/xml*'– 忽略所有以library/xml开头的文件和目录'**/.git'– 忽略所有.git目录'Thumbs.db'– 忽略所有Thumbs.db文件
在
html_static_path和html_extra_path中查找静态文件时,也会参考exclude_patterns。1.0 版本新增。
- include_patterns¶
- 类型:
Sequence[str]- 默认值:
('**',)
用于查找源文件的 glob 风格模式列表。 这些模式相对于源目录下的源文件名进行匹配,并在所有平台上使用斜杠作为目录分隔符。 默认情况下,所有文件都从源目录递归包含。
exclude_patterns优先级高于include_patterns。模式示例
'**'– 源目录和子目录中的所有文件,递归地'library/xml'– 仅library/xml目录'library/xml*'– 所有以library/xml开头的文件和目录'**/doc'– 所有doc目录(如果文档与源文件位于同一位置,则此项可能很有用)
在 5.1 版本中添加。
- master_doc¶
- root_doc¶
- 类型:
str- 默认值:
'index'
Sphinx 基于源文件中包含的
toctree指令构建文档树。 此设置包含主toctree指令的文档名称,因此也是整个树的根。 示例master_doc = 'contents'
在版本 2.0 中变更: 默认值为
'index'(之前为'contents')。在版本 4.0 中新增:
root_doc别名。
- source_encoding¶
- 类型:
str- 默认值:
'utf-8-sig'
所有源文件的文件编码。 推荐的编码是
'utf-8-sig'。0.5 版本新增。
- source_suffix¶
- 类型:
dict[str, str] | Sequence[str] | str- 默认值:
{'.rst': 'restructuredtext'}
将源文件的文件扩展名(后缀)映射到其文件类型的字典。 Sphinx 认为
source_suffix中带有后缀的所有文件都是源文件。 示例source_suffix = { '.rst': 'restructuredtext', '.txt': 'restructuredtext', '.md': 'markdown', }
默认情况下,Sphinx 仅支持
'restructuredtext'文件类型。 可以使用注册不同源文件解析器的扩展来添加更多文件类型,例如 MyST-Parser。 请参阅扩展的文档以查看它支持的文件类型。如果该值是字符串或字符串序列,则 Sphinx 将认为它们都是
'restructuredtext'文件。注意
文件扩展名必须以点号 (
'.') 开头。在版本 1.3 中变更: 支持文件扩展名列表。
在版本 1.8 中变更: 更改为文件扩展名到文件类型的映射。
智能引号选项¶
- smartquotes¶
- 类型:
bool- 默认值:
True
如果为
True,将使用 智能引号转换 将引号和破折号转换为排版正确的实体。在版本 1.6.6 中新增: 替换现在已移除的
html_use_smartypants。 默认情况下,它适用于除man和text之外的所有构建器(请参阅smartquotes_excludes。)注意
如果位于 配置目录 中的 docutils.conf 文件(或全局
~/.docutils文件)通过相应的 Docutils 选项 *停用* 智能引号,则会无条件地遵守该文件。 但如果它 *启用* 它们,则smartquotes将优先。
- smartquotes_action¶
- 类型:
str- 默认值:
'qDe'
自定义智能引号转换。 请参阅下文了解允许的代码。 默认的
'qDe'将普通 **q**uote 字符",',长破折号和短破折号 **D**ashes---,--和 **e**llipses...转换为智能引号。'q'转换引号
'b'转换反引号引号 (仅
``double'')'B'转换反引号引号 (
``double''和`single')'d'转换破折号(将
--转换为长破折号,将---转换为短破折号)'D'转换破折号(旧式)(将
--转换为短破折号,将---转换为长破折号)'i'转换破折号(反转旧式)(将
--转换为长破折号,将---转换为短破折号)'e'转换省略号
...'w'将
'"'实体转换为'"'
在版本 1.6.6 中新增。
- smartquotes_excludes¶
- 类型:
dict[str, list[str]]- 默认值:
{'languages': ['ja'], 'builders': ['man', 'text']}
控制何时禁用智能引号转换。 允许的键是
'builders'和'languages',值是字符串列表。每个条目都给出了忽略
smartquotes设置并停用智能引号转换的充分条件。 示例smartquotes_excludes = { 'languages': ['ja'], 'builders': ['man', 'text'], }
注意
当前,在调用带有多个目标的 make 时,第一个目标名称是唯一一个针对
'builders'条目进行测试并为所有目标做出决定的名称。 此外,在make html之后执行make text需要以make text SPHINXOPTS="-E"的形式发出,以强制重新解析源文件,因为缓存的文件已转换。 另一方面,直接使用 sphinx-build 不会出现此问题,因为它(在其默认用法中)将解析后的源文件缓存在每个构建器位置。提示
对于给定的构建器(例如
latex),有效地停用(或自定义)智能引号的另一种方法是以这种方式使用makemake latex SPHINXOPTS="-D smartquotes_action="这可以跟随一些
make html而没有问题,这与先前注释中的情况相反。在版本 1.6.6 中新增。
模板选项¶
- template_bridge¶
- 类型:
str- 默认值:
''
一个字符串,其中包含返回
TemplateBridge实例的可调用对象(或仅类)的完全限定名称。 然后,此实例用于渲染 HTML 文档,以及可能的其他构建器(当前为 changes 构建器)的输出。 (请注意,如果要使用 HTML 主题,则必须使模板桥具有主题感知能力。) 示例template_bridge = 'module.CustomTemplateBridge'
警告控制选项¶
- show_warning_types¶
- 类型:
bool- 默认值:
True
将每种警告的类型作为后缀添加到警告消息中。 例如,
WARNING: [...] [index]或WARNING: [...] [toc.circular]。 此设置对于确定要在suppress_warnings列表中包含哪些警告类型很有用。在版本 7.3.0 中新增。
在版本 8.0.0 中变更: 默认值现在为
True。
- suppress_warnings¶
- 类型:
Sequence[str]- 默认值:
()
要抑制任意警告消息的警告代码列表。
在 1.4 版本中添加。
默认情况下,Sphinx 支持以下警告代码
app.add_directiveapp.add_generic_roleapp.add_nodeapp.add_roleapp.add_source_parserconfig.cachedocutilsdownload.not_readableduplicate_declaration.cduplicate_declaration.cppepub.duplicated_toc_entryepub.unknown_project_filesi18n.babeli18n.inconsistent_referencesi18n.not_readablei18n.not_writeableimage.not_readableindexmisc.copy_overwritemisc.highlighting_failureref.anyref.citationref.docref.footnoteref.keywordref.numrefref.optionref.pythonref.refref.termtoc.circulartoc.duplicate_entrytoc.empty_globtoc.excludedtoc.no_titletoc.not_includedtoc.not_readabletoc.secnum
扩展还可以定义自己的警告类型。 第一方
sphinx.ext扩展定义的警告类型是autodocautodoc.import_objectautodoc.mocked_objectautosectionlabel.<document name>autosummaryautosummary.import_cycleintersphinx.external
您可以从这些类型中选择。 您也可以仅给出第一个组件,以排除附加到它的所有警告。
在版本 1.4 中新增:
ref.citation,ref.doc,ref.keyword,ref.numref,ref.option,ref.ref和ref.term。在版本 1.4.2 中新增:
app.add_directive,app.add_generic_role,app.add_node,app.add_role和app.add_source_parser。在版本 1.5 中新增:
misc.highlighting_failure。在版本 1.5.1 中新增:
epub.unknown_project_files。在版本 1.5.2 中新增:
toc.secnum。在版本 1.6 中新增:
ref.footnote,download.not_readable和image.not_readable。在版本 1.7 中新增:
ref.python。在版本 2.0 中新增:
autodoc.import_object。在版本 2.1 中新增:
autosectionlabel.<document name>。在版本 3.1 中新增:
toc.circular。在版本 3.3 中新增:
epub.duplicated_toc_entry。在版本 4.3 中新增:
toc.excluded和toc.not_readable。在版本 4.5 中新增:
i18n.inconsistent_references。在版本 7.1 中新增:
index。在版本 7.3 中新增:
config.cache,intersphinx.external和toc.no_title。在版本 7.4 中新增:
docutils和autosummary.import_cycle。在版本 8.0 中新增:
misc.copy_overwrite。在版本 8.2 中新增:
autodoc.mocked_object,duplicate_declaration.c,duplicate_declaration.cpp,i18n.babel,i18n.not_readable,i18n.not_writeable,ref.any,toc.duplicate_entry,toc.empty_glob和toc.not_included。
构建器选项¶
HTML 输出选项¶
这些选项会影响 HTML 输出。 各种其他构建器都派生自 HTML 输出,并且也使用这些选项。
- html_theme¶
- 类型:
str- 默认值:
'alabaster'
HTML 输出的主题。 请参阅 HTML 主题章节 。
在 0.6 版本中添加。
在版本 1.3 中变更: 默认主题现在为
'alabaster'。
- html_theme_options¶
- 类型:
dict[str, Any]- 默认值:
{}
影响所选主题外观和感觉的选项字典。 这些是特定于主题的。 内置主题 理解的选项在此处 描述 。
在 0.6 版本中添加。
- html_theme_path¶
- 类型:
list[str]- 默认值:
[]
包含自定义主题的路径列表,可以是子目录或 zip 文件。 相对路径被视为相对于 配置目录 的路径。
在 0.6 版本中添加。
- html_style¶
- 类型:
Sequence[str] | str- 默认值:
()
用于 HTML 页面的样式表。 默认情况下使用所选主题提供的样式表。 同名文件必须存在于 Sphinx 的
static/路径中,或者存在于html_static_path中给出的自定义路径之一中。 如果只想添加或覆盖主题中的一些内容,请使用 CSS@import导入主题的样式表。在版本 5.1 中变更: 该值可以是字符串的可迭代对象。
- html_title¶
- 类型:
str- 默认值:
'项目 版本 文档'
使用 Sphinx 自己的模板生成的 HTML 文档的“标题”。 这将附加到单个页面的
<title>标签,并在导航栏中用作“最顶层”元素。
- html_short_title¶
- 类型:
str- 默认值:
- html_title 的值
HTML 文档的较短“标题”。 这用于标题和 HTML 帮助文档中的链接。
在 0.4 版本中添加。
- html_codeblock_linenos_style¶
- 类型:
'inline' | 'table'- 默认值:
'inline'
代码块的行号样式。
'table'使用
<table>标签显示行号'inline'使用
<span>标签显示行号
在版本 3.2 中新增。
在版本 4.0 中变更: 默认值为
'inline'。在版本 4.0 中已弃用。
- html_context¶
- 类型:
dict[str, Any]- 默认值:
{}
要传递到所有页面的模板引擎上下文中的值字典。 也可以使用 sphinx-build 的
--html-define命令行选项将单个值放入此字典中。0.5 版本新增。
- html_logo¶
- 类型:
str- 默认值:
''
如果给定,则这必须是图像文件的名称(相对于 配置目录 的路径),它是文档的徽标,或者是指向徽标图像文件的 URL。 它位于侧边栏的顶部; 因此,其宽度不应超过 200 像素。
在版本 0.4.1 中新增: 图像文件将被复制到
_static目录,但仅当该文件尚不存在于该目录中时。在版本 4.0 中变更: 也接受 URL。
- html_favicon¶
- 类型:
str- 默认值:
''
如果给定,则这必须是图像文件的名称(相对于 配置目录 的路径),它是文档的 网站图标 ,或者是指向网站图标图像文件的 URL。 浏览器使用它作为选项卡、窗口和书签的图标。 它应该是 PNG、SVG、GIF 或 ICO 文件格式的 16x16 像素图标。
示例
html_favicon = 'static/favicon.png'
在版本 0.4 中新增: 图像文件将被复制到
_static,但仅当该文件尚不存在于该目录中时。在版本 4.0 中变更: 也接受网站图标的 URL。
- html_css_files¶
- 类型:
Sequence[str | tuple[str, dict[str, str]]]- 默认值:
[]
CSS 文件列表。 条目必须是 *filename* 字符串或包含 *filename* 字符串和 *attributes* 字典的元组。 *filename* 必须相对于
html_static_path,或带有方案的完整 URI,例如'https://example.org/style.css'。 *attributes* 字典用于<link>标签的属性。示例
html_css_files = [ 'custom.css', 'https://example.com/css/custom.css', ('print.css', {'media': 'print'}), ]
可以将特殊属性 *priority* 设置为整数,以便在较早或较晚的步骤加载 CSS 文件。 有关更多信息,请参阅
Sphinx.add_css_file()。在版本 1.8 中新增。
在版本 3.5 中变更: 支持 *priority* 属性
- html_js_files¶
- 类型:
Sequence[str | tuple[str, dict[str, str]]]- 默认值:
[]
JavaScript 文件列表。 条目必须是 *filename* 字符串或包含 *filename* 字符串和 *attributes* 字典的元组。 *filename* 必须相对于
html_static_path,或带有方案的完整 URI,例如'https://example.org/script.js'。 *attributes* 字典用于<script>标签的属性。示例
html_js_files = [ 'script.js', 'https://example.com/scripts/custom.js', ('custom.js', {'async': 'async'}), ]
作为特殊属性,可以将 *priority* 设置为整数,以便在较早或较晚的步骤加载 JavaScript 文件。 有关更多信息,请参阅
Sphinx.add_js_file()。在版本 1.8 中新增。
在版本 3.5 中变更: 支持 *priority* 属性
- html_static_path¶
- 类型:
list[str]- 默认值:
[]
包含自定义静态文件(例如样式表或脚本文件)的路径列表。 相对路径被视为相对于 配置目录 的路径。 它们在主题的静态文件之后被复制到输出的
_static目录,因此名为default.css的文件将覆盖主题的default.css。由于这些文件并非旨在构建,因此会自动从源文件中排除它们。
注意
出于安全原因,不会复制
html_static_path下的点文件。 如果您想有意复制它们,请将每个文件显式添加到此设置html_static_path = ['_static', '_static/.htaccess']
另一种方法是使用
html_extra_path,它允许复制目录下的点文件。在版本 0.4 中变更:
html_static_path中的路径现在可以包含子目录。在版本 1.0 中变更:
html_static_path中的条目现在可以是单个文件。在版本 1.8 中变更:
html_static_path下的文件将从源文件中排除。
- html_extra_path¶
- 类型:
list[str]- 默认值:
[]
包含与文档不直接相关的额外文件(例如
robots.txt或.htaccess)的路径列表。 相对路径被视为相对于 配置目录 的路径。 它们被复制到输出目录。 它们将覆盖任何同名现有文件。由于这些文件并非旨在构建,因此会自动从源文件中排除它们。
在版本 1.2 中新增。
在 1.4 版本中变更: extra 目录中的点文件将会被复制到输出目录。它在复制额外文件和目录时参考
exclude_patterns,并忽略路径与模式匹配的情况。
- html_last_updated_fmt¶
- 类型:
str- 默认值:
None
如果设置,将使用给定的
strftime()格式,在页面页脚插入 ‘最后更新于:’ 时间戳。空字符串等同于'%b %d, %Y'(或与区域设置相关的等效格式)。
- html_last_updated_use_utc¶
- 类型:
bool- 默认值:
False
对于提供给
html_last_updated_fmt的时间,使用 GMT/UTC (+00:00) 而不是系统的本地时区。当使用的格式包含时间时,这最有用。
- html_permalinks¶
- 类型:
bool- 默认值:
True
为每个标题和描述环境添加链接锚点。
在 3.5 版本中添加。
- html_permalinks_icon¶
- 类型:
str- 默认值:
'¶'(段落符号)
每个标题和描述环境的链接锚点的文本。允许 HTML 实体和 Unicode。
在 3.5 版本中添加。
- html_sidebars¶
- 类型:
dict[str, Sequence[str]]- 默认值:
{}
一个字典,用于定义自定义侧边栏模板,将文档名称映射到模板名称。
键可以包含 glob 风格的模式,在这种情况下,所有匹配的文档都将获得指定的侧边栏。(当任何文档匹配多个 glob 风格的模式时,会发出警告。)
每个值必须是字符串列表,其中指定要包含的完整侧边栏模板列表。如果要包含全部或部分默认侧边栏,也必须将其放入此列表。
默认侧边栏(对于不匹配任何模式的文档)由主题本身定义。内置主题默认使用以下模板:
'localtoc.html'、'relations.html'、'sourcelink.html'和'searchbox.html'。可以渲染的捆绑的第一方侧边栏模板是
localtoc.html – 当前文档的细粒度目录
globaltoc.html – 整个文档集的粗粒度目录,已折叠
relations.html – 指向上一个和下一个文档的两个链接
sourcelink.html – 指向当前文档源文件的链接,如果在
html_show_sourcelink中启用searchbox.html – “快速搜索”框
示例
html_sidebars = { '**': ['globaltoc.html', 'sourcelink.html', 'searchbox.html'], 'using/windows': ['windows-sidebar.html', 'searchbox.html'], }
这将渲染自定义模板
windows-sidebar.html和给定文档侧边栏中的快速搜索框,并为所有其他页面渲染默认侧边栏(除了本地 TOC 被全局 TOC 替换)。请注意,如果所选主题没有侧边栏,例如内置的 scrolls 和 haiku 主题,则此值无效。
在 1.0 版本中添加: 使用 globbing 键和指定多个侧边栏的功能。
在 1.7 版本中弃用:
html_sidebars的单个字符串值将被移除。在 2.0 版本中变更:
html_sidebars必须是字符串列表,不再接受单个字符串值。
- html_additional_pages¶
- 类型:
dict[str, str]- 默认值:
{}
应渲染为 HTML 页面的其他模板,必须是一个字典,将文档名称映射到模板名称。
示例
html_additional_pages = { 'download': 'custom-download.html.jinja', }
这将渲染模板
custom-download.html.jinja作为页面download.html。
- html_domain_indices¶
- 类型:
bool | Sequence[str]- 默认值:
True
如果为 True,则除了通用索引之外,还生成特定于域的索引。例如,对于 Python 域,这是全局模块索引。
此值可以是布尔值或应生成的索引名称列表。要查找特定索引的索引名称,请查看 HTML 文件名。例如,Python 模块索引的名称为
'py-modindex'。示例
html_domain_indices = { 'py-modindex', }
1.0 版本新增。
在 7.4 版本中变更: 允许并首选 set 类型。
- html_use_index¶
- 类型:
bool- 默认值:
True
控制是否将索引添加到 HTML 文档中。
在 0.4 版本中添加。
- html_split_index¶
- 类型:
bool- 默认值:
False
生成两个版本的索引:一个版本是包含所有条目的单个页面,另一个版本是每个起始字母一个页面。
在 0.4 版本中添加。
- html_copy_source¶
- 类型:
bool- 默认值:
True
如果为 True,则 reStructuredText 源文件将作为
_sources/文档名包含在 HTML 构建中。
- html_show_sourcelink¶
- 类型:
bool- 默认值:
True
如果为 True(且
html_copy_source也为 true),则指向 reStructuredText 源文件的链接将添加到侧边栏。在 0.6 版本中添加。
- html_sourcelink_suffix¶
- 类型:
str- 默认值:
'.txt'
要附加到源链接的后缀 (请参阅
html_show_sourcelink),除非文件已具有此后缀。1.5 版本新增。
- html_use_opensearch¶
- 类型:
str- 默认值:
''
如果为非空,将输出 OpenSearch 描述文件,并且所有页面都将包含指向它的
<link>标签。由于 OpenSearch 不支持其搜索页面位置的相对 URL,因此此选项的值必须是提供这些文档的基本 URL(不带尾部斜杠),例如'https://docs.pythonlang.cn'。在 0.2 版本中添加。
- html_file_suffix¶
- 类型:
str- 默认值:
'.html'
生成的 HTML 文件的文件名后缀(文件扩展名)。
在 0.4 版本中添加。
- html_link_suffix¶
- 类型:
str- 默认值:
- html_file_suffix 的值
生成 HTML 文件链接的后缀。旨在支持更深奥的服务器设置。
在 0.6 版本中添加。
- html_show_copyright¶
- 类型:
bool- 默认值:
True
如果为 True,则在 HTML 页脚中显示 “© 版权所有 ...”,其中包含来自
copyright的值。1.0 版本新增。
- html_show_search_summary¶
- 类型:
bool- 默认值:
True
显示搜索结果的摘要,即关键字周围的文本。
在 4.5 版本中添加。
- html_output_encoding¶
- 类型:
str- 默认值:
'utf-8'
HTML 输出文件的编码。此编码名称必须既是有效的 Python 编码名称,又是有效的 HTML
charset值。1.0 版本新增。
- html_compact_lists¶
- 类型:
bool- 默认值:
True
如果为 True,则列表的所有项目都由单个段落和/或子列表组成,子列表的所有项目等等...(递归定义)将不会为其任何项目使用
<p>元素。这是标准的 docutils 行为。默认值:True。1.0 版本新增。
- html_secnumber_suffix¶
- 类型:
str- 默认值:
'. '
HTML 输出中节号的后缀。设置为
' '以抑制节号上的最后一个点。1.0 版本新增。
- html_search_language¶
- 类型:
str- 默认值:
- language 的值
用于生成 HTML 全文搜索索引的语言。这默认为使用
language选择的全局语言。如果不支持此语言,则使用英语 ('en') 作为备用选项。支持以下语言
da– 丹麦语nl– 荷兰语en– 英语fi– 芬兰语fr– 法语de– 德语hu– 匈牙利语it– 意大利语ja– 日语no– 挪威语pt– 葡萄牙语ro– 罗马尼亚语ru– 俄语es– 西班牙语sv– 瑞典语tr– 土耳其语zh– 中文
提示
加速构建速度
每种语言(日语除外)都提供自己的词干提取算法。Sphinx 默认使用 Python 实现。如果要加速构建索引文件,可以使用第三方软件包 (PyStemmer),方法是运行 pip install PyStemmer。
在 1.1 版本中添加: 支持英语 (
en) 和日语 (ja)。在 1.3 版本中变更: 添加了其他语言。
- html_search_options¶
- 类型:
dict[str, str]- 默认值:
{}
一个字典,包含搜索语言支持的选项。这些选项的含义取决于所选的语言。目前,只有日语和中文支持选项。
- 日语:
type– 要使用的分词器类型。其他选项取决于使用的分词器。
'sphinx.search.ja.DefaultSplitter'TinySegmenter 算法,默认使用。
'sphinx.search.ja.MecabSplitter':MeCab 绑定。要使用此分词器,需要 ‘mecab’ python 绑定或动态链接库(Linux 下为 ‘libmecab.so’,Windows 下为 ‘libmecab.dll’)。
'sphinx.search.ja.JanomeSplitter':Janome 绑定。要使用此分词器,需要 Janome。
在 1.6 版本中弃用:
'mecab'、'janome'和'default'已弃用。为了保持兼容性,'mecab'、'janome'和'default'仍然可以接受。- 用于
'mecab'的选项 - dic_enc:
dic_enc 选项是 MeCab 算法的编码。
- dict:
dict 选项是用于 MeCab 算法的字典。
- lib:
lib 选项是通过
ctypes查找 MeCab 库的库名称(如果未安装 Python 绑定)。
例如
html_search_options = { 'type': 'mecab', 'dic_enc': 'utf-8', 'dict': '/path/to/mecab .dic', 'lib': '/path/to/libmecab.so', }
- 用于
'janome'的选项 - user_dic:
user_dic 选项是 Janome 的用户字典文件路径。
- user_dic_enc:
user_dic_enc 选项是由
user_dic选项指定的用户字典文件的编码。默认为 ‘utf8’。
- 中文:
dictjieba字典路径,用于使用自定义字典。
在 1.1 版本中添加。
在 1.4 版本中变更: 允许日语的 type 设置中使用任何自定义分词器。
- html_search_scorer¶
- 类型:
str- 默认值:
''
JavaScript 文件的名称(相对于 配置目录),该文件实现了搜索结果评分器。如果为空,将使用默认值。
评分器必须实现以下接口,并且可以选择定义
score()函数以进行更精细的控制。const Scorer = { // Implement the following function to further tweak the score for each result score: result => { const [docName, title, anchor, descr, score, filename] = result // ... calculate a new score ... return score }, // query matches the full name of an object objNameMatch: 11, // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object objPrio: { 0: 15, // used to be importantResults 1: 5, // used to be objectResults 2: -5, // used to be unimportantResults }, // Used when the priority is not in the mapping. objPrioDefault: 0, // query found in title title: 15, partialTitle: 7, // query found in terms term: 5, partialTerm: 2, };
在版本 1.2 中新增。
- html_scaled_image_link¶
- 类型:
bool- 默认值:
True
将使用缩放选项(scale、width 或 height)调整大小的图像链接到其原始全分辨率图像。这不会覆盖 image 指令上 target 选项给出的任何链接(如果存在)。
提示
要按图像禁用此功能,请将
no-scaled-link类添加到 image 指令中.. image:: sphinx.png :scale: 50% :class: no-scaled-link
1.3 版本新增。
在 3.0 版本中变更: 带有
no-scaled-link类的图像将不会被链接。
- html_math_renderer¶
- 类型:
str- 默认值:
'mathjax'
用于 HTML 输出的数学渲染器。捆绑的渲染器是 mathjax 和 imgmath。您还必须在
extensions中加载相关扩展。在版本 1.8 中新增。
Single HTML 输出的选项¶
这些选项影响 Single HTML 输出。此构建器派生自 HTML 构建器,因此 HTML 选项也适用于适当的情况。
- singlehtml_sidebars¶
- 类型:
dict[str, Sequence[str]]- 默认值:
- html_sidebars 的值
一个字典,用于定义自定义侧边栏模板,将文档名称映射到模板名称。
这与
html_sidebars具有相同的效果,但唯一允许的键是'index',所有其他键都将被忽略。
HTML 帮助输出的选项¶
这些选项影响 HTML 帮助输出。此构建器派生自 HTML 构建器,因此 HTML 选项也适用于适当的情况。
- htmlhelp_basename¶
- 类型:
str- 默认值:
'{project}doc'
HTML 帮助构建器的输出文件基本名称。默认值是
project name,其中空格被移除并附加了doc。
- htmlhelp_file_suffix¶
- 类型:
str- 默认值:
'.html'
这是生成的 HTML 帮助文件的文件名后缀。
在 2.0 版本中添加。
- htmlhelp_link_suffix¶
- 类型:
str- 默认值:
- htmlhelp_file_suffix 的值
生成 HTML 文件链接的后缀。
在 2.0 版本中添加。
Apple Help 输出的选项¶
1.3 版本新增。
这些选项影响 Apple Help 输出。此构建器派生自 HTML 构建器,因此 HTML 选项也适用于适当的情况。
注意
Apple Help 输出仅在 Mac OS X 10.6 及更高版本上有效,因为它需要 hiutil 和 codesign 命令行工具,这两个工具都不是开源的。
您可以使用 applehelp_disable_external_tools 禁用这些工具的使用,但在索引器在 bundle 中 .lproj 目录上运行之前,结果将不是有效的帮助手册。
- applehelp_bundle_name¶
- 类型:
str- 默认值:
- project 的值
Apple Help Book 的基本名称。默认值是
project name,其中空格被移除。
- applehelp_bundle_id¶
- 类型:
str- 默认值:
None
帮助手册 bundle 的 bundle ID。
警告
您必须设置此值才能生成 Apple Help。
- applehelp_bundle_version¶
- 类型:
str- 默认值:
'1'
bundle 版本,以字符串形式表示。
- applehelp_dev_region¶
- 类型:
str- 默认值:
'en-us'
开发区域。默认为 Apple 推荐的设置,
'en-us'。
- applehelp_icon¶
- 类型:
str- 默认值:
None
帮助 bundle 图标文件的路径,或者
None表示没有图标。根据 Apple 的文档,这应该是应用程序图标的 16x16 像素版本,具有透明背景,并保存为 PNG 文件。
- applehelp_kb_product¶
- 类型:
str- 默认值:
'project-release'
产品标签,用于
applehelp_kb_url。
- applehelp_kb_url¶
- 类型:
str- 默认值:
None
您的知识库服务器的 URL,例如
https://example.com/kbsearch.py?p='product'&q='query'&l='lang'。在运行时,Help Viewer 将把'product'替换为applehelp_kb_product的内容,'query'替换为用户在搜索框中输入的文本,'lang'替换为用户的系统语言。将此项设置为
None以禁用远程搜索。
- applehelp_remote_url¶
- 类型:
str- 默认值:
None
远程内容的 URL。您可以将 Help Book 的
Resources目录的副本放在此位置,Help Viewer 将尝试使用它来获取更新的内容。例如,如果您将其设置为
https://example.com/help/Foo/,并且 Help Viewer 想要英语客户的index.html副本,它将在https://example.com/help/Foo/en.lproj/index.html中查找。将此项设置为
None表示没有远程内容。
- applehelp_index_anchors¶
- 类型:
bool- 默认值:
False
告诉帮助索引器索引生成的 HTML 中的锚点。这对于使用代码中的
AHLookupAnchor函数或openHelpAnchor:inBook:方法跳转到特定主题非常有用。它还允许您使用help:anchorURL;有关此主题的更多信息,请参阅 Apple 文档。
- applehelp_min_term_length¶
- 类型:
str- 默认值:
None
控制帮助索引器的最小术语长度。如果为
None,则使用默认长度。
- applehelp_stopwords¶
- 类型:
str- 默认值:
- language 的值
语言规范(用于使用内置停用词)、停用词 plist 的路径,或者
None(如果您不想使用停用词)。默认的停用词 plist 可以在/usr/share/hiutil/Stopwords.plist中找到,并且在编写本文时,包含以下语言的停用词德语 (
de)英语 (
en)西班牙语 (
es)法语 (
fr)匈牙利语 (
hu)意大利语 (
it)瑞典语 (
sv)
- applehelp_locale¶
- 类型:
str- 默认值:
- language 的值
指定要为其生成帮助的区域设置。这用于确定 Help Book 的
Resources内.lproj目录的名称,并传递给帮助索引器。
- applehelp_title¶
- 类型:
str- 默认值:
'project Help'
指定帮助手册标题。
- applehelp_codesign_identity¶
- 类型:
str- 默认值:
- CODE_SIGN_IDENTITY 的值
指定用于代码签名的身份。如果不需要代码签名,请使用
None。默认为
CODE_SIGN_IDENTITY环境变量的值,该变量由 Xcode 为脚本构建阶段设置,如果未设置该变量,则为None。
- applehelp_codesign_flags¶
- 类型:
list[str]- 默认值:
- OTHER_CODE_SIGN_FLAGS 的值
传递给 codesign 以对帮助手册进行签名的一系列附加参数。
默认为基于
OTHER_CODE_SIGN_FLAGS环境变量的值的列表,该变量由 Xcode 为脚本构建阶段设置,如果未设置该变量,则默认为空列表。
- applehelp_codesign_path¶
- 类型:
str- 默认值:
'/usr/bin/codesign'
指向 codesign 程序的路径。
- applehelp_indexer_path¶
- 类型:
str- 默认值:
'/usr/bin/hiutil'
指向 hiutil 程序的路径。
- applehelp_disable_external_tools¶
- 类型:
bool- 默认值:
False
无论指定了其他什么设置,都不要运行索引器或代码签名工具。
这主要用于测试,或者您想在非 macOS 平台上运行 Sphinx 构建,然后出于某种原因在 Mac 上完成最后步骤的情况。
EPUB 输出的选项¶
这些选项影响 EPUB 输出。此构建器派生自 HTML 构建器,因此 HTML 选项也适用于适当的情况。
注意
其中一些选项的实际值并不重要,但它们是 Dublin Core 元数据 所必需的。
- epub_basename¶
- 类型:
str- 默认值:
- project 的值
EPUB 文件的基本名称。
- epub_theme¶
- 类型:
str- 默认值:
'epub'
EPUB 输出的 HTML 主题。由于默认主题未针对小屏幕空间进行优化,因此对 HTML 和 EPUB 输出使用相同的主题通常不明智。这默认为
'epub',这是一种旨在节省视觉空间的主题。
- epub_theme_options¶
- 类型:
dict[str, Any]- 默认值:
{}
影响所选主题外观和感觉的选项字典。 这些是特定于主题的。 内置主题 理解的选项在此处 描述 。
在版本 1.2 中新增。
- epub_title¶
- 类型:
str- 默认值:
- project 的值
文档的标题。
在 2.0 版本中变更: 它默认为
project选项(以前为html_title)。
- epub_description¶
- 类型:
str- 默认值:
'unknown'
文档的描述。
在 1.4 版本中添加。
在 1.5 版本中变更: 从
epub3_description重命名
- epub_author¶
- 类型:
str- 默认值:
- author 的值
文档的作者。这会放入 Dublin Core 元数据中。
- epub_contributor¶
- 类型:
str- 默认值:
'unknown'
在 EPUB 出版物的内容创作中起次要作用的个人、组织等的名称。
在 1.4 版本中添加。
在 1.5 版本中变更: 从
epub3_contributor重命名
- epub_language¶
- 类型:
str- 默认值:
- language 的值
文档的语言。这会放入 Dublin Core 元数据中。
- epub_publisher¶
- 类型:
str- 默认值:
- author 的值
文档的发布者。这会放入 Dublin Core 元数据中。您可以使用任何合理的字符串,例如项目主页。
- epub_identifier¶
- 类型:
str- 默认值:
'unknown'
文档的标识符。这会放入 Dublin Core 元数据中。对于已发布的文档,这是 ISBN 编号,但您也可以使用其他方案,例如项目主页。
- epub_scheme¶
- 类型:
str- 默认值:
'unknown'
用于
epub_identifier的出版方案。这会放入 Dublin Core 元数据中。对于已出版的书籍,该方案为'ISBN'。如果您使用项目主页,则'URL'似乎是合理的。
- epub_uid¶
- 类型:
str- 默认值:
'unknown'
文档的唯一标识符。这被放入 Dublin Core 元数据中。您可以使用符合 XML Name 格式 的字符串。您不能使用连字符、句点、数字作为第一个字符。
- epub_cover¶
- 类型:
tuple[str, str]- 默认值:
()
封面页信息。这是一个元组,包含封面图像和 html 模板的文件名。渲染后的 html 封面页作为 spine 中的第一个条目插入到
content.opf中。如果模板文件名为空,则不创建 html 封面页。如果元组为空,则完全不创建封面。示例
epub_cover = ('_static/cover.png', 'epub-cover.html') epub_cover = ('_static/cover.png', '') epub_cover = ()
在 1.1 版本中添加。
- epub_css_files¶
- 类型:
Sequence[str | tuple[str, dict[str, str]]]- 默认值:
[]
CSS 文件列表。条目必须是 filename 字符串或包含 filename 字符串和 attributes 字典的元组。 filename 必须相对于
html_static_path,或者是以 scheme 开头的完整 URI,例如'https://example.org/style.css'。 attributes 字典用于<link>标签的属性。有关更多信息,请参阅html_css_files。在版本 1.8 中新增。
- epub_guide¶
- 类型:
Sequence[tuple[str, str, str]]- 默认值:
()
用于
content.opf的 guide 元素的元数据。这是一个元组序列,包含可选引导信息的 type、uri 和 title。 有关详细信息,请参阅 OPF 文档。 如果可能,会自动插入 cover 和 toc 类型的默认条目。 但是,如果默认条目不合适,可以显式覆盖这些类型。示例
epub_guide = ( ('cover', 'cover.html', 'Cover Page'), )
默认值是
()。
- epub_pre_files¶
- 类型:
Sequence[tuple[str, str]]- 默认值:
()
应在 Sphinx 生成的文本之前插入的其他文件。它是包含文件名和标题的元组列表。如果标题为空,则不会将条目添加到
toc.ncx。示例
epub_pre_files = [ ('index.html', 'Welcome'), ]
- epub_post_files¶
- 类型:
Sequence[tuple[str, str]]- 默认值:
()
应在 Sphinx 生成的文本之后插入的其他文件。它是包含文件名和标题的元组列表。此选项可用于添加附录。如果标题为空,则不会将条目添加到
toc.ncx。示例
epub_post_files = [ ('appendix.xhtml', 'Appendix'), ]
- epub_exclude_files¶
- 类型:
Sequence[str]- 默认值:
[]
在构建目录中生成/复制但不应包含在 EPUB 文件中的文件序列。
- epub_tocdepth¶
- 类型:
int- 默认值:
3
文件
toc.ncx中目录的深度。它应该是一个大于零的整数。提示
深度嵌套的目录可能难以导航。
- epub_tocdup¶
- 类型:
bool- 默认值:
True
此标志确定是否在其嵌套的目录列表的开头再次插入目录条目。 这允许更容易地导航到章节的顶部,但可能会令人困惑,因为它在一个列表中混合了不同深度的条目。
- epub_tocscope¶
- 类型:
'default' | 'includehidden'- 默认值:
'default'
此设置控制 EPUB 目录的范围。该设置可以具有以下值
'default'包括所有未隐藏的目录条目
'includehidden'包括所有目录条目
在版本 1.2 中新增。
- epub_fix_images¶
- 类型:
bool- 默认值:
False
尝试修复某些 EPUB 阅读器不支持的图像格式。目前,调色板颜色表较小的图像会被升级。默认情况下禁用此功能,因为自动转换可能会丢失信息。您需要安装 Python 图像库 (Pillow) 才能使用此选项。
在版本 1.2 中新增。
- epub_max_image_width¶
- 类型:
int- 默认值:
0
此选项指定图像的最大宽度。如果将其设置为大于零的值,则会相应地缩放宽度大于给定值的图像。如果为零,则不执行缩放。您需要安装 Python 图像库 (Pillow) 才能使用此选项。
在版本 1.2 中新增。
- epub_show_urls¶
- 类型:
'footnote' | 'no' | 'inline'- 默认值:
'footnote'
控制如何显示 URL 地址。这对于没有其他方式显示链接 URL 的读者非常有用。该设置可以具有以下值
'inline'在括号中内联显示 URL。
'footnote'在脚注中显示 URL。
'no'不显示 URL。
可以通过为
link-target类添加 CSS 规则来自定义内联 URL 的显示。在版本 1.2 中新增。
- epub_use_index¶
- 类型:
bool- 默认值:
- html_use_index 的值
向 EPUB 文档添加索引。
在版本 1.2 中新增。
- epub_writing_mode¶
- 类型:
'horizontal' | 'vertical'- 默认值:
'horizontal'
它指定书写方向。它可以接受
'horizontal'和'vertical'epub_writing_mode'horizontal''vertical'horizontal-tb(水平从上到下)vertical-rl(垂直从右到左)page progression(页面阅读方向)
left to right(从左到右)
right to left(从右到左)
iBook 的滚动主题支持
scroll-axis is vertical.(滚动轴是垂直的。)
scroll-axis is horizontal.(滚动轴是水平的。)
LaTeX 输出的选项¶
这些选项影响 LaTeX 输出。
- latex_engine¶
- 类型:
'pdflatex' | 'xelatex' | 'lualatex' | 'platex' | 'uplatex'- 默认值:
'pdflatex'
用于构建文档的 LaTeX 引擎。该设置可以具有以下值
'pdflatex'– PDFLaTeX (默认)'xelatex'– XeLaTeX (如果language是el,zh_CN, 或zh_TW之一,则为默认值)'lualatex'– LuaLaTeX'platex'– pLaTeX'uplatex'– upLaTeX (如果language是'ja',则为默认值)
重要提示
'pdflatex'对 Unicode 字符的支持有限。如果您的项目使用 Unicode 字符,则将引擎设置为'xelatex'或'lualatex'并确保使用具有足够字形覆盖范围的 OpenType 字体,通常比尝试使'pdflatex'处理额外的 Unicode 字符更容易。自 Sphinx 2.0 以来,默认字体是 GNU FreeFont,它对拉丁文、西里尔文和希腊文字形具有良好的覆盖范围。注意
Sphinx 2.0 为在使用拉丁语和
'pdflatex'的文档中添加了对偶尔出现的西里尔字母和希腊字母或单词的支持。要启用此功能,必须适当使用 'fontenc' 键,该键位于 latex_elements 中。注意
与 HTML 输出中的 MathJaX 数学渲染 相反,LaTeX 需要一些额外的配置来支持
math中的 Unicode 字面量:据我们所知,唯一的综合解决方案是使用'xelatex'或'lualatex'并 添加r'\usepackage{unicode-math}'(例如,通过 'preamble' 键,该键位于 latex_elements 中)。 您可能更喜欢r'\usepackage[math-style=literal]{unicode-math}'以保持 Unicode 字面量 (如α(U+03B1)) 在输出中保持原样,而不是呈现为 \(\alpha\)。在 2.1.0 版本中更改: 对于中文文档,默认使用
'xelatex'(和 LaTeX 包xeCJK)。在 2.2.1 版本中更改: 对于希腊文档,默认使用
'xelatex'。在 2.3 版本中更改: 添加
'uplatex'支持。在 4.0 版本中更改: 对于日文文档,默认使用
'uplatex'。
- latex_documents¶
- 类型:
Sequence[tuple[str, str, str, str, str, bool]]- 默认值:
- 默认的 LaTeX 文档
此值确定如何将文档树分组到 LaTeX 源文件中。它必须是元组列表
(startdocname, targetname, title, author, theme, toctree_only),其中各项是- startdocname
字符串,指定 LaTeX 文件主文档的 文档名称。 startdoc 文档在目录树中引用的所有文档都将包含在 LaTeX 文件中。 (如果您想为 LaTeX 构建使用默认主文档,请在此处提供您的
master_doc。)- targetname
输出目录中 LaTeX 文件的文件名。
- title
LaTeX 文档标题。可以为空以使用 startdoc 文档的标题。 这将作为 LaTeX 标记插入,因此如果特殊字符 (如反斜杠或 & 符号) 要按字面插入,则必须用适当的 LaTeX 命令表示。
- 作者
LaTeX 文档的作者。 与 title 相同的 LaTeX 标记注意事项适用。 使用
\\and分隔多个作者,如:'John \\and Sarah'(反斜杠必须进行 Python 转义才能到达 LaTeX)。- theme
LaTeX 主题。请参阅
latex_theme。- toctree_only
必须是
True或False。 如果为 True,则输出中不包含 startdoc 文档本身,仅包含通过目录树引用的文档。 使用此选项,您可以将额外的材料放在主文档中,这些材料会显示在 HTML 中,但不会显示在 LaTeX 输出中。
0.3 版本新增: 第 6 项
toctree_only。 仍然接受包含 5 个项目的元组。1.2 版本新增: 过去,包含您自己的文档类需要您在文档类名称前加上字符串 “sphinx”。 现在已不再需要。
- latex_toplevel_sectioning¶
- 类型:
'part' | 'chapter' | 'section'- 默认值:
None
此值确定最顶层的分节单位。 如果
latex_theme是'howto',则默认设置为'section',如果它是'manual',则默认设置为'chapter'。 这两种情况下的替代方法是指定'part',这意味着 LaTeX 文档将使用\part命令。在这种情况下,一级分节单位的编号与 HTML 编号不同步,因为默认情况下,当遇到
\part命令时,LaTeX 不会重置\chapter编号 (或\section用于'howto'主题)。在 1.4 版本中添加。
- latex_appendices¶
- 类型:
Sequence[str]- 默认值:
()
要作为附录附加到所有手册的文档名称列表。 如果
latex_theme设置为'howto',则忽略此项。
- latex_domain_indices¶
- 类型:
bool | Sequence[str]- 默认值:
True
如果为 True,则除了通用索引之外,还生成特定于域的索引。例如,对于 Python 域,这是全局模块索引。
此值可以是布尔值或应生成的索引名称列表。要查找特定索引的索引名称,请查看 HTML 文件名。例如,Python 模块索引的名称为
'py-modindex'。示例
latex_domain_indices = { 'py-modindex', }
1.0 版本新增。
在 7.4 版本中变更: 允许并首选 set 类型。
- latex_show_pagerefs¶
- 类型:
bool- 默认值:
False
在内部引用后添加页码引用。 这对于手册的打印副本非常有用。
1.0 版本新增。
- latex_show_urls¶
- 类型:
'no' | 'footnote' | 'inline'- 默认值:
'no'
控制如何显示 URL 地址。 这对于手册的打印副本非常有用。 该设置可以具有以下值
'no'不显示 URL
'footnote'在脚注中显示 URL
'inline'在括号中内联显示 URL
1.0 版本新增。
在 1.1 版本中更改: 此值现在是字符串; 以前它是一个布尔值,true 值选择
'inline'显示。 为了向后兼容,仍然接受True。
- latex_use_latex_multicolumn¶
- 类型:
bool- 默认值:
False
对表格中合并的单元格使用标准 LaTeX 的
\multicolumn。FalseSphinx 自己的宏用于网格表格中合并的单元格。 它们允许通用内容 (文字块、列表、块引用等),但如果使用了
tabularcolumns指令来注入>{..}、<{..}、@{..}类型的 LaTeX 标记作为列规范,则可能会出现问题。True使用 LaTeX 的标准
\multicolumn; 这与水平合并的单元格中的文字块不兼容,如果使用tabulary呈现表格,则也与此类单元格中的多个段落不兼容。
1.6 版本新增。
- latex_table_style¶
- 类型:
list[str]- 默认值:
['booktabs', 'colorrows']
样式类 (字符串) 列表。 当前支持
'booktabs'没有垂直线,只有 2 或 3 条水平线 (后者在有标题的情况下),使用 booktabs 包。
'borderless'完全没有线条。
'colorrows'表格行以交替的背景颜色呈现。 自定义它们的界面是通过 专用键,这些键位于 sphinxsetup 配置设置 中。
重要提示
使用
'colorrows'样式时,\rowcolorsLaTeX 命令变为 no-op (此命令有限制,并且从未正确支持 Sphinx 在 LaTeX 中生成的所有类型的表格)。 请更新您的项目以使用 latex 表格颜色配置 键。
要自定义表格的样式,如果表格是使用指令定义的,则使用
:class:选项,否则在表格之前插入 rst-class 指令 (参见 表格)。当前识别的类是
booktabs、borderless、standard、colorrows、nocolorrows。 后两个可以与前三个中的任何一个组合使用。standard类生成具有水平线和垂直线的表格 (到目前为止,这是 Sphinx 的默认设置)。单行多列合并的单元格将服从行颜色 (如果已设置)。 另请参阅 sphinxsetup 配置设置 部分中的
TableMergeColor{Header,Odd,Even}。注意
在 LaTeX 中硬编码的是,即使通过来自列规范的
\columncolor设置了列颜色,单个单元格也会服从行颜色 (请参阅tabularcolumns)。 Sphinx 提供了\sphinxnorowcolor,可以在表格列规范中像这样使用它>{\columncolor{blue}\sphinxnorowcolor}
Sphinx 还提供了
\sphinxcolorblend,但这需要 xcolor 包。 这是一个示例>{\sphinxcolorblend{!95!red}}
这意味着在此列中,行颜色将略微被红色着色; 有关其
\blendcolors命令的语法的更多信息,请参阅 xcolor 文档 (\blendcolors代替\sphinxcolorblend将修改单元格内容的颜色,而不是单元格背景颜色面板的颜色…)。 您可以在本文档的 PDF 格式的 已弃用的 API 部分中找到用法示例。提示
如果您想为给定列的单元格内容使用特殊颜色,请使用
>{\noindent\color{<color>}},可能还需要添加上述内容。多行合并的单元格 (无论是单列还是多列) 当前忽略任何设置的列、行或单元格颜色。
简单的单元格可以通过 raw 指令和
\cellcolorLaTeX 命令在单元格内容中的任何位置设置自定义颜色。 这在合并的单元格中当前无效,无论其类型如何。
提示
在不全局使用
'booktabs'的文档中,可以通过booktabs类为单个表格设置样式,但需要将r'\usepackage{booktabs}'添加到 LaTeX 序言中。另一方面,对于没有额外包的单个表格,可以使用
colorrows类 (因为自 5.3.0 起 Sphinx 始终加载 colortbl)。5.3.0 版本新增。
在 6.0.0 版本中更改: 将默认值从
[]修改为['booktabs', 'colorrows']。
- latex_use_xindy¶
- 类型:
bool- 默认值:
True if latex_engine in {'xelatex', 'lualatex'} else False
使用 Xindy 准备通用术语的索引。 默认情况下,LaTeX 构建器使用 makeindex 准备通用术语的索引。 使用 Xindy 意味着对于
language,将正确排序包含 UTF-8 字符的单词。如果
latex_engine是'platex'(日语文档; mendex 替换 makeindex),则忽略此选项。对于
'xelatex'或'lualatex',默认值为True,因为如果任何索引术语以非 ASCII 字符开头,makeindex 会创建包含 UTF-8 编码的无效字节的.ind文件。 使用'lualatex',这会破坏 PDF 构建。对于
'pdflatex',默认值为False,但对于非英语文档,建议使用True,只要某些索引术语使用来自语言脚本的非 ASCII 字符即可。 如果latex_use_xindy保留其默认值False,则尝试索引第一个字符为非 ASCII 字符的术语将破坏构建。
Sphinx 为 xindy 基本发行版添加了一些专用支持,以便将
'pdflatex'引擎与西里尔文字符集一起使用。 对于'pdflatex'和 Unicode 引擎,西里尔文文档可以正确处理拉丁文名称的索引,即使是那些带有变音符号的名称。在版本 1.8 中新增。
- latex_elements¶
- 类型:
dict[str, str]- 默认值:
{}
0.5 版本新增。
- latex_docclass¶
- 类型:
dict[str, str]- 默认值:
{}
一个字典,将
'howto'和'manual'映射到将用作两个 Sphinx 类的基础的真实文档类的名称。 默认情况下,对于'howto'使用'article',对于'manual'使用'report'。1.0 版本新增。
在 1.5 版本中更改: 在日文文档 (
language为'ja') 中,默认情况下,对于'howto'使用'jreport',对于'manual'使用'jsbook'。
- latex_additional_files¶
- 类型:
Sequence[str]- 默认值:
()
文件名列表,相对于 配置目录,在构建 LaTeX 输出时复制到构建目录。 这对于复制 Sphinx 不会自动复制的文件,或使用自定义版本覆盖 Sphinx LaTeX 支持文件非常有用。 源文件中引用的图像文件 (例如,通过
.. image::) 会自动复制,不应在此处列出。注意
扩展名为
.tex的文件名将自动传递给由sphinx-build -M latexpdf或 make latexpdf 触发的 PDF 构建过程。 如果添加该文件仅是为了从修改后的序言中\input{},则必须添加进一步的后缀 (例如.txt) 到文件名,并相应地调整\input{}宏。在 0.6 版本中添加。
在 1.2 版本中更改: 这会覆盖 Sphinx 提供的文件,例如
sphinx.sty。
- latex_theme¶
- 类型:
str- 默认值:
'manual'
LaTeX 输出应使用的 “主题”。 它是 LaTeX 输出的设置集合 (例如,文档类、顶级分节单位等)。
捆绑的第一方 LaTeX 主题是 manual 和 howto
manual用于编写手册的 LaTeX 主题。它导入了
report文档类(日语文档使用jsbook)。howto用于编写文章的 LaTeX 主题。它导入了
article文档类(日语文档使用jreport)。latex_appendices仅适用于此主题。
在 3.0 版本中添加。
- latex_theme_options¶
- 类型:
dict[str, Any]- 默认值:
{}
影响所选主题外观的选项字典。这些是特定于主题的。
在版本 3.1 中添加。
文本输出选项¶
这些选项影响文本输出。
- text_add_secnumbers¶
- 类型:
bool- 默认值:
True
在文本输出中包含章节编号。
1.7 版本新增。
- text_newlines¶
- 类型:
'unix' | 'windows' | 'native'- 默认值:
'unix'
确定在文本输出中使用哪个行尾字符。
'unix'使用 Unix 样式的行尾符 (
\n)。'windows'使用 Windows 样式的行尾符 (
\r\n)。'native'使用构建文档的平台的行尾样式。
在 1.1 版本中添加。
- text_secnumber_suffix¶
- 类型:
str- 默认值:
'. '
文本输出中章节编号的后缀。设置为
' '以抑制章节编号上的句点。1.7 版本新增。
- text_sectionchars¶
- 类型:
str- 默认值:
'*=-~"+`'
一个包含 7 个字符的字符串,应用于章节下划线。第一个字符用于一级标题,第二个字符用于二级标题,依此类推。
在 1.1 版本中添加。
手册页输出选项¶
这些选项影响手册页输出。
- man_pages¶
- 类型:
Sequence[tuple[str, str, str, str, str]]- 默认值:
- 默认手册页
此值确定如何将文档树分组为手册页。它必须是元组列表
(startdocname, name, description, authors, section),其中各项是- startdocname
字符串,指定手册页主文档的文档名称。在 ToC 树中,startdoc 文档引用的所有文档都将包含在手册页中。(如果您想为手册页构建使用默认主文档,请在此处提供您的
master_doc。)- name
手册页的名称。这应该是一个不包含空格或特殊字符的短字符串。它用于确定文件名以及手册页的名称(在 NAME 部分中)。
- description
手册页的描述。这在 NAME 部分中使用。如果您不想自动生成 NAME 部分,则可以为空字符串。
- authors
作者字符串列表或单个字符串。如果您不想自动生成手册页中的 AUTHORS 部分,则可以为空字符串或列表。
- 章节
手册页部分。用于输出文件名以及手册页标题。
1.0 版本新增。
- man_show_urls¶
- 类型:
bool- 默认值:
False
在链接后添加 URL 地址。
在 1.1 版本中添加。
- man_make_section_directory¶
- 类型:
bool- 默认值:
True
在构建手册页时创建节目录。
在版本 3.3 中添加。
在版本 4.0 中更改: 默认值现在是
False(以前是True)。在版本 4.0.2 中更改: 恢复默认值的更改。
Texinfo 输出选项¶
这些选项影响 Texinfo 输出。
- texinfo_documents¶
- 类型:
Sequence[tuple[str, str, str, str, str, str, str, bool]]- 默认值:
- 默认 Texinfo 文档
此值确定如何将文档树分组为 Texinfo 源文件。它必须是元组列表
(startdocname, targetname, title, author, dir_entry, description, category, toctree_only),其中各项是- startdocname
字符串,指定 Texinfo 文件主文档的文档名称。在 ToC 树中,startdoc 文档引用的所有文档都将包含在 Texinfo 文件中。(如果您想为 Texinfo 构建使用默认主文档,请在此处提供您的
master_doc。)- targetname
输出目录中 Texinfo 文件的文件名(无扩展名)。
- title
Texinfo 文档标题。可以为空以使用 startdoc 文档的标题。作为 Texinfo 标记插入,因此像
@和{}这样的特殊字符需要转义才能按字面插入。- 作者
Texinfo 文档的作者。作为 Texinfo 标记插入。使用
@*分隔多个作者,如:'John@*Sarah'。- dir_entry
将显示在顶级
DIR菜单文件中的名称。- description
将显示在顶级
DIR菜单文件中的描述性文本。- category
指定此条目将出现在顶级
DIR菜单文件中的节。- toctree_only
必须为
True或False。如果为 True,则输出中不包含 startdoc 文档本身,仅包含通过 ToC 树引用的文档。使用此选项,您可以将额外的材料放入主文档中,这些材料会显示在 HTML 中,但不会显示在 Texinfo 输出中。
在 1.1 版本中添加。
- texinfo_appendices¶
- 类型:
Sequence[str]- 默认值:
[]
要作为附录附加到所有手册的文档名称列表。
在 1.1 版本中添加。
- texinfo_cross_references¶
- 类型:
bool- 默认值:
True
在文档中生成内联引用。禁用内联引用可以使信息文件在使用独立阅读器 (
info) 时更具可读性。在版本 4.4 中添加。
- texinfo_domain_indices¶
- 类型:
bool | Sequence[str]- 默认值:
True
如果为 True,则除了通用索引之外,还生成特定于域的索引。例如,对于 Python 域,这是全局模块索引。
此值可以是布尔值或应生成的索引名称列表。要查找特定索引的索引名称,请查看 HTML 文件名。例如,Python 模块索引的名称为
'py-modindex'。示例
texinfo_domain_indices = { 'py-modindex', }
在 1.1 版本中添加。
在 7.4 版本中变更: 允许并首选 set 类型。
- texinfo_elements¶
- 类型:
dict[str, Any]- 默认值:
{}
一个字典,其中包含 Texinfo 代码片段,这些代码片段会覆盖 Sphinx 通常放入生成的
.texi文件中的代码片段。您可能想要覆盖的键包括
'paragraphindent'每个段落首行缩进的空格数,默认为
2。指定0表示不缩进。'exampleindent'示例或文字块的行缩进的空格数,默认为
4。指定0表示不缩进。'preamble'在文件开头附近插入的 Texinfo 标记。
'copying'在
@copying块中插入并在标题后显示的 Texinfo 标记。默认值由一个简单的标题页组成,用于标识项目。
由其他选项设置因此不应覆盖的键是
'author'、'body'、'date'、'direntry''filename'、'project'、'release'和'title'。
在 1.1 版本中添加。
- 类型:
bool- 默认值:
False
不要在 “Top” 节点的菜单中生成
@detailmenu,其中包含文档中每个子节点的条目。在版本 1.2 中新增。
- texinfo_show_urls¶
- 类型:
'footnote' | 'no' | 'inline'- 默认值:
'footnote'
控制如何显示 URL 地址。该设置可以具有以下值
'footnote'在脚注中显示 URL。
'no'不显示 URL。
'inline'在括号中内联显示 URL。
在 1.1 版本中添加。
QtHelp 输出选项¶
这些选项影响 qthelp 输出。此构建器派生自 HTML 构建器,因此 HTML 选项也适用于适当的情况。
- qthelp_basename¶
- 类型:
str- 默认值:
- project 的值
qthelp 文件的基本名称。
- qthelp_namespace¶
- 类型:
str- 默认值:
'org.sphinx.{project_name}.{project_version}'
qthelp 文件的命名空间。
- qthelp_theme¶
- 类型:
str- 默认值:
'nonav'
qthelp 输出的 HTML 主题。
XML 输出选项¶
- xml_pretty¶
- 类型:
bool- 默认值:
True
美化打印 XML。
在版本 1.2 中新增。
linkcheck 构建器的选项¶
过滤¶
这些选项控制 linkcheck 构建器检查哪些链接,以及它忽略哪些失败和重定向。
- linkcheck_allowed_redirects¶
- 类型:
dict[str, str]- 默认值:
{}
一个字典,将源 URI 的模式映射到规范 URI 的模式。当满足以下条件时,linkcheck 构建器将重定向的链接视为 “工作正常”:
文档中的链接与源 URI 模式匹配,并且
重定向位置与规范 URI 模式匹配。
当 linkcheck 构建器发现不符合上述规则的重定向链接时,它将发出警告。当使用
fail-on-warnings 模式时,这对于检测意外重定向非常有用。示例
linkcheck_allowed_redirects = { # All HTTP redirections from the source URI to # the canonical URI will be treated as "working". r'https://sphinx-doc\.org/.*': r'https://sphinx-doc\.org/en/master/.*' }
在 4.1 版本中添加。
- linkcheck_anchors¶
- 类型:
bool- 默认值:
True
检查链接中
#anchor的有效性。由于这需要下载整个文档,因此启用后速度会明显变慢。在版本 1.2 中新增。
- linkcheck_anchors_ignore¶
- 类型:
Sequence[str]- 默认值:
["^!"]
与锚点匹配的正则表达式列表,当检查链接中锚点的有效性时,linkcheck 构建器应跳过这些锚点。例如,这允许跳过网站的 JavaScript 添加的锚点。
提示
使用
linkcheck_anchors_ignore_for_url来检查 URL,但跳过验证锚点是否存在。注意
如果您想忽略特定页面或与特定模式匹配的页面的锚点(但仍然检查没有锚点的相同页面的出现),请改用
linkcheck_ignore,例如,如下所示linkcheck_ignore = [ 'https://sphinx-doc.cn/en/1.7/intro.html#', ]
1.5 版本新增。
- linkcheck_anchors_ignore_for_url¶
- 类型:
Sequence[str]- 默认值:
()
与 URL 匹配的正则表达式的列表或元组,linkcheck 构建器不应检查这些 URL 的锚点的有效性。这允许在逐页的基础上跳过锚点检查,同时仍然检查页面本身的有效性。
在 7.1 版本中添加。
- linkcheck_exclude_documents¶
- 类型:
Sequence[str]- 默认值:
()
与文档匹配的正则表达式列表,linkcheck 构建器不应检查这些文档中链接的有效性。这可以用于允许文档的旧版或历史部分中的链接衰减。
示例
# ignore all links in documents located in a subdirectory named 'legacy' linkcheck_exclude_documents = [r'.*/legacy/.*']
在版本 4.4 中添加。
HTTP 请求¶
这些选项控制 linkcheck 构建器如何发出 HTTP 请求,包括它如何处理重定向和身份验证,以及要使用的工作线程数。
- linkcheck_auth¶
- 类型:
Sequence[tuple[str, Any]]- 默认值:
[]
在执行
linkcheck构建时传递身份验证信息。元组
(regex_pattern, auth_info)列表,其中各项是- regex_pattern
与 URI 匹配的正则表达式。
- auth_info
用于该 URI 的身份验证信息。该值可以是
requests库可以理解的任何内容(有关详细信息,请参阅 requests 身份验证)。
linkcheck 构建器将使用它在
linkcheck_auth列表中找到的第一个匹配auth_info值,因此列表中较早的值具有更高的优先级。示例
linkcheck_auth = [ ('https://foo\.yourcompany\.com/.+', ('johndoe', 'secret')), ('https://.+\.yourcompany\.com/.+', HTTPDigestAuth(...)), ]
在 2.3 版本中添加。
- linkcheck_allow_unauthorized¶
- 类型:
bool- 默认值:
False
当 Web 服务器响应 HTTP 401(未授权)响应时,linkcheck 构建器当前的默认行为是将链接视为 “损坏”。要更改该行为,请将此选项设置为
True。在版本 8.0 中更改: 此选项的默认值已更改为
False,这意味着默认情况下,对检查的超链接的 HTTP 401 响应被视为 “损坏”。在版本 7.3 中添加。
- linkcheck_rate_limit_timeout¶
- 类型:
int- 默认值:
300
linkcheck 构建器可能会在短时间内向同一站点发出大量请求。此设置控制当服务器指示请求受到速率限制时构建器的行为,方法是设置构建器在记录失败之前等待每次尝试之间的最长时间(以秒为单位)。
linkcheck 构建器始终尊重服务器关于何时重试的指示(使用 Retry-After 标头)。否则,
linkcheck在重试之前等待一分钟,并保持将尝试之间的等待时间加倍,直到成功或超过linkcheck_rate_limit_timeout(以秒为单位)。自定义超时应以秒为单位给出。在版本 3.4 中添加。
- linkcheck_report_timeouts_as_broken¶
- 类型:
bool- 默认值:
False
如果在等待超链接的响应时
linkcheck_timeout过期,则默认情况下,linkcheck 构建器会将该链接报告为timeout。要将超时报告为broken,您可以将linkcheck_report_timeouts_as_broken设置为True。在版本 8.0 中更改: 此选项的默认值已更改为
False,这意味着在检查超链接时发生的超时将使用新的 'timeout' 状态代码报告。在版本 7.3 中添加。
- linkcheck_request_headers¶
- 类型:
dict[str, dict[str, str]]- 默认值:
{}
一个字典,将 URL(不带路径)映射到 HTTP 请求标头。
键是 URL 基本字符串,如
'https://sphinx-doc.cn/'。要为其他主机指定标头,可以使用"*"。仅当 URL 与其他设置不匹配时,它才匹配所有主机。值是将标头名称映射到其值的字典。
示例
linkcheck_request_headers = { "https://sphinx-doc.cn/": { "Accept": "text/html", "Accept-Encoding": "utf-8", }, "*": { "Accept": "text/html,application/xhtml+xml", } }
在版本 3.1 中添加。
- linkcheck_retries¶
- 类型:
int- 默认值:
1
linkcheck 构建器在声明 URL 损坏之前尝试检查 URL 的次数。
在 1.4 版本中添加。
- linkcheck_timeout¶
- 类型:
int- 默认值:
30
linkcheck 构建器在每次超链接请求后等待响应的持续时间,以秒为单位。
在 1.1 版本中添加。
- linkcheck_workers¶
- 类型:
int- 默认值:
5
检查链接时要使用的工作线程数。
在 1.1 版本中添加。
域选项¶
C 域的选项¶
- c_extra_keywords¶
- 类型:
Set[str] | Sequence[str]- 默认值:
['alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert', 'thread_local']
C 解析器应识别为关键字的标识符列表。
在版本 4.0.3 中添加。
在版本 7.4 中更改:
c_extra_keywords现在可以是集合。
- c_id_attributes¶
- 类型:
Sequence[str]- 默认值:
()
解析器应额外接受为属性的字符串序列。例如,当
#define已用于属性时,这可以用于可移植性。示例
c_id_attributes = [ 'my_id_attribute', ]
在 3.0 版本中添加。
在版本 7.4 中更改:
c_id_attributes现在可以是元组。
- c_maximum_signature_line_length¶
- 类型:
int | None- 默认值:
None
如果签名的字符长度超过设置的数字,则签名中的每个参数将显示在单独的逻辑行上。
当为
None时,没有最大长度,并且整个签名将显示在单个逻辑行上。这是一个特定于域的设置,覆盖
maximum_signature_line_length。在 7.1 版本中添加。
- c_paren_attributes¶
- 类型:
Sequence[str]- 默认值:
()
解析器应额外接受为带有一个参数的属性的字符串序列。也就是说,如果
my_align_as在列表中,则对于所有具有平衡大括号(()、[]和{})的字符串X,my_align_as(X)将被解析为属性。例如,当#define已用于属性时,这可以用于可移植性。示例
c_paren_attributes = [ 'my_align_as', ]
在 3.0 版本中添加。
在版本 7.4 中更改:
c_paren_attributes现在可以是元组。
C++ 域的选项¶
- cpp_id_attributes¶
- 类型:
Sequence[str]- 默认值:
()
解析器应额外接受为属性的字符串序列。例如,当
#define已用于属性时,这可以用于可移植性。示例
cpp_id_attributes = [ 'my_id_attribute', ]
1.5 版本新增。
在版本 7.4 中更改:
cpp_id_attributes现在可以是元组。
- cpp_index_common_prefix¶
- 类型:
Sequence[str]- 默认值:
()
在全局索引中对 C++ 对象进行排序时,将忽略的前缀列表。
示例
cpp_index_common_prefix = [ 'awesome_lib::', ]
1.5 版本新增。
- cpp_maximum_signature_line_length¶
- 类型:
int | None- 默认值:
None
如果签名的字符长度超过设置的数字,则签名中的每个参数将显示在单独的逻辑行上。
当为
None时,没有最大长度,并且整个签名将显示在单个逻辑行上。这是一个特定于域的设置,覆盖
maximum_signature_line_length。在 7.1 版本中添加。
- cpp_paren_attributes¶
- 类型:
Sequence[str]- 默认值:
()
解析器应额外接受为带有一个参数的属性的字符串序列。也就是说,如果
my_align_as在列表中,则对于所有具有平衡大括号(()、[]和{})的字符串X,my_align_as(X)将被解析为属性。例如,当#define已用于属性时,这可以用于可移植性。示例
cpp_paren_attributes = [ 'my_align_as', ]
1.5 版本新增。
在版本 7.4 中更改:
cpp_paren_attributes现在可以是元组。
Javascript 域的选项¶
- javascript_maximum_signature_line_length¶
- 类型:
int | None- 默认值:
None
如果签名的字符长度超过设置的数字,则签名中的每个参数将显示在单独的逻辑行上。
当为
None时,没有最大长度,并且整个签名将显示在单个逻辑行上。这是一个特定于域的设置,覆盖
maximum_signature_line_length。在 7.1 版本中添加。
- javascript_trailing_comma_in_multi_line_signatures¶
- 类型:
bool- 默认值:
True
如果为 true,则在跨越多行的参数列表中使用尾随逗号。
在版本 8.2 中添加。
Python 域的选项¶
- add_module_names¶
- 类型:
bool- 默认值:
True
一个布尔值,决定是否将模块名称添加到所有 对象 名称(对于定义了某种 “模块” 的对象类型),例如对于
py:function指令。
- modindex_common_prefix¶
- 类型:
list[str]- 默认值:
[]
用于对 Python 模块索引进行排序时忽略的前缀列表(例如,如果设置为
['foo.'],则foo.bar显示在B下,而不是F下)。如果您记录的项目由单个包组成,这可能很方便。注意
目前仅适用于 HTML 构建器。
在 0.6 版本中添加。
- python_display_short_literal_types¶
- 类型:
bool- 默认值:
False
此值控制
Literal类型的显示方式。示例¶
以下示例使用以下
py:function指令.. py:function:: serve_food(item: Literal["egg", "spam", "lobster thermidor"]) -> None
当
False时,Literal类型按照标准的 Python 语法显示,即:serve_food(item: Literal["egg", "spam", "lobster thermidor"]) -> None
当
True时,Literal类型以简短的、受 PEP 604 启发的语法显示,即:serve_food(item: "egg" | "spam" | "lobster thermidor") -> None
6.2 版本新增。
- python_maximum_signature_line_length¶
- 类型:
int | None- 默认值:
None
如果签名的字符长度超过设置的数字,则签名中的每个参数将显示在单独的逻辑行上。
当为
None时,没有最大长度,并且整个签名将显示在单个逻辑行上。这是一个特定于域的设置,覆盖
maximum_signature_line_length。对于 Python 域,签名长度取决于类型参数列表或参数列表是否正在被格式化。对于前者,签名长度忽略参数列表的长度;对于后者,签名长度忽略类型参数列表的长度。
例如,当
python_maximum_signature_line_length = 20时,只有类型参数列表会被换行,而参数列表将渲染在单行上.. py:function:: add[T: VERY_LONG_SUPER_TYPE, U: VERY_LONG_SUPER_TYPE](a: T, b: U)
在 7.1 版本中添加。
- python_trailing_comma_in_multi_line_signatures¶
- 类型:
bool- 默认值:
True
如果为 true,则在跨越多行的参数列表中使用尾随逗号。
在版本 8.2 中添加。
- python_use_unqualified_type_names¶
- 类型:
bool- 默认值:
False
如果可以解析 Python 引用的模块名称,则禁止显示该模块名称。
4.0 版本新增。
注意
此功能为实验性功能。
扩展选项¶
扩展通常有自己的配置选项。Sphinx 第一方扩展的配置选项记录在每个扩展页面中。
示例配置文件¶
# -- Project information -----------------------------------------------------
# https://sphinx-doc.cn/en/master/usage/configuration.html#project-information
project = 'Test Project'
copyright = '2000-2042, The Test Project Authors'
author = 'The Authors'
version = release = '4.16'
# -- General configuration ------------------------------------------------
# https://sphinx-doc.cn/en/master/usage/configuration.html#general-configuration
exclude_patterns = [
'_build',
'Thumbs.db',
'.DS_Store',
]
extensions = []
language = 'en'
master_doc = 'index'
pygments_style = 'sphinx'
source_suffix = '.rst'
templates_path = ['_templates']
# -- Options for HTML output ----------------------------------------------
# https://sphinx-doc.cn/en/master/usage/configuration.html#options-for-html-output
html_theme = 'alabaster'
html_static_path = ['_static']