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