扩展¶
由于许多项目将需要在其文档中实现特殊功能,Sphinx 允许在构建过程中添加“扩展”,每个扩展几乎可以修改文档处理的任何方面。
本章描述了 Sphinx 捆绑的扩展。有关编写自己的扩展的 API 文档,请参阅 Sphinx API。
内置扩展¶
这些扩展是内置的,可以通过 extensions 配置值中的相应条目激活
sphinx.ext.apidoc– 从 Python 包生成 API 文档sphinx.ext.autodoc– 包含来自 docstring 的文档sphinx.ext.autosectionlabel– 允许通过标题引用节sphinx.ext.autosummary– 生成自动文档摘要sphinx.ext.coverage– 收集文档覆盖率统计信息sphinx.ext.doctest– 测试文档中的代码片段sphinx.ext.duration– 测量 Sphinx 处理的持续时间sphinx.ext.extlinks– 缩短外部链接的标记sphinx.ext.githubpages– 在 GitHub Pages 中发布 HTML 文档sphinx.ext.graphviz– 添加 Graphviz 图sphinx.ext.ifconfig– 根据配置包含内容sphinx.ext.imgconverter– 使用 Imagemagick 的参考图像转换器sphinx.ext.inheritance_diagram– 包含继承图sphinx.ext.intersphinx– 链接到其他项目的文档sphinx.ext.linkcode– 添加到源代码的外部链接- Sphinx 中 HTML 输出的数学支持
sphinx.ext.napoleon– 支持 NumPy 和 Google 风格的 docstringsphinx.ext.todo– 支持待办事项sphinx.ext.viewcode– 添加指向高亮源代码的链接
第三方扩展¶
你可以在 sphinx-contrib 组织中找到用户贡献的几个扩展。如果你希望将你的扩展包含在这个组织中,只需按照 github-administration 项目中提供的说明操作。这是可选的,还有一些扩展托管在其他地方。awesome-sphinxdoc 和 sphinx-extensions 项目都是 Sphinx 包的精选列表,许多包使用 Framework :: Sphinx :: Extension 和 Framework :: Sphinx :: Theme 归类器分别用于 Sphinx 扩展和主题。
把你的扩展放在哪里?¶
项目本地的扩展应该放在项目的目录结构中。相应地设置 Python 的模块搜索路径 sys.path,以便 Sphinx 可以找到它们。例如,如果你的扩展 foo.py 位于项目根目录的 exts 子目录中,请在 conf.py 中添加
import sys
from pathlib import Path
sys.path.append(str(Path('exts').resolve()))
extensions = ['foo']
你也可以将扩展安装在 sys.path 上的任何其他位置,例如在 site-packages 目录中。