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后的文字如下所示:
此选项不太理想,因为它在定义的左侧和右侧显示 :
。但这很好,因为它创建了一个锚点并悬停在不是标题的东西上(所以它也不会出现在目录中,这正是我想要的)
如何使用 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后的文字如下所示:
此选项不太理想,因为它在定义的左侧和右侧显示 :
。但这很好,因为它创建了一个锚点并悬停在不是标题的东西上(所以它也不会出现在目录中,这正是我想要的)