建構器¶
這些是內建的 Sphinx 建構器。更多的建構器可以透過擴充功能來新增。
建構器的「name」必須提供給 sphinx-build 的 -M 或 -b 命令列選項,以選擇建構器。
最常見的建構器是
- html
建構 HTML 頁面。這是預設的建構器。
- dirhtml
建構 HTML 頁面,但每個文件使用單一目錄。如果從網頁伺服器提供服務,可以產生更美觀的 URL (沒有
.html
)。- singlehtml
建構一個包含所有內容的單一 HTML。
- htmlhelp、qthelp、devhelp、epub
建構 HTML 檔案,並包含額外資訊,以便以這些格式之一建立文件集合。
- applehelp
建構 Apple 說明書。需要 hiutil 和 codesign,它們不是開放原始碼,目前僅在 Mac OS X 10.6 及更高版本上提供。
- latex
建構 LaTeX 原始碼,可以使用 pdflatex 編譯成 PDF 文件。
- man
為 UNIX 系統建構 groff 格式的手冊頁。
- 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 Help 支援檔案,允許 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 中變更:
'pdflatex'
引擎 (預設值) 現在需要 TeX Gyre 字型。在版本 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
或擴充功能,以確定它們與建構器的相容性。
請注意,直接 PDF 建構器由 rinohtype 提供。建構器的名稱是 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 info。Texinfo 格式是 GNU 專案使用的官方文件系統。有關 Texinfo 的更多資訊,請參見 https://gnu.dev.org.tw/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¶
一個模組,實作符合 pickle 模組中同名函式的
dump()
、load()
、dumps()
和loads()
函式。已知實作此介面的模組有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]¶
此建構器不產生任何輸出。輸入僅被解析並檢查一致性。這對於檢查程式碼風格很有用。
在版本 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「讀取器到轉換到寫入器」管道。它產生緊湊的、美觀列印的「偽 XML」檔案,其中巢狀結構由縮排表示 (沒有結束標籤)。輸出所有元素的外部屬性,並且還給出任何剩餘「待處理」元素的內部屬性。
- format: str = 'pseudoxml'¶
建構器的輸出格式,如果沒有產生文件輸出,則為空字串。這通常是檔案副檔名,例如「html」,但接受任何字串值。建構器的格式字串可以被各種組件使用,例如
SphinxPostTransform
或擴充功能,以確定它們與建構器的相容性。
在版本 1.2 中新增。
內建 Sphinx 擴充功能提供更多建構器,包括
序列化建構器詳細資訊¶
所有序列化建構器為每個來源檔案輸出一個檔案和一些特殊檔案。它們還將 reStructuredText 來源檔案複製到輸出目錄下的 _sources
目錄。
PickleHTMLBuilder
是一個內建子類別,實作 pickle 序列化介面。
每個來源檔案的檔案都具有 out_suffix
的擴充功能,並且像來源檔案一樣排列在目錄中。它們反序列化為具有以下鍵的字典 (或類似字典的結構)
body
HTML「主體」(即來源檔案的 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
一個 pickled 字典,具有以下鍵
project
、copyright
、release
、version
與設定檔中給定的值相同。
style
last_updated
上次建置的日期。
builder
使用的建構器的名稱,在 pickle 的情況下,始終為
'pickle'
。titles
所有文件標題的字典,以 HTML 字串表示。
SerializingHTMLBuilder.searchindex_filename
可用於搜尋文件的索引。它是一個 pickled 列表,包含以下條目
已索引的文件名稱列表。
文件標題列表,以 HTML 字串表示,順序與第一個列表相同。
一個字典,將單字詞根 (由英語詞幹分析器處理) 映射到整數列表,這些整數是第一個列表的索引。
environment.pickle
建置環境。這始終是一個 pickle 檔案,獨立於建構器,並且是啟動建構器時使用的環境的副本。
與其他 pickle 檔案不同,此 pickle 檔案需要
sphinx
套件在 unpickling 時可用。