在Sphinx中使用文件链接中的版本号

Hos*_*com 4 python-sphinx

在Sphinx中,可以使用以下语法生成文件链接:

`name_of_file.js <some/location/name_of_file.js>`_
Run Code Online (Sandbox Code Playgroud)

在conf.py文件中,version定义了一个变量,我们可以在.rst文件中使用这样的变量:

|version|
Run Code Online (Sandbox Code Playgroud)

不允许使用该语法将版本包含到文件链接中:

`name_of_file.|version|.min.js <some/location/name_of_file.|version|.min.js>`_
Run Code Online (Sandbox Code Playgroud)

那么,我如何生成指向类似文件的链接name_of_file.<version_num>.min.js并使用conf.py中的版本号?

Sub*_*due 7

我需要类似的东西,经过多次实验,我有一个解决方法.请注意,这是一个糟糕的解决方案,但它的工作原理.

简短的回答:

您需要将链接的各个部分拆分为| 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>
Run Code Online (Sandbox Code Playgroud)

答案很长

我们需要克服几个障碍:

问题1:现在,|version|本质上是一个替代定义.当您在文档中使用替换引用时,它必须以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|在链接中进行替换\`name_of_file.|version|.min.js`\.这就是为什么我们要使用原始的HTML,并将其分解成部分,我们创建2点替代的定义|link-pre||link-post|,这将在生成的输出其原始的HTML被替换.

我尝试使用内联:raw-html: 角色,但没有帮助,所以不幸的是,解决方案结果是冗长的.