sphinx.ext.viewcode – 新增連結至高亮顯示的原始碼

模組作者:Georg Brandl

在版本 1.0 中新增。

此擴充功能會查看您的 Python 物件描述(.. class::.. function:: 等),並嘗試尋找包含這些物件的原始碼檔案。當找到時,會為每個模組輸出一個獨立的 HTML 頁面,其中包含高亮顯示的原始碼版本,並且會在所有物件描述中新增一個連結,導向至所描述物件的原始碼。同時也會插入從原始碼回到描述的反向連結。

警告

基本上,viewcode 擴充功能會匯入被連結的模組。如果任何模組在匯入時帶有副作用,這些副作用會在執行 sphinx-build 時被觸發。

如果您要編寫腳本的說明文件(與程式庫模組相對),請確保它們的主程式受到 if __name__ == '__main__' 條件的保護。

此外,如果您不希望透過 viewcode 匯入模組,可以使用 viewcode-find-source 事件,告訴 viewcode 原始碼的位置。

如果啟用 viewcode_follow_imported_members,您還需要使用 viewcode-follow-imported 事件來解析匯入的屬性。

此擴充功能僅適用於 HTML 相關的建構器,例如 htmlapplehelpdevhelphtmlhelpqthelp 等,除了 singlehtml 之外。預設情況下,epub 建構器不支援此擴充功能(請參閱 viewcode_enable_epub)。

設定

viewcode_follow_imported_members
類型:
布林值
預設:
True

如果設定為 True,viewcode 擴充功能會發出 viewcode-follow-imported 事件,讓其他擴充功能解析模組名稱。

在版本 1.3 中新增。

在版本 1.8 中變更: viewcode_import 重新命名為 viewcode_follow_imported_members

viewcode_enable_epub
類型:
布林值
預設:
False

如果設定為 True,即使您使用 epub 建構器,viewcode 擴充功能也會被啟用。此擴充功能會在 toctree 之外產生頁面,但這並非 epub 格式建議的做法。

在 1.4.x 版本之前,此擴充功能是預設啟用的。如果您想要產生與 1.4.x 版本相同的 epub 輸出,應該將此選項設定為 True,但 epub 格式檢查工具的分數會因此降低。

在版本 1.5 中新增。

警告

並非所有 epub 閱讀器都支援 viewcode 擴充功能所產生的頁面。這些閱讀器會忽略指向 toctree 之外頁面的連結。

即使某些閱讀器支援,其呈現結果也可能損壞,而且即使在支援的情況下,epubcheck 的評分也會變差。

viewcode_line_numbers
類型:
布林值
預設:
False

如果設定為 True,行內行號將會新增至高亮顯示的程式碼。

在版本 7.2 中新增。

viewcode-find-source(app, modname)

在版本 1.8 中新增。

尋找模組的原始碼。此事件的事件處理函式應傳回一個元組,包含原始碼本身以及一個標籤字典。此字典將類別、函式、屬性等的名稱,對應到一個元組,其中包含其類型、起始行號和結束行號。類型應為 “class”、“def” 或 “other” 其中之一。

參數:
  • app – Sphinx 應用程式物件。

  • modname – 要尋找原始碼的模組名稱。

viewcode-follow-imported(app, modname, attribute)

在版本 1.8 中新增。

尋找屬性的原始模組名稱。

參數:
  • app – Sphinx 應用程式物件。

  • modname – 屬性所屬的模組名稱。

  • attribute – 要追蹤的成員名稱。