如何链接到sphinx toctree中的页面部分

Dun*_*eod 16 python-sphinx

我有一个.. toctreesphinx页面的一部分,其中包含rst我的包中其他文件的相对链接.如何包含指向给定页面的子部分的链接,而不是整页本身?

我捅了一下

.. toctree::

   page#section
Run Code Online (Sandbox Code Playgroud)

但那没用.任何帮助都很棒.

Swa*_*der 6

经过多次黑客攻击,我得出了以下解决方案,但我应该首先声明我的目标是:

  1. 标题没有出现在内容正文中
  2. 使标题出现在 TOC 中

所以基本上是从 TOC 链接到文档的任意但不可见的部分。

我需要这个,以便能够链接到一些用 Sphinxcontrib PHPDomain 呈现的源代码文档中的方法——这些方法生成自己的部分链接,但默认情况下不会添加到 TOC 中。

第1步:

在需要此链接功能的 RST 文件的顶部,添加一个新角色,如下所示:

.. role:: hidden
   :class: hidden
Run Code Online (Sandbox Code Playgroud)

第2步:

在内容的某个地方,使用这个角色:

:hidden:`My Arbitrary Location`
"""""""""""""""""""""""""""""""
Run Code Online (Sandbox Code Playgroud)

第 3 步:

向项目添加新的 CSS(通常通过将 CSS 文件添加到_static,或定义样式表或类似的东西来完成 - 请参阅):

.rst-content .hidden {
    display: none;
}

nav .hidden {
    display: unset;
}
Run Code Online (Sandbox Code Playgroud)

这会强制标题隐藏在内容中,但显示在 TOC 中。

然后,根据需要在其他文档中重用该角色。


请注意,如果您的目标是链接到文档中的任意位置并且仍然在内容中显示标题,只需更改 CSS 以根据您的喜好设置标题样式,而不是隐藏它们。