Markdown Sphinx将标记文件中的标题添加到文档结构中

Markdown Sphinx将标记文件中的标题添加到文档结构中,markdown,python-sphinx,toctree,commonmark,Markdown,Python Sphinx,Toctree,Commonmark,我已将Sphinx配置为使用标记文件 在我的index.rst文件中 .. toctree:: :maxdepth: 2 :caption: Contents: documents/Markdown 在Markdown.md中,我有 # Markdown ## H2 Heading 当我呈现主页时,我会在目录树中看到H2标题 我在目录树的其他部分希望:maxdepth大于1。为什么sphinx读取H2标题作为目录树的一部分,我如何让它停止这样做,而不必将:maxdept

我已将Sphinx配置为使用标记文件

在我的index.rst文件中

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   documents/Markdown
在Markdown.md中,我有

# Markdown

## H2 Heading
当我呈现主页时,我会在目录树中看到H2标题

我在目录树的其他部分希望:maxdepth大于1。为什么sphinx读取H2标题作为目录树的一部分,我如何让它停止这样做,而不必将:maxdepth设置为1?

该选项指示所需的目录深度


如果您使用:maxdepth:1,H2标题应该消失。

@mzjn部分回答您的请求。就我个人而言,我不确定这到底是如何在降价中实现的,但我认为它与StructuredText类似。不幸的是,目前还没有一种直观的方法来做到这一点。但是,您可以执行以下操作:

.. toctree::
   :maxdepth: 1

   documents/Markdown1

.. toctree::
   :maxdepth: 2

   documents/Markdown2
这将输出所需的行为,但在这种情况下,两棵树之间会有一些垂直间距。您可以这样做,也可以使用:

.. toctree::
   :maxdepth: 2

   documents/Markdown1
   documents/Markdown2

但您需要将不希望显示的内容转移到较低级别的H3,例如。

添加到@SuperKogito的答案中。如果您希望TOC支持不同的深度级别,同时仍然看起来完整,您可以通过CSS实现这一点

例如,给定以下部分

Contents  # this will create a <div id="contents>...</>
========

.. toctree::
   :maxdepth: 1

   documents/Markdown1

.. toctree::
   :maxdepth: 2

   documents/Markdown2
现在,在与conf.py处于相同文件夹级别的_static文件夹中,添加一个名为styles.css的文件,其中包含以下行

//这将选择目录部分、第一个目录和列表项 //在它下面。然后删除间距,使其看起来完整。如果你有更多 //项,您可以考虑使用:NOT:类型选择器的最后一个。 目录树包装器:ul类型的第一个{ 页边距底部:0; }
这是一个临时解决方案,不是一个合适的解决方案,因为现在如果我想的话,我不能显示子目录树。为什么我的答案不是一个合适的解决方案?问题中没有提到子树。您要求我在目录中显示H2标题。为什么?我已经解释了原因。我刚刚重新编辑了我原来的帖子,以澄清我的问题。希望这样更容易理解。对于每个toctree指令,都有一个maxdepth设置。同一目录树中包含的不同文档不能有不同的深度。这不是它的工作原理。您在问题中的目录树的行为与预期的一样。OP解释说,他的目录树中有多个条目,他希望显示不同的深度。使用:maxdepth:1将限制所有条目的深度,而您没有指定如何对不同的树条目使用不同的深度。我没有失去兴趣。我正在做其他的ATM机,还没有机会重温这个。