我正在使用 sphinx 自动生成 html 页面。目录真的很长,所以我尝试向 toctree 的 div 添加一个新的 html 类(除其他外),以便我可以使用 JavaScript 库。基本上想要改变 toctree 生成 HTML 的方式。
我找到了 globaltoc.html 文件,将其放入 _templates 文件夹中,并取消注释 conf.d 中的 template_path。 py。
这是 _templates 目录中的文件。
{% extends '!globaltoc.html' %}
<div class="toctree-wrapper compound dhtmlxTree" id="toc", setImagePath="_static/imgs/csh_dhx_skyblue/">
{{ toctree() }}
</div>
如果我这样做完全错误,请告诉我另一种方法。我希望能够在纯粹的休息中做到这一点,但这似乎不可能。我查看了有关 Sphinx 模板的有限示例,这就是我能找到的全部内容。
总体目标是使用dhtmlxTree用于非常大的树。我已将所需的 .js 文件和 .css 文件添加到 layout.html 中。我只需要包含 toctree 的 div 来获得我需要的类。我可以通过手动编辑来获得我需要的结果,现在我需要自动化它。
感谢您的帮助。
最佳答案
我相信我的问题有两种可能的解决方案:
使用 Jinja 模板编写 javascript 和项目符号列表。目前,我不熟悉使用递归 Jinja 标志。因此,这个解决方案虽然可能,但可能比第二个解决方案让我更加沮丧。
只需减少 toctree 指令的 :maxdepth: 属性即可。它被设置为 4。减少这个数字会使目录更小,因此更容易阅读。
在考虑了查看所有图层的需要后,我意识到这很愚蠢,而且降低了目录的实用性。所以我只是将 :maxdepth: 减少到 2,一切又回到了 reST 和 Sphinx 提供的简单性。
更好的设计每次都胜过炫酷因素。
关于javascript - 使用 javascript 代替 Sphinx 的默认目录树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8002644/