sphinx.ext.viewcode – ハイライトされたソースコードへのリンクを追加

モジュール作者: Georg Brandl

バージョン 1.0 で追加.

この拡張機能は、Python オブジェクトの記述 (.. class::.. function:: など) を調べ、オブジェクトが含まれているソースファイルを見つけようとします。見つかった場合、各モジュールに対して、ハイライトされたソースコードのバージョンを含む個別の HTML ページが出力され、記述されたオブジェクトのソースコードに移動するリンクが、すべてのオブジェクトの説明に追加されます。ソースから説明へのリンクも挿入されます。

警告

基本的に、viewcode 拡張機能は、リンク先のモジュールをインポートします。モジュールにインポート時に副作用がある場合、sphinx-build の実行時にこれらが実行されます。

(ライブラリモジュールとは対照的に) スクリプトをドキュメント化する場合は、メインルーチンが if __name__ == '__main__' 条件で保護されていることを確認してください。

さらに、viewcode でモジュールをインポートしたくない場合は、viewcode-find-source イベントを使用して、ソースコードの場所を viewcode に伝えることができます。

viewcode_follow_imported_members が有効になっている場合、viewcode-follow-imported イベントを使用してインポートされた属性を解決する必要もあります。

この拡張機能は、htmlapplehelpdevhelphtmlhelpqthelp などの HTML 関連のビルダーでのみ機能し、singlehtml を除きます。デフォルトでは、epub ビルダーはこの拡張機能をサポートしていません ( viewcode_enable_epub を参照)。

設定

viewcode_follow_imported_members

これが True の場合、viewcode 拡張機能は、他の拡張機能によってモジュールの名前を解決するために viewcode-follow-imported イベントを発行します。デフォルトは True です。

バージョン 1.3 で追加.

バージョン 1.8 で変更: viewcode_import から viewcode_follow_imported_members に名前が変更されました。

viewcode_enable_epub

これが True の場合、epub ビルダーを使用する場合でも viewcode 拡張機能が有効になります。この拡張機能は toctree の外部にページを生成しますが、これは epub 形式としては推奨されません。

1.4.x までは、この拡張機能は常に有効でした。1.4.x と同じように epub を生成する場合は、True を設定する必要がありますが、epub 形式チェッカーのスコアは悪化します。

デフォルトは False です。

バージョン 1.5 で追加.

警告

すべての epub リーダーが viewcode 拡張機能によって生成されたページをサポートしているわけではありません。これらのリーダーは、toctree の下にないページへのリンクを無視します。

一部のリーダーのレンダリング結果が破損し、リーダーがサポートしていても epubcheck のスコアが悪化します。

viewcode_line_numbers

デフォルト: False

True に設定すると、ハイライトされたコードに行番号がインラインで追加されます。

バージョン 7.2 で追加.

viewcode-find-source(app, modname)

バージョン 1.8 で追加.

モジュールのソースコードを見つけます。このイベントのイベントハンドラーは、ソースコード自体とタグの辞書をタプルで返す必要があります。辞書は、クラス、関数、属性などの名前を、その型、開始行番号、終了行番号のタプルにマップします。型は、「class」、「def」、または「other」のいずれかである必要があります。

パラメーター:
  • app – Sphinx アプリケーションオブジェクト。

  • modname – ソースコードを見つけるモジュールの名前。

viewcode-follow-imported(app, modname, attribute)

バージョン 1.8 で追加.

属性の元のモジュールの名前を見つけます。

パラメーター:
  • app – Sphinx アプリケーションオブジェクト。

  • modname – 属性が属するモジュールの名前。

  • attribute – フォローするメンバーの名前。