我正在使用Sphinx设置文档.我确切地说,我对这个lib很新.
我的文档可以使用默认主题之一构建.一切正常:)
现在,我想自定义主题.我已经更新了layout.html跟随我的皮肤.在此模板中,我包含globaltoc.html&localtoc.html.toc用toctree()&渲染toc.
我想知道是否有办法更新生成的html或者我是否需要调整我的css到生成的html?
谢谢!
我准备出去探究你想要的东西 - 因为我觉得我有同样的问题.
例如,在localtoc.html中,模板如下所示:
<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
{{ toc }}
{%- endif %}
Run Code Online (Sandbox Code Playgroud)
{{ toc }} 是狮身人面像的全球宏观,我花了大约一个小时的时间来寻找绝对没有运气的地方.
需要注意的是{{ toc }}:
<ul>
<li>Toc Item 1</li>
<li>Toc Item 2</li>
<li>Toc Item 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
问题在于,如果您的CSS想要按类处理<ul>或<li>标记,您无法轻易更改它们.最终我认为这是Sphinx的编剧/ html.py的限制,它仍然可以手工完成很多工作.
真正的解决方案是替换(可能是builders/html.py),但绝对是Sphinx中的writer/html.py.这比我想要的费用要多得多.
我确实设法找到了一些已经解决了这个问题的人,但只是部分解决了这个问题:
rst2html5,包含html5css3 HTMLWriter和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 %}
Run Code Online (Sandbox Code Playgroud)