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
是保证存在以下关键字的词典(取决于域):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
域可以使用以下代码来支持 linkcode
:
from sphinx.ext.linkcode import add_linkcode_domain
def setup(app):
add_linkcode_domain('php', ['namespace', 'class', 'fullname'])