Sphinx logo

目次

前のトピックへ

利用可能なビルダー

次のトピックへ

HTMLテーマのサポート

このページ

ビルド設定ファイル

コンフィグレーションディレクトリ には必ず conf.py が含まれています。このファイルは “ビルド設定ファイル” と呼ばれていて、Sphinxの入出力の動作をカスタマイズするのに必要な 設定はこのファイルに含まれています。この設定ファイルはPythonのプログラムとして書かれています。

設定ファイルは、ビルド時にPythonコードとして実行されます。 設定ファイルが含まれる フォルダをカレントディレクトリに設定し、:func:execfile を使用してコールされので、 任意の複雑なコードを記述することができます。Sphinxが読み込む際には単純にファイルの 中の名前空間に定義されている名前を使うことで、設定を読み込みます。

詳細に説明するにあたっての注意点を列挙します。

  • 特別に指定されていない場合には、設定値は文字列型になります。また、指定されていない場合のデフォルト値は空文字列です。
  • “完全限定名(FQN)”という用語は、モジュール内のインポート可能なPythonオブジェクトをあらわす名前です。例えば、 "sphinx.builders.Builder" という完全限定名は、 sphinx.builders モジュールにある Builder クラスを意味します。
  • ドキュメント名は、パスのセパレータとして / を使用します。また、拡張子は含まないで表記します。
  • conf.py はPythonファイルとして読み込むため、Pythonの標準のエンコーディングや、ユニコードサポートなどを利用することができます。設定値にASCII文字以外の文字を含む場合には、エンコーディング宣言(行頭に # -*- coding: utf-8 -*- とコメントを入れる)を使用して、ユニコード文字列リテラルを使用してください。
  • 設定の名前空間の内容はpickle化されます(そのため、Sphinxは設定の変更されたのを確認することができます)。そのため、pickle化できない値が含まれているのを発見したら、 del を使って名前空間から削除します。モジュールは自動的に削除されるため、 import したモジュールがあったら、使用後に del を行う必要はありません。
  • 設定ファイルには、 tags という名前の特別なオブジェクトがあります。これはタグの問い合わせをしたり、変更したりするのに使用します。詳しくは tags も参照してください。問い合わせには tags.has('tag') 、変更には tags.add('tag')tags.remove('tag') という使い方をします。

一般的な設定

extensions

使用したいSphinx拡張のモジュールを指定する配列です。この設定自体は配列で、中に、使用したい拡張モジュールの名前の文字列が含まれます。文字列としてはSphinxに付属のもの( sphinx.ext.* )か、カスタムの拡張機能を指定できます。

もし拡張機能が他のディレクトリにある場合には、confファイルの中で sys.path にパスを追加することで、使用できるようになります。注意すべき点としては、絶対パスを指定しなければならない点です。もし、 コンフィグレーションディレクトリ からの相対パスが分かっている場合には、以下のように os.path.abspath() を以下のように使用します:

import sys, os

sys.path.append(os.path.abspath('sphinxext'))

extensions = ['extname']

上記のコードでは sphinxext というサブディレクトリに含まれる extname という名前の拡張機能をロードしています。

設定ファイル自身で拡張機能を実装してもかいません。その場合には、 setup() という名前の関数を提供する必要があります。

source_suffix
ソースファイルに付く、ファイル名の拡張子を指定します。ここで指定された名前が末尾に付くファイルだけがソースファイルとして読み込まれます。デフォルトは '.rst' です。
source_encoding

すべてのreSTのソースファイルのエンコーディングを指定します。デフォルトかつ、推奨のエンコーディングは 'utf-8-sig' です。

バージョン 0.5 で追加: 以前はSphinxはUTF-8エンコードされたソースしか読み込むことができませんでした。

master_doc
“マスター”ドキュメントのドキュメント名を指定します。”マスター”ドキュメントには、ルートとなる toctree ディレクティブが含まれます。デフォルトは 'contents' です。
unused_docs
ディレクトリ内には存在するが、現在はtoctreeに読み込まないドキュメント名のリストです。Sphinxはこのようなファイルがあると、警告を出力しますが、この警告を非表示にしたいときにこの設定を使用します。
exclude_trees

ソースファイルの検索から除外したいディレクトリパスの配列です。ソースディレクトリからの相対パスで、このフォルダからの再帰的な検索もされなくなるため、サブディレクトリも検索されません。デフォルトは [] です。

バージョン 0.4 で追加.

exclude_dirnames

Sphinxが行う再帰的な処理で使用されたくないディレクトリ名のリストです。Sphinxではソースファイルの探索や静的ファイルのコピーなどで、再帰的にディレクトリを探索します。 'CVS' などの、バージョンコントロールのシステムのためのディレクトリを一括で除外したい場合などに便利です。デフォルトは [] です。

バージョン 0.5 で追加.

exclude_dirs

ソースファイルの探索パスから除外したいパスが含まれるディレクトリ名のリストです。ソースディレクトリからの相対パスで指定します。

バージョン 0.5 で撤廃: この設定はサブディレクトリまでは考慮しないため、すべてのサブディレクトリを指定しなければなりません。 exclude_trees もしくは exclude_dirnames のどちらかのうち、使用したい用途にあったものを代わりに使用してください。

locale_dirs

バージョン 0.5 で追加.

追加のSphinxメッセージカタログ( language 参照)を探索するディレクトリを指定します。ここで指定されたパスが、標準の gettext モジュールによって、 sphinx ドメインで検索されます。 ./locale を設定ファイルに指定した場合には、 ./locale/language/LC_MESSAGES/sphinx.mo という場所にメッセージカタログを置かなければなりません。

デフォルトは [] です。

templates_path
追加のテンプレート(もしくは組み込みのテーマに関するテンプレートをオーバーライトするテンプレート)が含まれているパスのリストです。 コンフィギュレーションディレクトリからの相対パスで設定します。
template_bridge
~sphinx.application.TemplateBridge のインスタンスを返す、呼び出し可能なオブジェクト、もしくはシンプルなクラスをあらわす完全限定名です。このインスタンスはHTMLドキュメントや、その他のビルダーの出力をレンダリングする際に使用されます。現在ではchanges builderに使用されています。テンプレートブリッジはHTMLテーマが使用された場合には、これに対応するように作られるべきです。
rst_epilog

読み込まれたすべてのソースファイルに挿入されるreSturucturedTextの文字列を設定します。この設定を利用すると、文字列置換をすべてのファイルに対して行いたいときに、うまく動作します:

rst_epilog = """
.. |psf| replace:: Pythonソフトウェア財団
"""

バージョン 0.6 で追加.

default_role

デフォルトロールとして使用する、reSTロールの名前(組み込み、もしくはSphinx拡張)を設定します。これは `このような` テキストのマークアップに対して適用されます。これは 'obj'`filter` として関数”filter” とのクロスリファレンスさせることができます(訳注:?)。デフォルトは None で、デフォルトのロールは適用されません。

デフォルトのロールは、reST標準の default-role ディレクティブを使用することによっても個々のドキュメントに対して設定することができます。

バージョン 0.4 で追加.

keep_warnings

Trueが設定されると、警告の内容がビルド済みドキュメントの”システムメッセージ”パラグラフの中に保存されます。この設定に関係なく、 sphinx-build 実行時標準エラー出力には警告が出力されます。

デフォルトは False で 0.5以前の振る舞いを維持するにはこのままにしてください。

バージョン 0.5 で追加.

modindex_common_prefix

モジュールのインデックスをソートする際に、無視するプリフィックスのリストです。例えば、 ['foo.'] が設定されると、 foo.bar に関しては foo. が削除されて bar になるため、 F ではなく、 B の項目として表示されます。プロジェクトの中のひとつのパッケージについてドキュメントを書く際にこの機能は便利に使えるでしょう。現在はHTMLビルダーについて使用されています。デフォルトは [] です。

バージョン 0.6 で追加.

trim_doctest_flags

Trueのに設定されると、doctestを表す、Pythonのインタラクティブセッション形式のコードブロックの行末のdoctestのフラグ(# doctest: FALG, ... ) が削除されます。デフォルトはTrueです。doctestに関連して可能なことはまだ多くありますので、詳しくはSphinx拡張モジュールの :mod:``~sphinx.ext.doctest` をご覧ください。

バージョン 1.0 で追加.

プロジェクト情報

project
ドキュメントを書いているプロジェクト名です。
'2008, Author Name' という形式の著作権文です。
version
主要なプロジェクトのバージョンです。 |version| と置換されます。例えば、Pythonのドキュメントであれば、これは 2.6 になります。
release

完全なプロジェクトのバージョンです。HTMLのテンプレートなどの中の |release| と置換されます。例えば、Pthonのドキュメントの場合には、 2.6.0rc1 のような文字列になります。

versionrelease を分けて設定する必要がなければ、同じ文字列を入れてください。

language

ドキュメントの言語のコードです。Sphinxが自動的に生成する文章が、その言語で出力されるようになります。LaTeXビルダーでは Babel パッケージのオプションとして、適切な言語が選択されます。デフォルトは None で翻訳はされません(訳注:英語で出力されます)

バージョン 0.5 で追加.

現在は以下の言語をサポートしています:

  • cs – チェコ語
  • de – ドイツ語
  • en – 英語
  • es – スペイン語
  • fi – フィンランド語
  • fr – フランス語
  • it – イタリア語
  • nl – オランダ語
  • pl – ポーランド語
  • pt_BR – ブラジルのポーランド語
  • ru – ロシア語
  • sl – スロベニア語
  • uk_UA – ウクライナ語
  • zh_CN – 簡体字中国語
  • zh_TW – 繁体字中国語
  • ja – 日本語
today
today_fmt

これらの値は現在の日付をどのようにフォーマットするのか、というものを決めます。これは |today| を置き換える時に使用されます。

  • もし today に空ではない値が設定されたらそれが使用されます。
  • そうでない場合には、 today_fmt で与えられたフォーマットを使い、 time.strftime() で生成された値が使用されます。

デフォルトでは、 today は空で、 today_fmt には '%B %d, %Y' という値が設定されています。もしも language が設定されていて、翻訳機能が有効になっている場合には、選択された言語の %format が使用されます。

highlight_language

ドキュメント内でハイライトするデフォルトの言語を設定します。デフォルト値は 'python' です。値はPygmentsのlexer名として有効な名前でなければなりません。詳しくは code-examples を参照してください。

バージョン 0.5 で追加.

pygments_style

Pygmentsがソースコードをハイライトする際に使用するスタイルの名前を設定します。デフォルトは 'sphinx' です。これはSphinxに合うようにデザインされた、デフォルトの組み込みのスタイルです。

バージョン 0.3 で変更: もし値として、Pygmentsのカスタムスタイルクラスの完全限定名が指定されると、カスタムスタイルとして使用されます。

add_function_parentheses
関数とメソッドのロールテキストにカッコを付加するかどうかを決めるブール値です。ロールテキストというのは func:`input`input の箇所で、これをTrueにすると、その名前が呼び出し可能オブジェクトであるということが分かるようになります。デフォルトは True です。
add_module_names
function などの 説明ユニット のタイトルのすべてにモジュール名を付けるかどうかを決めるブール値です。デフォルトは True です。
show_authors
moduleauthorsectionauthor ディレクティブの出力を、ビルドしたファイルに含めるかどうかのブール値です。
trim_footnote_reference_space

脚注参照の前のスペースをトリムします。スペースはreSTパーサーが脚注を見分けるためには必要ですが、出力されると見た目があまり良くありません。

バージョン 0.6 で追加.

HTML出力のオプション

これらのオプションはHTMLと、HTMLヘルプ出力、SphinxのHTMLWriterクラスを利用しているその他のビルダーに対して影響を与えます。

html_theme

HTML出力で使用される”テーマ”です。詳しくは テーマに関するセクション を参照してください。デフォルト値は 'default' です。

バージョン 0.6 で追加.

html_theme_options

選択したテーマのルックアンドフィールの設定を行うためのオプションのための辞書です。どのようなオプションがあるかは、テーマごとに異なります。組み込みのテーマで提供されるオプションに関しては、 こちらのセクション を参照してください。

バージョン 0.6 で追加.

html_theme_path

カスタムテーマを含むパスへのリストです。パスはテーマを含むサブディレクトリか、もしくはzipファイルを指定することができます。相対パスを設定すると、コンフィグレーションディレクトリからの相対パスになります。

バージョン 0.6 で追加.

html_style
HTMLページで使用されるスタイルシートを設定します。ここで指定されたファイル名はSphinxの static/ か、 html_static_path で与えられたパスのどちらかの中になければなりません。デフォルトでは選択されたテーマで提供されるスタイルシートを使用します。テーマで使用しているスタイルシートに対して、要素を追加したり、一部の要素の上書きしたいだけの場合には、テーマで提供されるスタイルシートを @import するようにしてください。
html_title
Sphinx自身のテンプレートで生成されるHTMLドキュメントの”タイトル”を指定します。ここで設定された値は、それぞれのページ内の <title> タグに対して追加され、ナビゲーションバーの一番トップの要素として使用されます。デフォルト値は ‘{<project>} v{<revision>} document’ となっています。内部のプレースホルダーは同名のコンフィグ値で置き換えられます。
html_short_title

HTMLドキュメントの短いタイトルを設定します。これはヘッダ内のリンク、HTMLヘルプのドキュメントで使用されます。設定されない場合には、 html_title と同じ値がデフォルトで使用されます。

バージョン 0.4 で追加.

もし設定されると、ドキュメントのロゴ画像として使用されます。設定値は家像ファイル名でなければなりません。画像ファイルはサイドバーのトップに表示されます。画像サイズの幅は200ピクセル以下にしてください。デフォルト値は None です。

バージョン 0.4.1 で追加: 画像ファイルはHTML出力時に _static ディレクトリにコピーされます。もし同名のファイルが存在する場合には上書きされます。

html_favicon

もし設定されると、ドキュメントのfaviconとして使用されます。設定値は静的なパスで、画像ファイルの名前でなければなりません。最近のブラウザでは、タブやウインドウ、ブックマークでこのfaviconの画像を利用します。これは 16x16 あるいは 32x32 の大きさの、Windowsの形式のアイコンファイル(.ico)でなければなりません。デフォルト値は None です。

バージョン 0.4 で追加.

html_static_path

スタイルシートやスクリプトファイルといった、カスタムの静的ファイル類が含まれるパスのリストです。相対パスが設定されると、コンフィグレーションディレクトリからの相対パスとして処理されます。これらのファイルは、テーマが提供する静的ファイルをコピーした後にコピー処理が行われるため、 default.css という名前のファイルがあると、テーマで使用する default.css を上書きしてしまうので注意してください。

バージョン 0.4 で変更: html_static_path で指定されるパスにはサブディレクトリも含めることができます。

html_last_updated_fmt
空の文字列以外が設定されると、すべてのページの最下部に挿入される ‘最終更新:’ というタイムスタンプを出力されるためのテンプレートとして使用されます。テンプレートは strftime() で解釈できるフォーマットを指定してください。デフォルトは '%b %d, %Y' (ロケールによって異なります)になります。
html_use_smartypants
Trueが設定されると、 SmartyPants は、印刷上で実体を修正するために引用文とダッシュを変換するのに使用されるでしょう。 デフォルトは True です。

Trueが設定されると、 Sphinxはそれぞれの見出しに “パーマリンク” を追加します。

バージョン 0.6 で追加: 以前は常に有効になってました。

html_sidebars

カスタムのサイドバーのテンプレートです。設定値は、ドキュメント名をキーに、テンプレート名を値に持つ辞書として設定します:

html_sidebars = {
   'using/windows': 'windowssidebar.html'
}

この設定では、与えられたドキュメントのサイドバーに, windowssidebar.html テンプレートをレンダリングします。

html_additional_pages

HTMLページにレンダリングする、追加のHTMLテンプレートを指定します。設定値はドキュメント名をキーに、テンプレート名を値に持つ辞書として設定します:

html_additional_pages = {
    'download': 'customdownload.html',
}

この設定では、 customdownload.html というテンプレートが download.html というページにレンダリングされます。

ノート

Sphinxの昔のバージョンには html_index と呼ばれる値を持っていて、これだけが唯一 “index” ドキュメントのコンテンツを制御する方法でした。もしこの機能を使っていた場合には、 html_additional_pagesindex というキーを追加して、それまで使用していたカスタムテンプレートを値として設定します。その後、カスタムテンプレートを下記のように書き換えます:

{% extend "defindex.html" %}
{% block tables %}
... 古いテンプレートの内容 ...
{% endblock %}
html_use_modindex
もしTrueに設定されると、HTMLドキュメントにモジュールの索引を挿入します。デフォルトは True です。
html_use_index

Trueが設定されると、HTMLドキュメントに索引を追加します。デフォルトは True です。

バージョン 0.4 で追加.

html_split_index

もしTrueが設定されると、索引が2回作成されます。一つ目は全てのエントリーを含む索引です。2つめは最初の文字ごとにページ分割された索引になります。デフォルトは False です。

バージョン 0.4 で追加.

html_copy_source

Trueに設定されると、 HTMLのビルド時に _sources/name としてreSTのソースファイルが含まれるようになります。デフォルトは True です。

警告

もしもこの設定値が False に設定されると、 JavaScriptの検索機能を使用したときに、マッチしたドキュメントのタイトルしか表示できなくなります。マッチした文章の内容を表示することはできません。

html_copy_source がTrueに設定されていて、かつ、この設定値もTrueに設定された場合に、サイドバーにreSTのソースファイルへのリンクを表示します。デフォルト値は True です。

バージョン 0.6 で追加.

html_use_opensearch
もしこの値が空でなかったら、 OpenSearch <http://opensearch.org> の説明ファイルが生成され、すべてのページにこのファイルを参照する <link> タグが含まれるようになります。OpenSearchが検索ページの位置を示すのに、相対パスをサポートしていないので、 この値はこの設定値の値は、これらのドキュメントが提供されるベースのURLにします。最後のスラッシュ(/)は不要です。例えば、Pythonのドキュメントであれば、 "http://docs.python.org" とします。デフォルト値は '' です。
html_file_suffix

バージョン 0.4 で追加.

もし空でなければ、HTMLファイルを生成するときに、ファイル名の末尾に追加される文字列として使用されます。デフォルトでは ".html" となります。

HTMLファイルに対して生成されるリンクの末尾に付けられる文字列です。デフォルト値としては html_file_suffix の値が設定されます。他のウェブサーバのセットアップをサポートする場合などに、別の値を設定することができます。

バージョン 0.6 で追加.

html_translator_class
HTML変換クラスへの完全限定名(FQN)を表す文字列です。これはSphinxの HTMLTranslator のサブクラスです。これはドキュメントツリーをHTMLに変換するのに使用されます。デフォルト値は None で、組み込みのトランスレータが使用されます。

もしTrueに設定されると、 “(C) Copyright ...” という文字列をHTMLのフッターに出力します。デフォルトは True です。

バージョン 1.0 で追加.

html_show_sphinx

もしTrueが設定されると、 “このドキュメントは Sphinx 0.6.2 で生成しました。” という説明がHTMLのフッターに追加されます。デフォルトは True です。

バージョン 0.4 で追加.

html_output_encoding

HTML出力ファイルのエンコーディングを指定します。デフォルトは 'utf-8' です。このエンコーディング名Pythonのエンコーディング指定と、HTMLの charset の両方で使用できる名前でなければなりません。

バージョン 1.0 で追加.

htmlhelp_basename
HTMLヘルプビルダーについて、出力ファイルのベース名を設定します。デフォルト値は 'pydoc' です。

Options for LaTeX output

These options influence LaTeX output.

latex_documents

This value determines how to group the document tree into LaTeX source files. It must be a list of tuples (startdocname, targetname, title, author, documentclass, toctree_only), where the items are:

  • startdocname: document name that is the “root” of the LaTeX file. All documents referenced by it in TOC trees will be included in the LaTeX file too. (If you want only one LaTeX file, use your master_doc here.)
  • targetname: file name of the LaTeX file in the output directory.
  • title: LaTeX document title. Can be empty to use the title of the startdoc. This is inserted as LaTeX markup, so special characters like a backslash or ampersand must be represented by the proper LaTeX commands if they are to be inserted literally.
  • author: Author for the LaTeX document. The same LaTeX markup caveat as for title applies. Use \and to separate multiple authors, as in: 'John \and Sarah'.
  • documentclass: Must be one of 'manual' or 'howto'. Only “manual” documents will get appendices. Also, howtos will have a simpler title page.
  • toctree_only: Must be True or False. If True, the startdoc document itself is not included in the output, only the documents referenced by it via TOC trees. With this option, you can put extra stuff in the master document that shows up in the HTML, but not the LaTeX output.

バージョン 0.3 で追加: The 6th item toctree_only. Tuples with 5 items are still accepted.

If given, this must be the name of an image file (relative to the configuration directory) that is the logo of the docs. It is placed at the top of the title page. Default: None.
latex_use_parts

If true, the topmost sectioning unit is parts, else it is chapters. Default: False.

バージョン 0.3 で追加.

latex_appendices
A list of document names to append as an appendix to all manuals.
latex_use_modindex
If true, add a module index to LaTeX documents. Default is True.
latex_elements

バージョン 0.5 で追加.

A dictionary that contains LaTeX snippets that override those Sphinx usually puts into the generated .tex files.

Keep in mind that backslashes must be doubled in Python string literals to avoid interpretation as escape sequences.

  • Keys that you may want to override include:

    'papersize'

    Paper size option of the document class ('a4paper' or 'letterpaper'), default 'letterpaper'.

    'pointsize'

    Point size option of the document class ('10pt', '11pt' or '12pt'), default '10pt'.

    'babel'

    “babel” package inclusion, default '\\usepackage{babel}'.

    'fontpkg'

    Font package inclusion, default '\\usepackage{times}' (which uses Times and Helvetica). You can set this to '' to use the Computer Modern fonts.

    'fncychap'

    Inclusion of the “fncychap” package (which makes fancy chapter titles), default '\\usepackage[Bjarne]{fncychap}' for English documentation, '\\usepackage[Sonny]{fncychap}' for internationalized docs (because the “Bjarne” style uses numbers spelled out in English). Other “fncychap” styles you can try include “Lenny”, “Glenn”, “Conny” and “Rejne”. You can also set this to '' to disable fncychap.

    'preamble'

    Additional preamble content, default empty.

    'footer'`

    Additional footer content (before the indices), default empty.

  • Keys that don’t need be overridden unless in special cases are:

    'inputenc'

    “inputenc” package inclusion, default '\\usepackage[utf8]{inputenc}'.

    'fontenc'

    “fontenc” package inclusion, default '\\usepackage[T1]{fontenc}'.

    'maketitle'

    “maketitle” call, default '\\maketitle'. Override if you want to generate a differently-styled title page.

    'tableofcontents'

    “tableofcontents” call, default '\\tableofcontents'. Override if you want to generate a different table of contents or put content between the title page and the TOC.

    'printindex'

    “printindex” call, the last thing in the file, default '\\printindex'. Override if you want to generate the index differently or append some content after the index.

  • Keys that are set by other options and therefore should not be overridden are:

    'docclass' 'classoptions' 'title' 'date' 'release' 'author' 'logo' 'releasename' 'makeindex' 'makemodindex' 'shorthandoff' 'printmodindex'

latex_docclass

A dictionary mapping 'howto' and 'manual' to names of real document classes that will be used as the base for the two Sphinx classes. Default is to use 'article' for 'howto' and 'report' for 'manual'.

バージョン 1.0 で追加.

latex_additional_files

A list of file names, relative to the configuration directory, to copy to the build directory when building LaTeX output. This is useful to copy files that Sphinx doesn’t copy automatically, e.g. if they are referenced in custom LaTeX added in latex_elements. Image files that are referenced in source files (e.g. via .. image::) are copied automatically.

You have to make sure yourself that the filenames don’t collide with those of any automatically copied files.

バージョン 0.6 で追加.

latex_preamble

Additional LaTeX markup for the preamble.

バージョン 0.5 で撤廃: Use the 'preamble' key in the latex_elements value.

latex_paper_size

The output paper size ('letter' or 'a4'). Default is 'letter'.

バージョン 0.5 で撤廃: Use the 'papersize' key in the latex_elements value.

latex_font_size

The font size (‘10pt’, ‘11pt’ or ‘12pt’). Default is '10pt'.

バージョン 0.5 で撤廃: Use the 'pointsize' key in the latex_elements value.