非索引方法的本地页面链接

Local page links for non-indexed methods

我正在使用 sphinx 来记录一个 C++ 项目,其中有多个记录 class 的页面。在这些中,我对 class 方法使用了 :noindex:,否则它们会使整个项目索引页面变得混乱。

.. cpp:function:: void foo(int a)
    :noindex:

但是,这也造成的差异之一是我无法创建本地页内 link。例如,在不同方法的文档正文中:

The first argument is the same as that to :cpp:func:`foo`.

foo() 上没有 :noindex:,这个 link 有效。有了它,不会产生错误,有一个link,但它dead/useless/goes无处可去。

我该如何解决这个问题?

在 reStructuredText 中手动创建本地 links 相当简单:

.. _`foo()`
.. cpp:function:: void foo(int a)
    :noindex:

定义目标而不改变任何外观。给link吧,

The first argument is the same as that to `foo()`_.

注意下划线的位置是从前到后。如果要包含括号,则需要打勾;如果标签是纯字母数字,则可以将其丢弃。

几个缺点:

  • 您不能将其包装在标记中,例如等宽或强调 link 文本。
  • 似乎没有办法替换 link 文本。