sphinx.ext.linkcode --添加指向源代码的外部链接

模块作者: Pauli Virtanen

Added in version 1.2.

该扩展查看您的对象描述 (.. class::.. function:: 等)并将外部链接添加到Web上某处托管的代码。其意图类似于 sphinx.ext.viewcode 扩展名,但假设源代码可以在互联网上的某个地方找到。

在您的配置中,您需要指定 linkcode_resolve 函数,该函数根据对象返回URL。

配置

linkcode_resolve
类型:
Callable[[str, dict[str, str]], str | None] | None
默认:
None

这是一个函数 linkcode_resolve(domain, info) ,它应该将URL返回给与给定域中的对象对应的源代码,并提供给定的信息。

该函数应返回 None 如果没有要添加的链接。

这一论点 domain 指定对象所在的语言域。 info 是保证存在以下关键字的词典(取决于域):

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

  • cnames (对象的名称列表)

  • cppnames (对象的名称列表)

  • javascriptobject (对象的名称), 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 域可以使用以下代码来支持 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[源代码]

注册要用于域的新密钥列表。

Added in version 8.2.