sphinx.ext.linkcode – 添加外部链接到源代码¶
模块作者:Pauli Virtanen
版本 1.2 中新增。
此扩展程序会查看您的对象描述(.. class::、.. function:: 等)并添加指向托管在网络上某处的代码的外部链接。其意图类似于 sphinx.ext.viewcode 扩展,但假设源代码可以在互联网上找到。
在您的配置中,您需要指定一个 linkcode_resolve 函数,该函数根据对象返回一个 URL。
配置¶
- linkcode_resolve¶
- 类型:
Callable[[str, dict[str, str]], str | None] | None- 默认:
无
这是一个函数
linkcode_resolve(domain, info),它应该返回与给定域中给定信息的对象对应的源代码 URL。如果没有要添加的链接,函数应返回
None。参数
domain指定对象所属的语言域。info是一个字典,保证包含以下键(取决于域)py:module(模块名称)、fullname(对象名称)c:names(对象的名称列表)cpp:names(对象的名称列表)javascript:object(对象名称)、fullname(项名称)
示例
def linkcode_resolve(domain, info): if domain != 'py': return None if not info['module']: return None filename = info['module'].replace('.', '/') return "https://somesite/sourcerepo/%s.py" % filename
第三方域¶
对其他域的支持可以通过使用 add_linkcode_domain() 的扩展来添加。例如,一个提供 php 域的 Sphinx 扩展可以使用以下代码来支持 linkcode
from sphinx.ext.linkcode import add_linkcode_domain
def setup(app):
add_linkcode_domain('php', ['namespace', 'class', 'fullname'])