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 相关构建器,如 html、applehelp、 devhelp、 htmlhelp、 qthelp 等,除了 singlehtml。默认情况下,epub 构建器不支持此扩展(请参阅 viewcode_enable_epub)。
配置¶
- viewcode_follow_imported_members¶
- 类型:
- bool
- 默认:
- True
 - 如果为 - True,viewcode 扩展将发出- viewcode-follow-imported事件,以便其他扩展解析模块的名称。- 在 1.3 版本中添加。 - 在 1.8 版本中更改: 从 - viewcode_import重命名为- viewcode_follow_imported_members。
- viewcode_enable_epub¶
- 类型:
- bool
- 默认:
- False
 - 如果为 - True,即使您使用 epub 构建器,viewcode 扩展也会启用。此扩展在 toctree 之外生成页面,但这对于 epub 格式来说不是首选。- 在 1.4.x 之前,此扩展始终启用。如果您想生成与 1.4.x 相同的 epub,则应设置为 - True,但 epub 格式检查器的得分会变得更差。- 在 1.5 版本中添加。 - 警告 - 并非所有 epub 阅读器都支持 viewcode 扩展生成的页面。这些阅读器会忽略指向不在 toctree 下的页面的链接。 - 即使阅读器支持,某些阅读器的渲染结果也会损坏,并且 epubcheck 的得分也会变得更差。 
- viewcode_line_numbers¶
- 类型:
- bool
- 默认:
- 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 – 要跟踪的成员名称。