有沒有人知道任何選項來按照文件名降序排列toctree? 在升序排列的情況下,我們可以使用:水珠:選項是這樣的:在Sphinx文檔中,我怎樣才能恢復由「glob」標誌選項提供的toctree的順序?
.. toctree:
:glob:
2011*
這將是很方便的寫在修改案文的日常筆記應該一個獅身人面像文件內報告。
有沒有人知道任何選項來按照文件名降序排列toctree? 在升序排列的情況下,我們可以使用:水珠:選項是這樣的:在Sphinx文檔中,我怎樣才能恢復由「glob」標誌選項提供的toctree的順序?
.. toctree:
:glob:
2011*
這將是很方便的寫在修改案文的日常筆記應該一個獅身人面像文件內報告。
沒有簡單的選項來反向排序toctree。但是你可以在寫入文件之前修改文檔結構來完成。這是一個建議。下面的代碼添加到conf.py:當doctree-resolved
事件被觸發
def reverse_toctree(app, doctree, docname):
"""Reverse the order of entries in the root toctree if 'glob' is used."""
if docname == "index":
for node in doctree.traverse():
if node.tagname == "toctree" and node.get("glob"):
node["entries"].reverse()
break
def setup(app):
app.connect("doctree-resolved", reverse_toctree)
的reverse_toctree()
調用回調函數。該功能可以在文檔樹中找到toctree
節點並在原地進行更改。
更多關於獅身人面像和docutils的API的細節:
這增加了一個反向選項toctree。
from sphinx.directives import TocTree
from docutils.parsers.rst import directives
class NewTocTree(TocTree):
option_spec = dict(TocTree.option_spec,
reversed=directives.flag)
def run(self):
rst = super(NewTocTree, self).run()
if 'reversed' in self.options:
rst[0][0]['entries'].reverse()
return rst
def setup(app):
app.add_directive('toctree', NewTocTree)
它可以讓你做的事:
Contents:
.. toctree::
:maxdepth: 2
:reversed:
:glob:
20*
這也顛倒了sidebar中的toctree。 – brandones
獅身人面像的1.5+有一個內置的:reversed:
標誌,你可以添加到toctree:
.. toctree::
:glob:
:reversed:
2011*
欲瞭解更多信息,見the Sphinx documentation。
該功能是在獅身人面像1.5(1.5a2)中添加的:http://www.sphinx-doc.org/en/stable/changes.html#id30。 – mzjn
不錯。這不會扭轉每一個toctree,但?你可以添加一個檢查':顛倒:參數toctree節點來控制這種行爲,不是嗎? –
@Kevin Horn:如果使用:glob:選項,則代碼在「索引」(根)文檔中反轉toctree。 OP沒有具體說明任何詳細要求,我不打算這個答案不僅僅是一個卑微的建議。我相信有很多方法可以調整它。感謝評論和upvote! – mzjn
但是這並不能逆轉邊欄中的ToC。 – Adobe