sphinx.ext.linkcode -- ソースコードへの外部リンクを追加¶
モジュールの作者: Pauli Virtanen
Added in version 1.2.
この拡張はオブジェクトの説明( .. class:: や .. function:: など)を見て、web上にホストされているコードへの外部リンクを追加します。この意図は sphinx.ext.viewcode 拡張と似ていますが、インターネット上のどこかにソースコードがあることを前提としています。
設定ファイルでそのオブジェクトのURLベースを返す linkcode_resolve 関数を指定する必要があります。
設定¶
- 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
Third-party domains¶
Support for other domains can be added by extensions with
add_linkcode_domain().
For example, a Sphinx extension that provides a php domain
could use the following code to support linkcode:
from sphinx.ext.linkcode import add_linkcode_domain
def setup(app):
add_linkcode_domain('php', ['namespace', 'class', 'fullname'])