SphinxでHTMLドキュメントを生成しています。
ドキュメント内の各HTMLページのサイドバーを変更してtoctreeを含めるにはどうすればよいですか?デフォルトでは、toctreeはmaster_doc
ページ、サイドバーではなくメインエリアのみ。
これを行う簡単な方法はありますか?私はreadthedocsを使用して、生成されたドキュメントをホストします。そのため、readthedocsで入手できない限り、サードパーティのプラグインの使用は避けたいと思います。
conf.py
でHTMLサイドバーをカスタマイズできます。
デフォルトのHTMLサイドバーは4つのテンプレートで構成されています。
['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html']
conf.py
では、次のようにlocaltoc.htmlをglobaltoc.htmlに変更できます。
html_sidebars = { '**': ['globaltoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'] }
これは最終的にHTMLファイルで使用されるため、ReadTheDocsで機能するはずです。
'globaltoc.html'をインクルードすると、表示しているページのグローバルとローカルの両方が表示されないという欠点があります。
他の人がこの制限について不満を抱いており、サイドバー、チェックアウトでfull tocをサポートする拡張機能の開発につながったようです https://pypi.python.org/pypi/sphinxcontrib-fulltoc
toctree::
ファイルの.rst
ディレクティブにセクションヘッダーをスキャンするファイルの名前を追加するまで、デフォルトのSphinxサイドバーの[ナビゲーション]セクションには何も表示されません。
たとえば、index.rst
ファイルのすべての見出しをナビゲーションウィンドウに表示するには、次のようにtoctree::
リストにindex
(拡張子なし)と記述します。
My Level 1 Heading
==================
Glorious content.
My Level 2 Heading
------------------
More content
.. toctree::
:maxdepth: 2
:caption: Contents:
index
重要なのは、最後にindex
を追加することです。私のような場合、sphinx-quickstart
から自動生成されたテンプレートを使用してプロジェクトを開始します。これにより、(執筆時点で).rst
ファイルにEMPTY toctreesが入力されます。