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,则 viewcode 扩展将发出 viewcode-follow-imported 事件,以便其他扩展解析模块名称。默认为 True

新增于版本 1.3。

更改于版本 1.8: viewcode_import 重命名为 viewcode_follow_imported_members

viewcode_enable_epub

如果此值为 True,则即使使用 epub 构建器,viewcode 扩展也会启用。此扩展会在 toctree 之外生成页面,但这不适合 epub 格式。

在 1.4.x 之前,此扩展始终启用。如果你希望生成与 1.4.x 相同的 epub,则应将其设置为 True,但 epub 格式检查器的得分会降低。

默认为 False

新增于版本 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 – 要跟踪的成员名称。