我正在为我的一个项目使用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中使用?
答案 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 。