sphinx.ext.linkcode -- 向源代码添加外部链接¶
模块作者: Pauli Virtanen
在 1.2 版本加入.
这个扩展查看你的对象描述(.. class::, .. function:: 等),并将外部链接添加到web上某处托管的代码。意图与 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'])