在 Sphinx 的文件链接中使用版本号
Use version number in file links in Sphinx
在 Sphinx 中,可以使用以下语法生成文件 links:
`name_of_file.js <some/location/name_of_file.js>`_
在 conf.py 文件中,定义了一个 version
变量,我们可以像这样在 .rst 文件中使用它:
|version|
不允许使用该语法将版本 link 包含到文件中:
`name_of_file.|version|.min.js <some/location/name_of_file.|version|.min.js>`_
那么,如何为名为 name_of_file.<version_num>.min.js
的文件生成 links 并使用来自 conf.py 的版本号?
我需要类似的东西,经过大量实验后,我找到了解决方法。请注意,这是一个糟糕的解决方案,但它确实有效。
简答:
您需要将 link 的部分拆分到 |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>
长答案
我们需要克服几个障碍:
问题一:
现在,|version|
在您的文档中本质上是一个 substitution definition. When you use a substitution reference,它必须以 space
开头,例如 |version|
。
因此,即使在不是 link 的常规 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
所以你不能在 link \`name_of_file.|version|.min.js`\
中进行替换,|version|
。这就是为什么我们必须使用 raw-html 并将其分解成多个部分,我们再创建 2 个替换定义 |link-pre|
和 |link-post|
,它们将被替换为它们的 raw-html 在生成的输出中。
我尝试使用内联 :raw-html:
role 但这没有帮助,所以不幸的是解决方案变得冗长。
在 Sphinx 中,可以使用以下语法生成文件 links:
`name_of_file.js <some/location/name_of_file.js>`_
在 conf.py 文件中,定义了一个 version
变量,我们可以像这样在 .rst 文件中使用它:
|version|
不允许使用该语法将版本 link 包含到文件中:
`name_of_file.|version|.min.js <some/location/name_of_file.|version|.min.js>`_
那么,如何为名为 name_of_file.<version_num>.min.js
的文件生成 links 并使用来自 conf.py 的版本号?
我需要类似的东西,经过大量实验后,我找到了解决方法。请注意,这是一个糟糕的解决方案,但它确实有效。
简答:
您需要将 link 的部分拆分到 |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>
长答案
我们需要克服几个障碍:
问题一:
现在,|version|
在您的文档中本质上是一个 substitution definition. When you use a substitution reference,它必须以 space
开头,例如 |version|
。
因此,即使在不是 link 的常规 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
所以你不能在 link \`name_of_file.|version|.min.js`\
中进行替换,|version|
。这就是为什么我们必须使用 raw-html 并将其分解成多个部分,我们再创建 2 个替换定义 |link-pre|
和 |link-post|
,它们将被替换为它们的 raw-html 在生成的输出中。
我尝试使用内联 :raw-html:
role 但这没有帮助,所以不幸的是解决方案变得冗长。