我正在使用Sphinx设置文档。我确切地说,我对这个lib很新。
我的文档可以使用默认主题之一构建。一切正常:))
现在,我想自定义主题。我更新了layout.html
以跟随我的皮肤。在此模板中,我添加了globaltoc.html
& localtoc.html
。 toc使用toctree()
& toc
。
我想知道是否有办法更新生成的html,或者我是否需要调整我的css到生成的HTML?
谢谢!
答案 0 :(得分:6)
我会想出你想要的东西 - 因为我觉得我有同样的问题。
例如,在localtoc.html中,模板如下所示:
<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
{{ toc }}
{%- endif %}
{{ toc }}
是狮身人面像的全球宏,我花了大约一个小时的时间去寻找绝对没有运气的地方。
需要注意的是,{{ toc }}
呈现出类似的内容:
<ul>
<li>Toc Item 1</li>
<li>Toc Item 2</li>
<li>Toc Item 3</li>
</ul>
问题在于,如果您的CSS希望按类处理<ul>
或<li>
标记,则无法轻易更改它们。最终我认为这是Sphinx的编剧/ html.py的限制,它仍然可以手工制作很多东西。
真正的解决方案是替换(可能是builders / html.py),但在Sphinx中肯定是writers / html.py。这比我想要的费用要多得多。
我确实设法找到了一些有些人解决了这个问题的人,但只是部分解决了这个问题:
rst2html5,其中包含html5css3 HTMLWriter&amp; HTMLTransformer。和docutils-html5-writer,看起来非常好 - 但由于构建器/ html.py和html5编写器之间的区别,它不是Sphinx的替代品。
最终我使用jinja过滤器提出了这个解决方案。这是一个丑陋的黑客,但它让我超越了障碍。
<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
{{ toc|replace("<ul>", "<ul class=\"custom\">", 1) }}
{%- endif %}