狮身人面像中匿名和非匿名超链接之间的差异



在我的一个狮身人面像文件中,我有这个:

.. _pyjnius:
Pyjnius
=======
When running on Android, a version of the `Pyjnius <https://pyjnius.readthedocs.io/en/stable/>`_
library is available. This allows advanced creators to call into the Android
libraries.

它似乎按照我想要的方式编译,但我收到警告说WARNING: Duplicate explicit target name: "pyjnius".我遇到了这个问题,建议用两个下划线而不是一个下划线结束链接,它被称为匿名链接。这不是完全相同的问题:在问题中有两个同名的链接,而在我的情况下只有一个链接,但我尝试了解决方案并且它有效。

`this <link>`_`that <link>`__之间有什么区别,也就是匿名和非匿名链接之间?如果我将所有外部超链接转换为双下划线语法会发生什么?

匿名和非匿名链接之间的(...)之间有什么区别

在声明超链接目标时创建引用名称。但是,如果目标是匿名的,则不会使用名称来匹配与其目标的引用。文档中的以下引述总结了它:

匿名超链接

引用的引用名称不用于将引用与其目标匹配。相反,文档中匿名超链接引用和目标的顺序很重要:第一个匿名引用将链接到第一个匿名目标。文档中匿名超链接引用的数量必须与匿名目标的数量匹配。

现在嵌入在同一句话中的问题的第二部分:

`this <link>`_`that <link>`__有什么区别

如果您仔细阅读 reStructuredText 规范,则不会给出简洁`Title <Link>`_语法的清晰示例,但它是一个外部超链接目标(因为 URL 指向文档的外部)。发生的情况是Title充当目标的引用名称,因此出现逐字错误:">重复显式目标名称"。

使用双下划线匿名声明超链接目标__会导致Title不用作目标名称,因此不再有重复的目标名称,因为声明顺序用于将匿名目标与link匹配。

结语:

就我而言,只有一个链接

是的,但是错误消息所说的是存在"重复的显式目标名称">,问题是Pyjnius在该部分上方声明为目标一次,并使用缩短的语法再次显式声明为链接中的标题(充当目标名称)。

另请注意,引用名称(目标或标题)已规范化,因此不区分大小写。因此,在您的示例中,名称Pyjnius <URL>最终被规范化为pyjnius,这是该部分上方的相同目标名称。

参考名称

  • 大小写被规范化(所有字母字符都转换为小写)。

最新更新