Sphinx文档变量

Pat*_*Kaz 1 python-sphinx

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

我找到了这个:

my_config_value = 'test'
rst_epilog = '.. |my_conf_val| replace:: %s' % my_config_value
Run Code Online (Sandbox Code Playgroud)

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

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

extlinks = {'test': ('bla_bla_bla', None)}
Run Code Online (Sandbox Code Playgroud)

然后,在某些情况下:

:test:`1`
Run Code Online (Sandbox Code Playgroud)

结果 bla_bla_bla1

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

:test:` `
Run Code Online (Sandbox Code Playgroud)

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

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

Pat*_*Kaz 8

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

在我的conf.py我添加了这个:

address = '192.168.1.1'
port = 'port 3333'

rst_prolog = """
.. |address| replace:: {0}
.. |port| replace:: {1}
""".format(
address, 
port
)
Run Code Online (Sandbox Code Playgroud)

然后在我的.rst中使用:

|address| - |port|
Run Code Online (Sandbox Code Playgroud)

结果192.168.1.1 - port 3333.这正是我所需要的.非常感谢mzjn.