我正在使用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
,以便仅在结果目录中获得包?
关于可用的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语法,然后根据要包含的文件/文件夹模式尝试不同的组合。