2

我正在使用 sphinx 自动生成 html 页面。目录真的很长,所以我试图在toctree的 div 中添加一个新的 html 类(除其他外),这样我就可以使用 javascript 库。基本上是想改变 toctree 生成其 HTML 的方式。

我找到了globaltoc.html文件,将其放在_templates文件夹中,并在conf.py中取消了template_path的注释。

这是_templates目录中的文件。

{% extends '!globaltoc.html' %}

<div class="toctree-wrapper compound dhtmlxTree" id="toc", setImagePath="_static/imgs/csh_dhx_skyblue/">

{{ toctree() }}
</div>

如果我这样做完全错误,请告诉我另一种方法。我希望能够在纯粹的 reST 中做到这一点,但这似乎是不可能的。我已经查看了有关 Sphinx 模板的有限示例,这就是我能找到的全部内容。

这样做的总体目标是将dhtmlxTree用于非常大的树。我已经将所需的 .js 文件和 .css 文件添加到layout.html。我只需要包含目录树的div就可以拥有我需要的类。我可以通过手动编辑得到我需要的结果,现在我需要自动化它。

谢谢你的帮助。

4

1 回答 1

3

我相信我的问题有两种可能的解决方案:

  1. 使用 Jinja 模板编写 javascript 和项目符号列表。目前,我不熟悉使用递归 Jinja 标志。所以这个解决方案虽然可能,但可能比第二种解决方案更让我感到沮丧。

  2. 简单地减少 toctree 指令的: maxdepth :属性。它被设置为 4。减少这个数字会使目录更小,因此更容易阅读。

在考虑需要查看所有层之后,我意识到这很愚蠢,它降低了目录的有用性。所以我只是将:maxdepth:减少到 2,一切都回到了 reST 和 Sphinx 提供的简单性。

更好的设计每次都胜过酷因素。

于 2011-11-04T15:54:44.827 回答