Sphinx文档变量

4
我正在使用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)}

然后,在某些 .rst 文件中:

:test:`1`

带有结果bla_bla_bla1

首先,这是一个无处链接的超链接。其次,我无法编写

:test:` `

甚至只是:test:也不行,因为它无法工作。

这里有我的问题:是否有任何简单的方法创建变量,可以在整个文档中使用?


2
你可以在 rst_epilog 中有多于一个的替换。示例:https://dev59.com/2YTba4cB1Zd3GeqP0w9P#26258989 - mzjn
1个回答

16

多亏了mzjn,我找到了我问题的确切答案。如果未来有人搜索这个问题,我在下面留下了答案。

在我的conf.py文件中,我添加了以下内容:

address = '192.168.1.1'
port = 'port 3333'

rst_prolog = """
.. |address| replace:: {0}
.. |port| replace:: {1}
""".format(
address, 
port
)

然后在我的 .rst 文件中只需使用:

|address| - |port|

结果为192.168.1.1 - 端口3333。这正是我所需要的,非常感谢mzjn


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接