web-dev-qa-db-ja.com

各ページのサイドバーにtoctreeを含める方法

SphinxでHTMLドキュメントを生成しています。

ドキュメント内の各HTMLページのサイドバーを変更してtoctreeを含めるにはどうすればよいですか?デフォルトでは、toctreeはmaster_docページ、サイドバーではなくメインエリアのみ。

これを行う簡単な方法はありますか?私はreadthedocsを使用して、生成されたドキュメントをホストします。そのため、readthedocsで入手できない限り、サードパーティのプラグインの使用は避けたいと思います。

39
Travis Bear

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で機能するはずです。

52
shry

'globaltoc.html'をインクルードすると、表示しているページのグローバルとローカルの両方が表示されないという欠点があります。

他の人がこの制限について不満を抱いており、サイドバー、チェックアウトでfull tocをサポートする拡張機能の開発につながったようです https://pypi.python.org/pypi/sphinxcontrib-fulltoc

6
dbailey

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が入力されます。

1
SigmaX