9

我正在尝试使用 sphinx 来记录文档的多个“级别”,例如:

  • 接口参考
  • 手动的
  • 教程
  • 等等。

这个想法是,目录显示在相对于您所在部分的侧边栏上。因此,当您在主索引上时,它仅显示上述部分。当你进入例如。“手动”它显示了特定于该部分的不同 ToC,以及返回主 ToC 的方法。

我一直在试图弄清楚如何在不入侵的情况下让它在 Sphinx 中工作,但到目前为止还不太清楚。文件夹结构已经反映了不同的部分(即所有“手册”文档都存储在 _source/manual 下),我尝试在每个目录中放置单独的索引文件,但似乎 toctree 功能只查看主索引文件。

我正在使用“readthedocs”主题,我正在查看的代码是https://github.com/snide/sphinx_rtd_theme/blob/master/sphinx_rtd_theme/layout.html#L93

谁能告诉我如何使用 Sphinx 添加这样的 ToC?

谢谢

4

2 回答 2

1

(这个回复可能有点晚了)我有类似的情况,三个部分包含在同一个 TOC 树中:

  • 硬件
  • 软件
  • 教程

我试图实现相同的目标,即从我的侧边栏菜单中隐藏不属于当前 toctree-l1 的所有内容。知道 Sphinx 添加了 CSS 类“当前”,我想出了:

#sidebar li.toctree-l1:not(.current){
  display: none;
} 

这不是有史以来最好的解决方案,但由于 Sphinx 只能处理文档的一个主根,并且从那个根开始,它会创建整个 TOC 树,如果您只需要它用于侧边栏菜单,那么 CSS 应该适合您。

我的菜单的屏幕截图只显示了一个部分下面的内容:

于 2015-10-12T15:02:18.223 回答
0

似乎.. toctree::子目录中的文档中的 a 植根于该子目录(参见例如https://docs.python.org/2/_sources/howto/index.txt)。对于上层 TOC,:maxdepth:限制包含下层。

这可以通过制作相应的模板并将其添加到 html_sidebars构建参数来放置到侧边栏中。更新:不起作用;在侧边栏模板中,TOC 的根始终位于顶部。

于 2014-09-15T19:22:12.787 回答