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

Python 如何打印sphinx项目中定义的所有标签?,python,python-sphinx,Python,Python Sphinx,我想打印项目中所有sphinx文档中定义的所有标签的列表,包括像这样手动定义的标签 .. _mylabel: 以及sphinx自动生成的标签,如:ref:`genindex`和:ref:`search` 对于大型项目,我经常忘记我是如何拼写某些标签的——我称之为示例、示例还是教派示例?。如果我可以打印出任何文件中定义的所有标签,我就可以查看该列表并识别名称,而无需每次引用某个文件时检查单个文件 最简单的方法是使用grep,只需使用正则表达式进行搜索: grep '^\.\. _' path/t

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

.. _mylabel:
以及sphinx自动生成的标签,如:ref:`genindex`和:ref:`search`

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

最简单的方法是使用grep,只需使用正则表达式进行搜索:

grep '^\.\. _' path/to/docs/* -r
最简单的方法是使用grep,只需使用正则表达式进行搜索:

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

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

这同样适用于其他斯芬克斯域。 您将看到,python模块索引的标签modindex始终是定义的,即使没有生成模块索引,指向该索引的链接也将失效


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

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

这同样适用于其他斯芬克斯域。 您将看到,python模块索引的标签modindex始终是定义的,即使没有生成模块索引,指向该索引的链接也将失效


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

使用grep是一种完美的方法,可以获得我手动定义的所有标签,但它确实揭示了Sphinx自动定义的标签,例如search,genindex,…我找到了问题的解决方案,严格按照我在问题中提出的要求给我贴上所有标签。尽管如此,我还是决定接受你的答案,因为这要简单得多,可能涵盖了99.9%的所有用例。使用grep是获得我手动定义的所有标签的完美方法,但它确实揭示了sphinx自动定义的标签,例如search、genindex、,…我找到了问题的解决方案,严格按照我在问题中提出的要求给我贴上所有标签。尽管如此,我还是决定接受你的答案,因为这要简单得多,可能涵盖了99.9%的所有用例。如果你想获得所有标签,我已经展示了一个很好的解决方案。dat.domaindata['std']['labels'].keys提供指向标题、数字、表格的所有标签。。。为了获得指向段落的标签,您必须使用dat.domaindata['std']['anonlabels'].keys.keys。如果您想要获得所有标签,它显示了一个很好的解决方案。dat.domaindata['std']['labels'].keys提供指向标题、数字、表格的所有标签。。。为了使标签指向段落,必须使用dat.domaindata['std']['anonlabels'].keys。