如何打印sphinx项目中定义的所有标签?

2024-09-27 21:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想打印在我的项目中所有斯芬克斯文档中定义的所有标签的列表,包括我这样手动定义的标签

.. _mylabel:

以及sphinx自动生成的标签,例如:ref:`genindex`和:ref:`search`。在

对于大型项目,我经常忘记我是如何拼写某些标签的(我是称之为“示例”、“示例”还是“教派示例”)。如果我可以打印出在任何一个文件中定义的所有标签,我就可以在每次引用某个文件时查看该列表并识别其名称,而无需检查单个文件。在


Tags: 文件项目文档ref示例列表search定义
2条回答

当sphinx运行时,它将解析的文档信息保存在一个名为environmment.pickle的文件中。这包括在项目中定义的所有引用的标签,包括在rst文件中显式显示的和在运行sphinx时自动设置的那些。 这是按域排序的。以下是在“标准域”(std)中查找所有标签的方法:

import cPickle
dat = cPickle.load(file('environment.pickle'))
dat.domaindata['std']['labels'].keys()

这同样适用于其他狮身人面像领域。 您将看到标签modindex(对于python模块索引)总是被定义的,即使没有生成模块索引(指向这个的链接将是死的)。在

Sphinx只定义了很少的标签(searchgenindexmodindex),因此这里所述的方法回答了我最初的问题,但可能只对Sphinx扩展的调试有用。在

最简单的方法是使用grep并使用regex进行搜索:

grep '^\.\. _' path/to/docs/* -r

相关问题 更多 >

    热门问题