如何使用Sphinx在ReST中的任意一行设置锚点引用?
更清楚,这是一个例子:
A title with an anchor
----------------------
some stuff
这会创建一个标题A title with an anchor
,并在该行的末尾添加一个额外的 on-hover ¶
字符,这将是该行的锚点引用/标题。
现在在以下情况......
``some arbitrary line``
this is actually a definition
...我希望some arbitrary line
有一个锚点,与标题相同。
答案 0 :(得分:8)
您可以使用名为ref
的角色执行此操作:
https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref
具体阅读第2个要点,该要点说明如果未在标题之前放置引用会发生什么。
例如,在名为example.rst
的文件中,您可以使用以下方法:
.. _arbitrary-anchor:
Some Arbitrary Line
This is actually a definition
标签"任意锚"在整个文件中必须是独一无二的。要在文档中的某个位置引用此锚点,您可以执行以下操作:
Lorem ipsum :ref:`here is the anchor link <arbitrary-anchor>` dolor sit amet
不幸的是,当悬停超过引用行时,此锚点不会显示,但您应该能够使用http://example.com/example.html#arbitrary-anchor
由于您提到定义 - 还值得注意的是,有一个名为term
的角色可以让您在词汇表中引用定义。
有关如何使用此功能的示例,请参阅:http://sphinx-doc.org/glossary.html#term-role
以及如何在第3段中引用它: http://sphinx-doc.org/domains.html#domains
最后,如果您需要在段落中间插入一个锚点,一种方法是使用<a id=#sample>inline anchor</a>
创建一个明确的raw role
:
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
当您悬停时,文字如下所示:
点击链接后,文字如下所示:
此选项不太理想,因为它会在定义的左侧和右侧显示:
。但这很好,因为它创造了一个锚点并悬停在不是标题的东西上(所以它也不会出现在TOC中,这正是我想要的)