sphinx.ext.linkcode – 添加外部链接到源代码¶
模块作者:Pauli Virtanen
在 1.2 版本中添加。
此扩展查看您的对象描述(.. class::, .. function:: 等),并添加指向网络上某处托管代码的外部链接。其意图与 sphinx.ext.viewcode 扩展类似,但假定源代码可以在 Internet 上的某处找到。
在您的配置中,您需要指定一个 linkcode_resolve 函数,该函数根据对象返回 URL。
配置¶
- linkcode_resolve¶
- 类型:
Callable[[str, dict[str, str]], str | None] | 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'])