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 是一个保证存在以下键的字典(依赖于域):

  • pymodule (模块名),fullname (对象名)

  • c : names (对象的名称列表)

  • cppnames (对象的名称列表)

  • 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'])
sphinx.ext.linkcode.add_linkcode_domain(domain: str, keys: list[str], override: bool = False) None[源代码]

为域注册一组要使用的新键。

在 8.2 版本加入.