在reStructuredText中创建编号列表

时间:2012-06-02 00:37:38

标签: python python-sphinx restructuredtext

如何在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语法?

2 个答案:

答案 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 listsinternal 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`_