3

如何在 reStructuredText 中创建一个编号列表,其中每个项目都是指向下面一些相应文本的链接?例如,用于“常见问题解答”页面,其中问题被列出并编号为超链接,每个问题的链接都指向页面下方的答案。例如:

1. question 1 [links to #1 below]
2. question 2 [links to #2 below]
3. question 3 [links to #3 below]
4. ...

#1 question 1:
the answer to question 1

#2 question 2:
the answer to question 2

#3 question 3:
the answer to question 3

在 HTML 中,这可以用hrefs#符号来完成,但我想知道等效的 reStructuredText 语法是什么?

4

2 回答 2

5

一个很好的例子是Docutils 常见问题解答(reStructuredText 是与 Docutils 一起开发的,而 Sphinx 只是 Docutils 的扩展)。此处的常见问题解答仅由章节标题和目录指令构成(请参阅 reStructuredText 源代码,页面底部的链接)。

你在评论中说你的页面上已经有一个目录,所以你想要的是第二个目录,它是常见问题部分的本地目录。这可以通过指令的:local:选项来完成contents。尝试以下示例以查看此本地目录的实际效果:

=======================================
Testing the inclusion of an FAQ section
=======================================

.. contents:: Table of Contents
   :depth: 1

Some uninteresting section
==========================

with some text...

FAQ
===

.. contents::
  :local:
  :backlinks: none
  :depth: 1

Question 1
----------

Lorem ipsum dolor sit amet...

Question 2
----------

Suspendisse tortor tellus...

Question 3
----------

Mauris in magna sed arcu semper auctor vitae eu risus...

Some other uninteresting section
================================

with some text...
于 2012-06-03T23:02:54.950 回答
3

请参阅“重组文本列表”的第一个 Google 结果中的枚举列表内部超链接目标。您可以像这样组合这些:

#. `question 1`_
#. `question 2`_

.. _question 1:
the answer to question 1

对于每个评论的反向引用,您可以使用“内联内部目标”,快速参考提到但只有完整参考实际描述。不幸的是,同一文本似乎不可能既是链接又是目标(即使语法在技术上允许这样做,它也会模棱两可),因此列表项中需要更多的文本而不仅仅是问题。您最好的方法可能是将每个问题链接回列表而不是特定列表项 - 例如,

.. _List of questions:
...

.. _question 1:
the answer to question 1
`List of questions`_
于 2012-06-02T01:03:38.037 回答