首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对"glob“标志选项提供的toctree进行反向排序?

如何对"glob“标志选项提供的toctree进行反向排序?
EN

Stack Overflow用户
提问于 2011-11-30 19:10:22
回答 3查看 2K关注 0票数 12

有没有人知道按文件名降序排列toctree的选项?如果是升序,我们可以使用:glob:选项,如下所示:

代码语言:javascript
复制
.. toctree:
   :glob:

   2011*

对于应该在Sphinx文档中报告的重构文本编写的每日笔记,这将非常方便。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-11 01:38:05

没有对toctree进行反向排序的简单选项。但是,您可以通过在将文档写入文件之前修改文档结构来实现。这里有一个建议。将以下代码添加到conf.py

代码语言:javascript
复制
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)

当触发doctree-resolved事件时,将调用reverse_toctree()回调函数。该函数在文档树中定位toctree节点并就地更改它。

有关Sphinx和Docutils API的更多详细信息:

票数 12
EN

Stack Overflow用户

发布于 2012-04-08 04:34:04

这将向toctree添加一个相反的选项。

代码语言:javascript
复制
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)

这样你就可以做到:

代码语言:javascript
复制
Contents:

.. toctree::
   :maxdepth: 2
   :reversed:
   :glob:

   20*
票数 12
EN

Stack Overflow用户

发布于 2018-01-31 02:10:08

在Sphinx 1.5+中,有一个内置的toctree标志,您可以将其添加到:reversed:中:

代码语言:javascript
复制
.. toctree::
   :glob:
   :reversed:

   2011*

有关详细信息,请参阅the Sphinx documentation

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8324959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档