斯芬克斯中的嵌套替换

Nested substitutions in sphinx

我正在 Sphinx 中创建我的文档(我仍在学习基础知识)。在我的项目中有一些文件名很长,我在我的文档中多次引用它们,所以,为了让我的生活更轻松,我决定使用这样的替换:

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v2.0.txt

然后我只需在我想引用该文件的任何地方键入 |MyFile|。这工作得很好,但现在我想使版本部分可变,这样我就不必在发布新版本时更改所有别名(我确定我会忘记一些东西)。幸运的是,Sphinx 设置了变量 version 所以我尝试了:

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v |version| .txt

但是那个嵌套替换被忽略了。我已经在谷歌上搜索了一个多小时,我很惊讶以前没有人问过这个问题。我看过一些关于 Parsed Literals 的东西,但我无法让它发挥作用。根据其他别名制作别名应该是很常见的事情吧?我错过了什么吗?有更好的方法吗?

对我有用。 conf.py 中 version 设置为 2.0 了吗?

替换定义:

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v\ |version|\ .txt

使用 |MyFile| 参考时的输出:

a_very_very_long_name_for_a_file_v2.0.txt

请注意,|version| 前后的空格被转义,以便将它们从输出中排除(参见 http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#escaping-mechanism)。