2014-10-31 64 views
1

我想打印出我的项目,包括我手动定义如下如何打印在狮身人面像项目中定义的所有标签?

.. _mylabel: 

而且标签,那个狮身人面像,如自动生成的标签在所有的狮身人面像文档中定义的所有标签的列表:参考:` genindex`和:ref:`search`。

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

回答

0

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

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

使用'grep'是获得手动定义的所有标签的完美方法,但它确实揭示了狮身人面像自动定义的标签,如“搜索”,“genindex”,... – hamogu 2014-10-31 03:03:34

+0

我找到了解决方案我的问题严格地给了我所有的标签,正如我在问题中所问的那样。不过,我决定接受你的答案,因为这很简单,可能覆盖99.9%的所有用例。 – hamogu 2014-12-04 21:15:44

1

当狮身人面像运行时,它保存有关它在一个名为environmment.pickle文件解析的文件信息。这包括项目中定义的所有引用的标签,它们都在第一个文件中显式定义,在运行sphinx时自动设置。 这是按领域排序。下面是我在其中可以找到“标准域”的所有标签(std)的方式:

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

这同样适用于其他狮身人面像域。 您将看到标签modindex(用于python模块索引)始终是定义的,即使未生成模块索引(链接到此将会失效)。

狮身人面像只定义了很少的标签(searchgenindexmodindex),所以这里说的方法回答我原来的问题,但可能只对狮身人面像的扩展调试。