sphinx.ext.linkcode – ソースコードへの外部リンクを追加

モジュールの作者: Pauli Virtanen

バージョン 1.2 で追加.

この拡張はオブジェクトの説明( .. class::.. function:: など)を見て、web上にホストされているコードへの外部リンクを追加します。この意図は sphinx.ext.viewcode 拡張と似ていますが、インターネット上のどこかにソースコードがあることを前提としています。

設定ファイルでそのオブジェクトのURLベースを返す linkcode_resolve 関数を指定する必要があります。

linkcode_resolve

この 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 "http://somesite/sourcerepo/%s.py" % filename