.. highlight:: rest
バージョン 0.6 で追加.
この拡張機能は、Epydocや他のAPIドキュメント生成ツールような、関数、メソッド、属性のサマリーのリストを生成します。この機能は、作成中のシステムのdocstringが長く、詳細まで記述されていて、読みやすくするためにページを分けて出力されている場合に便利です。
sphinx.ext.autosummary は以下の2つの機能を持っています:
ドキュメントされている項目へのリンクを含むテーブルを挿入します。この中には、それぞれに対するサマリー文(docstringの最初の文)も含まれます。 autosummary ディレクティブはおまけとして、含まれている項目への toctree のような働きもします。
サンプル:
.. currentmodule:: sphinx
.. autosummary::
environment.BuildEnvironment
util.relative_uri
これは以下のようなテーブルを作成します:
.. currentmodule:: sphinx
.. autosummary::
environment.BuildEnvironment
util.relative_uri
.. currentmodule:: sphinx.ext.autosummary
autosummaryは、 autodoc が行っているのと同様に、 autodoc-process-docstring イベントと、 autodoc-process-signature イベントをフックすることで、 docstringとシグニチャの前処理を行います。
オプション
autosummary テーブルを toctree のエントリーと同様に提供したい場合には、以下のようにします:
.. autosummary::
:toctree: ディレクトリ名
sphinx.environment.BuildEnvironment
sphinx.util.relative_uri
toctree オプションは、このディレクティブに含まれるエントリーのリストに対するスタブのページを作成する、 sphinx-autogen スクリプトにも伝えられます。このオプションは、ディレクトリ名を引数として受け取ります。デフォルトでは sphinx-autogen はこのディレクトリに出力します。もしも引数が与えられなかった場合には、そのディレクティブが含まれているファイルがある、同じディレクトリに出力します。
関数のシグネチャを、:dir:autosummary が出力するリストの中に入れたくない場合には、 nosignatures オプションを設定します:
.. autosummary::
:nosignatures:
sphinx.environment.BuildEnvironment
sphinx.util.relative_uri
template オプションを使用することで、カスタムのテンプレートを指定することができます
サンプル:
.. autosummary::
:template: mytemplate.rst
sphinx.environment.BuildEnvironment
このサンプルのコードをビルドすると、 templates_path に含まれる、 mytemplate.rst という名前のテンプレートファイルを使用して、エントリーのすべてのリストのページを生成します。詳しくは テンプレートのカスタマイズ を参照してください。
sphinx-autogen スクリプトは autosummary にリストアップされた要素のためのドキュメントページのスタブを簡単に生成するのに使用されます。
以下のようにコマンドを起動したとします:
$ sphinx-autogen -o generated *.rst
このコマンドを実行すると、 *.rst にマッチして、なおかつ :toctree: オプションを持つすべてのファイルを読み込み、その中に定義されているすべての autosummary テーブルを読み込みます。読み込んだ後はすべてのドキュメント付けされた要素に関連するスタブページを generated ディレクトリに出力します。デフォルトでは、以下のようなテキストを含むページが生成されます:
sphinx.util.relative_uri
========================
.. autofunction:: sphinx.util.relative_uri
もしも -o オプションが指定されなかった場合には、 :toctree: オプションで設定されたディレクトリにファイルを出力します。
ブーリアン値で、autosummaryディレクティブのために書かれたドキュメントをすべてスキャン して、それぞれのスタブページを作成するかどうか決定します。
スタブページを作成すべきドキュメントをリスト表示するのにも使用することができます。
ディレクティブの :toctree: オプションで指定されたディレクトリに新しいファイルを配置します。
テンプレート のセクションで説明しているのと同じ、Sphinxの標準的なHTMLのJinjaテンプレートを使って、スタブページのテンプレートをカスタマイズすることができます。ただし、 TemplateBridge はサポートしていません。
ノート
もしも、スタブのテンプレートをカスタマイズするのに長い時間をかけているということが分かった場合には、autosummaryによる自動生成をやめて、自分でスタブを書いていく方がいいかもしれません。
autosummaryは以下のテンプレートファイルを使用します:
テンプレートの中では以下の変数名が利用可能です:
ノート
autosummay ディレクティブは、スタブページの中でも使用することができます。スタブページは、これらのディレクティブを元に生成されます。