Sphinx 将 Markdown 文件中的标题添加到文档结构中
Sphinx adds Headings from Markdown File to Document Structure
我已将 Sphinx 配置为使用降价文件。
在我的 index.rst 文件中我有
.. toctree::
:maxdepth: 2
:caption: Contents:
documents/Markdown
在 Markdown.md 我有
# Markdown
## H2 Heading
当我呈现主页时,我在 toctree 中看到了 H2 标题。
我的 toctree 的其他部分需要 :maxdepth 大于 1。为什么 sphinx 读取 H2 标题作为 toctree 的一部分,我怎样才能让它停止这样做,而不必将 :maxdepth 设置为 1?
maxdepth
选项表示目录的所需深度。
如果你使用:maxdepth: 1
,"H2 heading"应该消失。
@mzjn 部分回答了您的请求。就个人而言,我不确定这在 Markdown 中是如何完成的,但我认为它类似于 reStructuredText。不幸的是,目前没有一种直观的方法可以做到这一点。但是,您可以执行以下操作:
.. 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
底部,添加以下行
def setup(app):
app.add_css_file('styles.css')
现在,在您的 _static 文件夹(与您的 conf.py
处于同一文件夹级别)中,添加一个名为 styles.css
的文件,其中包含以下行
// this selects the contents section, the first table of contents and the list item
// underneath it. Then it removes the spacing to make it look whole. If you have more
// items, you can consider using :not(:last-of-type) selector.
#contents .toctree-wrapper:first-of-type ul {
margin-bottom: 0;
}
我已将 Sphinx 配置为使用降价文件。
在我的 index.rst 文件中我有
.. toctree::
:maxdepth: 2
:caption: Contents:
documents/Markdown
在 Markdown.md 我有
# Markdown
## H2 Heading
当我呈现主页时,我在 toctree 中看到了 H2 标题。
我的 toctree 的其他部分需要 :maxdepth 大于 1。为什么 sphinx 读取 H2 标题作为 toctree 的一部分,我怎样才能让它停止这样做,而不必将 :maxdepth 设置为 1?
maxdepth
选项表示目录的所需深度。
如果你使用:maxdepth: 1
,"H2 heading"应该消失。
@mzjn 部分回答了您的请求。就个人而言,我不确定这在 Markdown 中是如何完成的,但我认为它类似于 reStructuredText。不幸的是,目前没有一种直观的方法可以做到这一点。但是,您可以执行以下操作:
.. 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
底部,添加以下行
def setup(app):
app.add_css_file('styles.css')
现在,在您的 _static 文件夹(与您的 conf.py
处于同一文件夹级别)中,添加一个名为 styles.css
的文件,其中包含以下行
// this selects the contents section, the first table of contents and the list item
// underneath it. Then it removes the spacing to make it look whole. If you have more
// items, you can consider using :not(:last-of-type) selector.
#contents .toctree-wrapper:first-of-type ul {
margin-bottom: 0;
}