sphinx.ext.linkcode
– 新增外部連結至原始碼¶
模組作者:Pauli Virtanen
在版本 1.2 中新增。
此擴充功能會查看您的物件描述(.. class::
、.. function::
等),並新增外部連結至網路上某處託管的程式碼。其意圖與 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
網域的 Sphinx 擴充功能可以使用以下程式碼來支援 linkcode
from sphinx.ext.linkcode import add_linkcode_domain
def setup(app):
add_linkcode_domain('php', ['namespace', 'class', 'fullname'])