构建器¶
这些是内置的 Sphinx 构建器。更多构建器可以通过扩展添加。
构建器的 “名称” 必须在 sphinx-build 的 -M 或 -b 命令行选项中给出,以选择构建器。
最常见的构建器有
- html
构建 HTML 页面。这是默认的构建器。
- dirhtml
构建 HTML 页面,但每个文档使用单个目录。如果从 Web 服务器提供服务,则可以生成更美观的 URL (没有
.html
)。- singlehtml
构建包含全部内容的单个 HTML。
- htmlhelp, qthelp, devhelp, epub
构建带有附加信息的 HTML 文件,用于以这些格式之一构建文档集合。
- applehelp
构建 Apple 帮助书。需要 hiutil 和 codesign,它们不是开源的,目前仅在 Mac OS X 10.6 及更高版本上可用。
- latex
构建 LaTeX 源代码,可以使用 pdflatex 编译为 PDF 文档。
- man
以 groff 格式为 UNIX 系统构建手册页。
- texinfo
构建 Texinfo 文件,可以使用 makeinfo 处理为 Info 文件。
- text
构建纯文本文件。
- gettext
构建 gettext 样式的消息目录 (
.pot
文件)。- doctest
如果启用了
doctest
扩展,则运行文档中的所有 doctest。- linkcheck
检查所有外部链接的完整性。
- xml
构建 Docutils 原生 XML 文件。
- pseudoxml
构建紧凑的、美观打印的 “伪 XML” 文件,显示中间文档树的内部结构。
- class sphinx.builders.html.StandaloneHTMLBuilder[source]¶
这是标准的 HTML 构建器。其输出是一个包含 HTML 文件的目录,其中包含样式表,并且可以选择包含 reStructuredText 源代码。有许多配置值可以自定义此构建器的输出,有关详细信息,请参见 HTML 输出选项 章节。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- class sphinx.builders.dirhtml.DirectoryHTMLBuilder[source]¶
这是标准 HTML 构建器的子类。其输出是一个包含 HTML 文件的目录,其中每个文件都称为
index.html
,并放置在以其页面名称命名的子目录中。例如,文档markup/rest.rst
不会生成输出文件markup/rest.html
,而是markup/rest/index.html
。在生成页面之间的链接时,index.html
被省略,因此 URL 看起来像markup/rest/
。- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/svg+xml', 'image/png', 'image/gif', 'image/jpeg']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
在 0.6 版本中新增。
- class sphinx.builders.singlehtml.SingleFileHTMLBuilder[source]¶
这是一个 HTML 构建器,它将整个项目组合到一个输出文件中。(显然这只适用于较小的项目。)该文件以根文档的名称命名。不会生成索引。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/svg+xml', 'image/png', 'image/gif', 'image/jpeg']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
在 1.0 版本中新增。
- class sphinxcontrib.htmlhelp.HTMLHelpBuilder[source]¶
此构建器生成与独立 HTML 构建器相同的输出,但也会生成 HTML 帮助支持文件,这些文件允许 Microsoft HTML Help Workshop 将它们编译为 CHM 文件。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- class sphinxcontrib.qthelp.QtHelpBuilder[source]¶
此构建器生成与独立 HTML 构建器相同的输出,但也会生成 Qt 帮助 集合支持文件,这些文件允许 Qt 集合生成器编译它们。
在 2.0 版本中变更: 从 sphinx.builders 包移动到 sphinxcontrib.qthelp。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- class sphinxcontrib.applehelp.AppleHelpBuilder[source]¶
此构建器基于独立 HTML 构建器的相同输出生成 Apple 帮助书。
如果源目录包含任何
.lproj
文件夹,则与所选语言对应的文件夹的内容将与生成的输出合并。这些文件夹将被所有其他文档类型忽略。为了生成有效的帮助书,此构建器需要命令行工具 hiutil,该工具仅在 Mac OS X 10.6 及更高版本上可用。您可以通过将
applehelp_disable_external_tools
设置为True
来禁用索引步骤,在这种情况下,输出在 hiutil 在捆绑包中的所有.lproj
文件夹上运行之前将无效。- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/png', 'image/gif', 'image/jpeg', 'image/tiff', 'image/jp2', 'image/svg+xml']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
在 1.3 版本中新增。
在 2.0 版本中变更: 从 sphinx.builders 包移动到 sphinxcontrib.applehelp。
- class sphinxcontrib.devhelp.DevhelpBuilder[source]¶
此构建器生成与独立 HTML 构建器相同的输出,但也会生成 GNOME Devhelp 支持文件,这些文件允许 GNOME Devhelp 阅读器查看它们。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/png', 'image/gif', 'image/jpeg']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
在 2.0 版本中变更: 从 sphinx.builders 包移动到 sphinxcontrib.devhelp。
- class sphinx.builders.epub3.Epub3Builder[source]¶
此构建器生成与独立 HTML 构建器相同的输出,但也会为电子书阅读器生成 epub 文件。有关详细信息,请参见 Epub 信息。有关 epub 格式的定义,请查看 https://idpf.org/epub 或 https://en.wikipedia.org/wiki/EPUB。构建器创建 EPUB 3 文件。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/svg+xml', 'image/png', 'image/gif', 'image/jpeg']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
在 1.4 版本中新增。
在 1.5 版本中变更: 自 Sphinx 1.5 起,epub3 构建器用作默认的 epub 构建器。
- class sphinx.builders.latex.LaTeXBuilder[source]¶
此构建器在输出目录中生成 LaTeX 源文件。实际的 PDF 构建发生在此输出目录内,并且需要在第二步中触发。这可以通过那里的 make all-pdf 完成。要将两个步骤合并为一个步骤,请使用
sphinx-build -M
(即-M latexpdf
而不是-b latexpdf
) 或项目根目录下的 make latexpdf。有关可用选项,请参见
latex_documents
和 LaTeX 输出选项 章节。PDF 构建需要足够完整的 LaTeX 安装。测试目前(自 5.3.0 起)在 Ubuntu 22.04LTS 上完成,其 LaTeX 发行版与截至 2022/02/04 的上游 TeXLive 2021 匹配,但 PDF 构建可以在更旧的 LaTeX 安装上成功完成。
无论如何,例如在 Ubuntu 上,以下软件包都必须存在
texlive-latex-recommended
texlive-fonts-recommended
texlive-fonts-extra
(fontawesome5 需要,请参阅下面的 7.4.0 变更通知)tex-gyre
(如果latex_engine
保留为默认值)texlive-latex-extra
latexmk
在 4.0.0 版本中变更: TeX Gyre 字体现在是
'pdflatex'
引擎(默认)所必需的。在 7.4.0 版本中变更: 现在需要 LaTeX 包
xcolor
(它是 Ubuntutexlive-latex-recommended
的一部分)。推荐使用 LaTeX 包fontawesome5
。有关更多信息,请参见 ‘sphinxsetup’iconpackage
键。在某些情况下需要其他软件包
texlive-lang-cyrillic
用于西里尔文 (并且如果使用默认字体,则还需要cm-super
),texlive-lang-greek
用于希腊文 (并且如果使用默认字体,则还需要cm-super
),texlive-xetex
如果latex_engine
是'xelatex'
,texlive-luatex
如果latex_engine
是'lualatex'
,fonts-freefont-otf
如果latex_engine
是'xelatex'
或'lualatex'
。
注意
自 1.6 起,
make latexpdf
在 GNU/Linux 和 macOS 上使用 latexmk,因为它确保自动执行所需的运行次数。在 Windows 上,PDF 构建执行固定次数的 LaTeX 运行(三次,然后makeindex
,然后再运行两次)。可以通过
LATEXMKOPTS
Makefile 变量将选项传递给latexmk
。例如make latexpdf LATEXMKOPTS="-silent"
将控制台输出减少到最低限度。
此外,如果
latexmk
版本为 4.52b 或更高版本(2017 年 1 月),则在包含大量图形的情况下,LATEXMKOPTS="-xelatex"
可以通过 XeLateX 加速 PDF 构建。要将选项直接传递给
(pdf|xe|lua)latex
二进制文件,请使用变量LATEXOPTS
,例如make latexpdf LATEXOPTS="--halt-on-error"
- format: str = 'latex'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
请注意,rinohtype 正在提供直接 PDF 构建器。构建器的名称是 rinoh
。有关详细信息,请参阅 rinohtype 手册。
- class sphinx.builders.text.TextBuilder[source]¶
此构建器为每个 reStructuredText 文件生成一个文本文件。这几乎与 reStructuredText 源代码相同,但剥离了大部分标记以提高可读性。
- format: str = 'text'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
在 0.4 版本中新增。
- class sphinx.builders.manpage.ManualPageBuilder[source]¶
此构建器以 groff 格式生成手册页。您必须通过
man_pages
配置值指定哪些文档要包含在哪些手册页中。- format: str = 'man'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
在 1.0 版本中新增。
- class sphinx.builders.texinfo.TexinfoBuilder[source]¶
此构建器生成 Texinfo 文件,这些文件可以通过 makeinfo 程序处理成 Info 文件。您必须通过
texinfo_documents
配置值指定哪些文档要包含在哪些 Texinfo 文件中。Info 格式是 GNU Emacs 和基于终端的程序 info 使用的在线帮助系统的基础。有关更多详细信息,请参阅 Texinfo 信息。 Texinfo 格式是 GNU 项目使用的官方文档系统。有关 Texinfo 的更多信息,请访问 https://gnu.ac.cn/software/texinfo/。
- format: str = 'texinfo'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/png', 'image/jpeg', 'image/gif']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
在 1.1 版本中新增。
- class sphinxcontrib.serializinghtml.SerializingHTMLBuilder[source]¶
此构建器使用一个模块来实现 Python 序列化 API(
pickle
,simplejson
,phpserialize
和其他模块)来转储生成的 HTML 文档。pickle 构建器是它的一个子类。序列化为 PHP 序列化 格式的此构建器的具体子类可能如下所示
import phpserialize class PHPSerializedBuilder(SerializingHTMLBuilder): name = 'phpserialized' implementation = phpserialize out_suffix = '.file.phpdump' globalcontext_filename = 'globalcontext.phpdump' searchindex_filename = 'searchindex.phpdump'
- implementation¶
一个实现
dump()
,load()
,dumps()
和loads()
函数的模块,这些函数符合 pickle 模块中同名函数的功能。已知实现此接口的模块有simplejson
,phpserialize
,plistlib
等。
- out_suffix¶
所有常规文件的后缀。
- globalcontext_filename¶
包含“全局上下文”的文件的文件名。这是一个包含一些通用配置值(例如项目名称)的字典。
- searchindex_filename¶
Sphinx 生成的搜索索引的文件名。
有关输出格式的详细信息,请参阅 序列化构建器详细信息。
在 0.5 版本中新增。
- class sphinxcontrib.serializinghtml.PickleHTMLBuilder[source]¶
此构建器生成一个目录,其中包含 pickle 文件,这些文件主要包含 HTML 片段和 TOC 信息,供不使用标准 HTML 模板的 Web 应用程序(或自定义后处理工具)使用。
有关输出格式的详细信息,请参阅 序列化构建器详细信息。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/svg+xml', 'image/png', 'image/gif', 'image/jpeg']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
文件后缀是
.fpickle
。全局上下文称为globalcontext.pickle
,搜索索引为searchindex.pickle
。
- class sphinxcontrib.serializinghtml.JSONHTMLBuilder[source]¶
此构建器生成一个目录,其中包含 JSON 文件,这些文件主要包含 HTML 片段和 TOC 信息,供不使用标准 HTML 模板的 Web 应用程序(或自定义后处理工具)使用。
有关输出格式的详细信息,请参阅 序列化构建器详细信息。
- format: str = 'html'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- supported_image_types: list[str] = ['image/svg+xml', 'image/png', 'image/gif', 'image/jpeg']¶
构建器支持的图像格式的 MIME 类型列表。图像文件按它们在此处出现的顺序搜索。
文件后缀是
.fjson
。全局上下文称为globalcontext.json
,搜索索引为searchindex.json
。在 0.5 版本中新增。
- class sphinx.builders.gettext.MessageCatalogBuilder[source]¶
此构建器生成 gettext 样式的消息目录。每个顶级文件或子目录增长一个
.pot
目录模板。有关更多参考,请参阅关于 国际化 的文档。
- format: str = ''¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
在 1.1 版本中新增。
- class sphinx.builders.changes.ChangesBuilder[source]¶
此构建器为当前的
version
生成所有versionadded
,versionchanged
,deprecated
和versionremoved
指令的 HTML 概述。这对于生成变更日志文件非常有用。- format: str = ''¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
- class sphinx.builders.dummy.DummyBuilder[source]¶
此构建器不生成任何输出。输入仅被解析和检查一致性。这对于 linting 目的很有用。
在 1.4 版本中新增。
- class sphinx.builders.linkcheck.CheckExternalLinksBuilder[source]¶
此构建器扫描所有文档中的外部链接,尝试使用
requests
打开它们,并编写一个概述,哪些链接已损坏并重定向到标准输出和输出目录中的output.txt
。- format: str = ''¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
在 1.5 版本中变更:自 Sphinx 1.5 起,linkcheck 构建器使用 requests 模块。
在 3.4 版本中变更:当服务器应用速率限制时,linkcheck 构建器会重试链接。
- class sphinx.builders.xml.XMLBuilder[source]¶
此构建器生成 Docutils 原生 XML 文件。可以使用标准 XML 工具(如 XSLT 处理器)将输出转换为任意最终形式。
- format: str = 'xml'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
在 1.2 版本中新增。
- class sphinx.builders.xml.PseudoXMLBuilder[source]¶
此构建器用于调试 Sphinx/Docutils “Reader to Transform to Writer” 管道。它生成紧凑的、漂亮打印的“伪 XML”文件,其中嵌套通过缩进表示(没有结束标记)。输出所有元素的外部属性,并给出任何剩余“pending”元素的内部属性。
- format: str = 'pseudoxml'¶
构建器的输出格式,如果没有生成文档输出,则为 ''。这通常是文件扩展名,例如 “html”,但接受任何字符串值。构建器的格式字符串可以被各种组件使用,例如
SphinxPostTransform
或扩展,以确定它们与构建器的兼容性。
在 1.2 版本中新增。
内置的 Sphinx 扩展提供了更多构建器,例如
序列化构建器详细信息¶
所有序列化构建器为每个源文件输出一个文件和一些特殊文件。它们还将 reStructuredText 源文件复制到输出目录下的 _sources
目录中。
PickleHTMLBuilder
是一个内置子类,它实现了 pickle 序列化接口。
每个源文件的文件都具有 out_suffix
的扩展名,并像源文件一样排列在目录中。它们反序列化为一个字典(或类似字典的结构),其中包含以下键
body
HTML “body”(即源文件的 HTML 渲染),由 HTML 转换器渲染。
title
文档的标题,以 HTML 格式(可能包含标记)。
toc
文件的目录,渲染为 HTML
<ul>
。display_toc
一个布尔值,如果
toc
包含多个条目,则为True
。current_page_name
当前文档的文件名。
parents
,prev
和next
有关 TOC 树中相关章节的信息。每个关系都是一个字典,其中包含键
link
(关系的 HREF)和title
(相关文档的标题,以 HTML 格式)。parents
是关系列表,而prev
和next
是单个关系。sourcename
_sources
下的源文件的名称。
特殊文件位于根输出目录中。 它们是
SerializingHTMLBuilder.globalcontext_filename
一个 pickle 化的字典,包含以下键
project
,copyright
,release
,version
与配置文件中给出的值相同。
style
last_updated
上次构建的日期。
builder
使用的构建器的名称,在 pickle 的情况下,始终为
'pickle'
。titles
所有文档标题的字典,以 HTML 字符串形式。
SerializingHTMLBuilder.searchindex_filename
可用于搜索文档的索引。它是一个 pickle 化的列表,包含以下条目
索引文档名称的列表。
文档标题的列表,以 HTML 字符串形式,与第一个列表的顺序相同。
一个字典,将词根(由英语词干分析器处理)映射到整数列表,这些整数是第一个列表的索引。
environment.pickle
构建环境。这始终是一个 pickle 文件,与构建器无关,并且是启动构建器时使用的环境的副本。
与其他 pickle 文件不同,此 pickle 文件要求
sphinx
包在 unpickling 时可用。