2012-09-19 42 views
3

我設置了使用Sphinx一個文檔。我確切地說,我對這個庫很感興趣。自定義globaltoc&localtoc HTML渲染

我的文檔,可以使用默認的主題之一構建。一切工作正常:)

現在,我想自定義的主題。我更新了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的writer/html.py的一個限制,它仍然手工完成了很多工作。

真正的解決方案是替換(可能是builders/html.py),但絕對是Sphinx中的作者/ html.py。這比我想花費的多得多。

我還是設法找到一對夫婦的人誰已經稍微解決了這個問題,但只是部分:

rst2html5,其中包含一個html5css3的HTMLWriter & HTMLTransformer。和docutils-html5-writer,這看起來非常好 - 但由於builders/html.py和html5 writer之間的差異,它不是斯芬克斯的替代品。

最終我想出了使用jinja過濾器的這個解決方案。這是一個醜陋的黑客,但它讓我越過了障礙。

<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3> 
    {{ toc|replace("<ul>", "<ul class=\"custom\">", 1) }} 
{%- endif %} 
+0

感謝您的回答!這正是我在最初的問題中指出的(你解釋得好多了:))。無論如何,我沒有找到解決問題的「好辦法」...... – egeloen