Sphinx文档变量

时间:2016-03-30 22:38:24

标签: python-sphinx

我正在为我的一个项目使用Sphinx Doc创建文档,并且我在整个文档中使用了很多次单词,例如IP地址,端口号和许多其他可能随时间变化的内容。如果由于某种原因,其中一个将被更改,我想在一个地方简单地改变它,而不是在每个文件中手动改变它。我正在寻找的是一种创建某种资源文件/变量的简单方法,可以从我的所有.rst文件中轻松访问。

我找到了this一个:

my_config_value = 'test'
rst_epilog = '.. |my_conf_val| replace:: %s' % my_config_value

这几乎是完美的,但我想要有很多变数。使用上面的方法,我只能使用一个 - 这还不够。

我也找到了使用sphinx.ext.extlinks的方法。它工作正常,但并不完全符合我的想法。我在conf.py

中使用此功能
extlinks = {'test': ('bla_bla_bla', None)}

然后,在某些人中:

:test:`1`

结果为bla_bla_bla1

首先,这是无处的超链接。第二,我不能写

:test:` `

甚至只是:test:,因为它不起作用。

我的问题出现了:有没有简单的方法来创建变量,可以在整个doc中使用?

1 个答案:

答案 0 :(得分:7)

感谢 mzjn ,我找到了我的问题的确切答案。如果有人将来会搜索它,我会在下面留下答案。

在我address = '192.168.1.1' port = 'port 3333' rst_prolog = """ .. |address| replace:: {0} .. |port| replace:: {1} """.format( address, port ) 我添加了这个:

|address| - |port|

然后在我的第一次使用:

192.168.1.1 - port 3333

结果为 "METRIC" "COUNT" "SETS" FOR_PEOPLE_LIKE_ME 0 SET1 FOR_YOUNG_PEOPLE 1 SET1 GOOD_TASTE 0 SET1 HIGH_SATISFACTION 2 SET1 FOR_STATUS_ORIENTED 0 SET1 FOR_PEOPLE_LIKE_ME 0 SET2 FOR_YOUNG_PEOPLE 1 SET2 GOOD_TASTE 0 SET2 HIGH_SATISFACTION 0 SET2 FOR_STATUS_ORIENTED 3 SET2 。这正是我所需要的。非常感谢 mzjn