如何将toctree包含在每个页面的侧边栏中

Tra*_*ear 38 python-sphinx

我正在Sphinx中生成html文档.

如何修改文档中每个html页面的侧边栏,以便它们包含toctree?默认情况下,toctree似乎只显示在master_doc页面中,而且只显示在主区域而不是侧边栏中.

是否有捷径可寻?我将使用readthedocs来托管生成的文档,所以我宁愿避免使用任何第三方插件,除非它们也可以在readthedocs上使用.

小智 48

您可以自定义html侧边栏conf.py.

默认的html侧边栏包含4个模板:

['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html']
Run Code Online (Sandbox Code Playgroud)

conf.py你可以localtoc.html改变globaltoc.html是这样的:

html_sidebars = { '**': ['globaltoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'] }
Run Code Online (Sandbox Code Playgroud)

由于这最终会在HTML文件中使用,因此这应该适用于ReadTheDocs.

  • 截至2016年12月 - 此选项不在默认的sphinx conf.py中,因此您无法搜索"html_sidebars",但如果您设置它,它确实有效. (3认同)
  • 这个解决方案在readthedocs上运行良好. (2认同)

dba*_*ley 6

包括'globaltoc.html'有一个缺点,即它不会显示您正在查看的页面的全局和本地toc.

似乎其他人对此限制感到恼火,并导致随后开发了一个扩展,以支持侧边栏中的完整toc,结帐:https://pypi.python.org/pypi/sphinxcontrib-fulltoc