擴充功能¶
由於許多專案的文件會需要特殊功能,Sphinx 允許為建置過程新增「擴充功能」,每個擴充功能幾乎可以修改文件處理的任何方面。
本章節描述與 Sphinx 捆綁的擴充功能。關於編寫你自己的擴充功能的 API 文件,請參閱Sphinx API。
內建擴充功能¶
這些擴充功能是內建的,可以透過在 extensions
設定值中加入對應的條目來啟用
sphinx.ext.apidoc
– 從 Python 套件產生 API 文件sphinx.ext.autodoc
– 從 docstring 包含文件sphinx.ext.autosectionlabel
– 允許依標題參照章節sphinx.ext.autosummary
– 產生 autodoc 摘要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
– 支援 todo 項目sphinx.ext.viewcode
– 新增連結到已突顯的原始碼
第三方擴充功能¶
你可以在 sphinx-contrib 組織中找到許多使用者貢獻的擴充功能。如果你希望將你的擴充功能包含在這個組織中,只需按照 github-administration 專案中提供的指示操作即可。這是可選的,並且還有一些擴充功能託管在其他地方。awesome-sphinxdoc 和 sphinx-extensions 專案都是 Sphinx 套件的精選列表,並且許多套件使用 Framework :: Sphinx :: Extension 和 Framework :: Sphinx :: Theme trove 分類器,分別用於 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
目錄中。