在Sphinx中,可以使用以下语法生成文件链接:
`name_of_file.js <some/location/name_of_file.js>`_
在conf.py文件中,定义了一个version
变量,我们可以在.rst文件中使用这样的变量:
|version|
不允许使用该语法将版本包含在文件链接中:
`name_of_file.|version|.min.js <some/location/name_of_file.|version|.min.js>`_
那么,如何生成名为name_of_file.<version_num>.min.js
之类文件的链接并使用conf.py中的版本号?
答案 0 :(得分:6)
我需要类似的东西,经过多次实验,我有一个解决方法。请注意,这是一个糟糕的解决方案,但它确实有效。
答案简短:
您需要将链接的各个部分拆分为| version |的左侧和右侧并使用原始html和|version|
。你的.rst会是这样的:
Example of a link with version in it |link-pre|\ |version|\ |link-post|
.. |link-pre| raw:: html
<a href="some/location/name_of_file.
.. |link-post| raw:: html
.min.js">name_of_file.min.js</a>
答案很长
我们需要克服几个障碍:
问题1:
现在,|version|
基本上是substitution definition。当您在文档中使用substitution reference时,必须使用space
这样的|version|
。
因此,即使是常规的rsT句子(不是链接),也不能name_of_file.|version|.min.js
。您需要执行name_of_file.\ |version|.min.js
,即使用space
\
问题2:reST:http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible
不支持嵌套内联标记因此,您无法在链接|version|
内进行替换[{1}}。这就是为什么我们必须使用raw-html并将其分成几部分,然后我们创建另外两个替换定义\`name_of_file.|version|.min.js`\
和|link-pre|
,它们将在生成的输出中替换为raw-html。 / p>
我尝试使用内联|link-post|
role,但这没有帮助,所以很遗憾,解决方案结果是冗长的。