扩展¶
由于许多项目在其文档中需要特殊特性,Sphinx允许在构建过程中添加“扩展”,每个扩展几乎可以修改文档处理的任何方面。
本章介绍与Sphinx捆绑的插件。有关编写自己的扩展的API文档,请参阅 Sphinx API接口。
内置插件¶
这些插件是内置的,可以通过 extensions 配置值中的相应条目激活:
sphinx.ext.apidoc-- 利用 Python 包产生 API 文档sphinx.ext.autodoc-- 纳入来自docstrings的文档sphinx.ext.autosectionlabel-- 通过标题引用章节sphinx.ext.autosummary-- 生成 autodoc 摘要sphinx.ext.coverage-- 收集文档覆盖率统计信息sphinx.ext.doctest-- 文档中的测试片段sphinx.ext.duration-- 测量Sphinx处理持续的时间sphinx.ext.extlinks-- 标记以缩短外部链接sphinx.ext.githubpages-- 在GitHub页面中发布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风格的文档字符串sphinx.ext.todo-- 支持todo项sphinx.ext.viewcode-- 添加指向突出显示的源代码的链接
第三方插件¶
您可以在 sphinx-contrib 组织中找到用户贡献的几个插件。如果您希望将您的扩展包含在此组织中,只需按照 github-administration 项目中提供的说明进行操作。这是可选的,并且有几个插件托管在其他地方。awesome-sphinxdoc 和 sphinx-extensions 项目都是Sphinx软件包的策划列表,许多软件包分别使用 Framework :: Sphinx :: Extension 和 Framework :: Sphinx :: Theme 分类器作为Sphinx扩展和主题。
你自己的插件放到哪里?¶
项目本地的扩展应放在项目的目录结构中。相应地设置Python的模块搜索路径 搜索路径,以便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 目录中。