Sphinx / RST:是否包含另一个RST文件而不将其添加到目录中?

时间:2019-11-22 20:07:39

标签: python-sphinx restructuredtext

我正在改进一些技术文档(Sphinx),并希望将RST文件的内容包含在多个位置;但是,这样做是将RST文件多次添加到TOC中。如何在我想要的位置包含文件,但只在目录中引用该部分一次?

这是index.rst文件的样子:

============
Main Content
============

These docs reference:
- :ref:`section-1`.

- :ref:`section-2`.

- :ref:`section-3`.

- :ref:`section-4`.

.. include:: section1.rst
.. include:: section2.rst
.. include:: section3.rst
.. include:: section4.rst

接下来,这里是main_content.rst:

.. _section-2:

This is Section 2
********************

.. include: section4.rst

Some other Section 2 content.

“第4节”是参考表;例如,我想将其包含在“第2节”中,但也要像附录一样将其保留在文档的底部。

这是section2.rst的样子:

.. _section-4:

This is Section 4
********************

+------------------+-------------------------+
| Heading          | Heading 2               |
+==================+=========================+
| This is what I   | want to reference       |
+------------------+-------------------------+
| in other rst     | files.                  |
+------------------+-------------------------+

最后,section4.rst可能如下所示:

{{1}}

执行此操作时,我的目录两次包含“第4节”。有什么见解吗?谢谢!

1 个答案:

答案 0 :(得分:1)

由于@sinoroc的建议,我想出了一个解决方案:

我从section4.rst中删除了以下内容,仅保留了该表:

 .. _section-4:

 This is Section 4
 ********************

我将其添加到新文件appendix.rst的顶部,并添加了对section4.rst的引用:

 .. _section-4:

 This is Section 4
 ********************

 .. include:: section4.rst

然后我修改了main_content.rst,使其引用了appendix.rst而不是section4.rst。

我的主要学习要点:TOC反映了引用文件中的标题。