Rinohtype 链接文本是“第 3.1 节”而不是链接或链接目标中指定的文本

问题描述

我指定一个显式链接目标如下:

.. _REPLY_STATUS_CODE:

REPLY_STATUS_CODE (0x0001)
---------------------------

然后像这样创建对它的引用:

Related
    :ref:`REPLY_STATUS_CODE`

也试过这样的:

A :ref:`REPLY_STATUS_CODE <REPLY_STATUS_CODE>` command...

在这两种情况下,链接上的文本都是“第 3.8 节”而不是“REPLY_STATUS_CODE”,使用 Sphinx 构建 HTML 会将链接文本呈现为“REPLY_STATUS_CODE”。有没有办法在 rinohtype 中获取我想要的文本而不是部分和数字?

解决方法

您可以通过调整链接引用样式,使 rinohtype 创建与 HTML 中相同的链接:

[STYLESHEET]
name = My custom style sheet
base = sphinx

[linked reference]
type = custom

您仍然可以使用 :numref: 角色按编号显式引用元素(这确实需要设置 numfig = True,也会影响 HTML 输出)。有关详细信息,请参阅问题 #244 How to restore target number references?

理想情况下,提供像您尝试过的显式链接文本 (:ref:`REPLY_STATUS_CODE <REPLY_STATUS_CODE>` ) 将覆盖按编号链接部分的默认行为,但这需要更改 docutils/Sphinx,因为 rinohtype 无法看到引用与并且没有明确的链接文本。

最后,如果能够定义一个 custom role 以便 rinohtype 可以区分不同类型的引用,那就太好了。例如:

.. role:: titleref(ref)
   :class: titleref

唉,这也不可能。因此,至少目前,您只能使用 :ref::numref:(这也会影响 HTML 输出)来区分。