39

我想知道是否有办法扩展文件中包含的标题下的所有小节index.rst

例如,它是这样的:

Section 1
Section 2
Section 3

这就是我希望的样子:

Section 1
  Subsection 1.1
  Subsection 1.2
  Subsection 1.3
Section 2
  Subsection 2.1
  Subsection 2.2
  Subsection 2.3
Section 3
  Subsection 3.1
  Subsection 3.2
  Subsection 3.3

如果我点击第 1 节,它会显示下面的内容,但如果我点击第 2 节,第 1 节的内容会被隐藏,只显示 2 节。每次我在索引页面上时,我都希望扩展所有 2 个部分。我试过添加toctreeand maxdepth,没有任何效果。

4

3 回答 3

14

好吧,我在尝试阅读 sphinx 源代码时丢失了大约 340 万个神经元(它是由一群鲁莽鲁莽的浣熊写的吗?!这么多抽象级别)。

所以 :

  • 制作自己的狮身人面像主题(使用 3rd 方主题作为基础,非常简单。我为此使用“可读”主题)
  • 在您拥有 theme.conf 的目录中,添加一个“fulltoc.html”模板,其中包含一行:

fulltoc.html:

{{ toctree(collapse=False) }}

(嘿,注意到“崩溃”论点了吗?)

  • 在 sphinx conf.py 中,修改 html_sidebars 选项以添加您的模板;并声明你的主题

配置文件:

html_theme_path = [customized_readable_theme.get_html_theme_path()]
html_theme = 'customized_readable'
html_sidebars = {'**': ['fulltoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html']}
  • 重建文档
于 2015-10-17T01:47:45.530 回答
2

如果您使用的是 sphinx_rtd_theme,您可以通过更改文件layout.html中定义的 'toctree maxdepth' 值来更改 html 页面中侧边栏菜单的最大深度。该文件通常位于目录中source/_themes/sphinx_rtd_theme。有几种解决方案:

  • 最简单、最快的解决方案:在侧边栏中显示更深的目录树

  • 您正在使用旧版本的主题。然后您可以在以下行中设置一个新的“最大深度”值(例如 3):

    {% set toctree = toctree(maxdepth=3, collapse=False, includehidden=True) %}
    
  • 您正在使用最新版本的主题。然后你可能在文件layout.html中有这些行:

    {% set global_toc = toctree(maxdepth=theme_navigation_depth|int,
                                collapse=theme_collapse_navigation|tobool,
                                includehidden=theme_includehidden|tobool,
                                titles_only=theme_titles_only|tobool) %}
    

    在这种情况下,您可以在 theme.conf 中定义“theme_navigation_depth”:

    [options]
    theme_navigation_depth = 3
    

更改完成后重新编译...不要忘记享受阳光!

于 2019-05-31T23:18:17.930 回答
2

不幸的是,有一个关于此的开放错误: https ://github.com/readthedocs/sphinx_rtd_theme/issues/455

于 2020-02-03T10:25:20.553 回答