将子文件夹中的文件添加到sphinx文档中(sphinxcontrib-matlabdomain)

use*_*710 7 documentation matlab documentation-generation python-sphinx read-the-docs

我有一个包含各种文件夹的目录,每个文件夹都包含matlab源文件.其中一些文件夹包含包含matlab源文件的子文件夹.

如何使用Sphinx创建TOC树以嵌套方式包含子文件夹?

例如,当Main-Directory包含conf.py,index.rst以及moduleslist.rst以下文件夹结构时:

    Folder1
        abc.m
        def.m
    Folder2
        Folder2.1
            ghi.m
        jkl.m
Run Code Online (Sandbox Code Playgroud)

用这个index.rst文件:

.. toctree::
    :maxdepth: 1

    moduleslist
Run Code Online (Sandbox Code Playgroud)

和这个moduleslist.rst文件:

.. toctree::
    :maxdepth: 2

Folder1
=========
.. automodule:: Folder1
:members:

Folder2
=========
.. automodule:: Folder2
    :members:
Run Code Online (Sandbox Code Playgroud)

但是这不包括子文件夹Folder2.1和文件.我曾尝试加入Folder2/indexindex.rst,与Folder2/index.rst载有automodule Folder2.1,其中不包括的文件ghi.m.

如何让Sphinx在其TOC树中显示嵌套的子文件夹?

Bil*_*ong 4

我已经开始使用 Sphinx 并在一般文档中遇到了这个问题(不是特定于 autodoc 功能)。这就是我让它工作的方式,并且可以更好地控制树的构建方式。

将每个文件夹视为一个单独的组。因此,在 Sphinx 根目录中,您将拥有如下所示的 index.rst 文件:

.. toctree::
    :maxdepth: 1

    Folder1/index
    Folder2/index
Run Code Online (Sandbox Code Playgroud)

我使用maxdepth: 1以便它只列出主要组名称。

在Folder1和Folder2下,您需要添加其他index.rst文件:

#Folder1/index.rst

.. toctree::
    :maxdepth: 2

    abc.m
    def.m

#Folder2/index.rst

.. toctree::
    :maxdepth: 2

    Folder2.1/index
    jkl.m
Run Code Online (Sandbox Code Playgroud)

作为旁注,我已经设置了我的索引页面,以便它们只有组列表 ( maxdepth: 1) 或详细页面列表 ( maxdepth: 2) - 我确信有一种方法可以使文件夹/索引处于深度 1 并使文件处于深度2.

然后Folder2.1您将需要第三个索引:

#Folder2.1/index.rst

.. toctree::
    :maxdepth: 2

    ghi.m
Run Code Online (Sandbox Code Playgroud)

这是Nested 上的 Sphinx 文档toctree,但不太清楚。显然,您需要autodoc更复杂/更深的树结构的代码。