在toctree中选择软件包,但不选择模块

问题描述 投票:1回答:1

我正在使用Sphinx为存储库生成文档。 Sphinx toctree允许使用:glob:自动选择某些文档。

我有一个形式的toctree

.. toctree::
     :maxdepth: 1
     :glob:

     _generated/some/repository/structure/*/doc/acme_corp_*

其中第一个*获取位于/some/repository/structure中的所有不同模块,而我希望来自以acme_corp_开头的模块中的所有文档。

但是,当toctree输出时,这会同时抓取包和模块。我试过使用_generated/some/repository/structure/*/doc/acme_corp_*package,但不会输出匹配的链接(因为我猜单词package并未真正出现在路径中)。

如何获得Sphinx以自动生成maxdepth: 1 toctree,以便仅在结果目录中获得包?

python-sphinx glob toctree
1个回答
1
投票

a toctree footnotes states:

关于可用的glob语法的说明:您可以使用标准的shell构造*,?,[...]和[!...],这些特征都不能与斜杠匹配。双星号**可用于匹配任何字符序列(包括斜杠)。

所以,这只是getting the glob syntax correct的问题。如果只想在python软件包上进行匹配,这是包含__init__.py和其他.py文件的文件夹,则可能会起作用:

.. toctree::
     :maxdepth: 1
     :glob:

     _generated/some/repository/structure/*/doc/acme_corp_*/

如果只想匹配python模块,它们是module_name.py文件,则可能起作用:

.. toctree::
     :maxdepth: 1
     :glob:

     _generated/some/repository/structure/*/doc/acme_corp_*.py

我无法重复此操作,因为我不知道您的确切项目结构,但请阅读glob语法,然后根据要包含的文件/文件夹模式尝试不同的组合。

© www.soinside.com 2019 - 2024. All rights reserved.