插件¶
由于许多项目在其文档中都需要特殊功能,Sphinx 允许在构建过程中添加“插件”,每个插件都可以修改处理文档的任何方面。
本章节描述了随 Sphinx 打包的插件。有关编写您自己的插件的 API 文档,请参阅 Sphinx API。
内建插件¶
这些插件是内建的,可以通过 extensions
配置值中的相应条目激活:
sphinx.ext.autodoc
-- Include documentation from docstringssphinx.ext.autosectionlabel
-- 允许通过标题引用章节sphinx.ext.autosummary
-- Generate autodoc summariessphinx.ext.coverage
-- Collect doc coverage statssphinx.ext.doctest
-- Test snippets in the documentationsphinx.ext.duration
-- Measure durations of Sphinx processingsphinx.ext.extlinks
-- 缩短外部链接的标记sphinx.ext.githubpages
-- 在 GitHub Pages 上发布 HTML 文档sphinx.ext.graphviz
-- 在文档中嵌入 Graphviz 图sphinx.ext.ifconfig
-- Include content based on configurationsphinx.ext.imgconverter
-- A reference image converter using Imagemagicksphinx.ext.inheritance_diagram
-- Include inheritance diagramssphinx.ext.intersphinx
-- 链接到其他项目的文档sphinx.ext.linkcode
-- 添加到源代码的外部链接- Math support for HTML outputs in Sphinx
sphinx.ext.napoleon
-- 支持 NumPy 和 Google 风格的文档字符串sphinx.ext.todo
-- Support for todo itemssphinx.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
目录中。