如何在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语法?
答案 0 :(得分:5)
一个很好的例子是Docutils FAQ(reStructuredText是与Docutils一起开发的,而Sphinx只是Docutils的扩展)。这里的FAQ只是用章节标题和table of contents directive构建的(参见页面底部的reStructuredText源代码链接)。
您在评论中说您已经在页面上有一个目录,因此您想要的是第二个目录,这是FAQ部分的本地目录。这可以使用: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...
答案 1 :(得分:3)
在“重组文本列表”的第一个Google结果中查看enumerated lists和internal hyperlink targets。您可以将它们组合起来:
#. `question 1`_
#. `question 2`_
.. _question 1:
the answer to question 1
对于每个评论的反向引用,您可以使用“inline internal targets”,快速参考提及但只有完整参考实际描述。不幸的是,同一个文本似乎不可能既是一个链接又是一个目标(即使语法在技术上允许它,它也是不明确的),所以你需要列表项中的更多文本而不仅仅是问题。您最好的方法可能是将每个问题链接回列表而不是特定的列表项 - 例如,
.. _List of questions:
...
.. _question 1:
the answer to question 1
`List of questions`_