sphinx 中的嵌套替换

Jos*_*món 4 restructuredtext substitution python-sphinx

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

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v2.0.txt
Run Code Online (Sandbox Code Playgroud)

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

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v |version| .txt
Run Code Online (Sandbox Code Playgroud)

但嵌套替换被忽略。我已经在谷歌上搜索了一个多小时了,我很惊讶以前没有人问过这个问题。我看过一些关于解析文字的内容,但我无法让它工作。基于其他别名创建别名应该是很常见的事情,对吧?我错过了什么吗?对此有更好的方法吗?

mzj*_*zjn 6

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

替代定义:

.. |MyFile| replace:: a_very_very_long_name_for_a_file_v\ |version|\ .txt
Run Code Online (Sandbox Code Playgroud)

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

a_very_very_long_name_for_a_file_v2.0.txt
Run Code Online (Sandbox Code Playgroud)

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