Python 任意线上的 Sphinx 锚点

Python Sphinx anchor on arbitrary line

如何使用 Sphinx 在 ReST 中的任意行设置锚点引用?

为了更清楚,这里有一个例子:

A title with an anchor
----------------------

some stuff

这将创建一个标题 A title with an anchor 并在行尾添加一个额外的 on-hover 字符,这将是line/heading.

的锚引用

现在在下面的情况下...

``some arbitrary line``
    this is actually a definition

...我想为 some arbitrary line 设置锚点,方法与标题相同。

您可以使用名为 ref 的角色执行此操作: https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref

特别阅读第二个要点,它解决了如果参考文献未放在标题之前会发生什么情况。

例如,在名为 example.rst 的文件中,您可以这样使用:

.. _arbitrary-anchor:

Some Arbitrary Line
    This is actually a definition

标签 "arbitrary-anchor" 在整个文档中必须是唯一的。要在文档中的某处引用此锚点,您可以这样做:

Lorem ipsum :ref:`here is the anchor link <arbitrary-anchor>` dolor sit amet

不幸的是,当您 将鼠标悬停在引用的行上 时,该锚点不会显示,但您应该能够使用显式 link 到 http://example.com/example.html#arbitrary-anchor


既然你提到了定义 - 同样值得注意的是有一个叫做term的角色可以让你引用词汇表中的定义。

有关如何使用它的示例,请参阅:http://sphinx-doc.org/glossary.html#term-role

以及如何在第 3 段中引用: http://sphinx-doc.org/domains.html#domains


最后,如果您需要在段落中间插入锚点,一种方法是使用 raw role 创建显式 <a id=#sample>inline anchor</a>http://docutils.sourceforge.net/docs/ref/rst/roles.html#raw


编辑:

还有一个选项。这将创建一个锚点和悬停效果。

.. rst:role:: Sample rst role

    This is a sample definition which links back to its anchor :rst:role:`Sample rst role`

这是一个看起来很有趣的指令,我已经使用了一段时间了。我在看本页源码的时候发现的:

http://sphinx-doc.org/markup/inline.html#inline-markup

http://sphinx-doc.org/_sources/markup/inline.txt

鼠标悬停时文本看起来像这样:

点击link后的文字如下所示:

此选项不太理想,因为它在定义的左侧和右侧显示 :。但这很好,因为它创建了一个锚点并悬停在不是标题的东西上(所以它也不会出现在目录中,这正是我想要的)