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'])