1

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

我有一个表格的目录树

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

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

第一个*获取所有不同模块的位置/some/repository/structure,我想要以 . 开头的模块中的所有文档acme_corp_

但是,当目录树输出时,这会同时获取包和模块。我试过使用_generated/some/repository/structure/*/doc/acme_corp_*package,但没有输出匹配的链接(因为我猜这个词package实际上并没有出现在路径中)。

如何让 Sphinx 自动生成一个maxdepth: 1 toctree这样我只能在结果目录中获取包?

4

1 回答 1

1

正如目录树脚注所述:

关于可用通配符语法的说明:您可以使用标准的 shell 结构 *、?、[...] 和 [!...],这些结构都不匹配斜杠。双星 ** 可用于匹配任何字符序列,包括斜杠。

所以,这只是让 glob 语法正确的问题。如果您只想匹配python packages,它们是包含__init__.py和其他.py文件的文件夹,这可能有效:

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

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

如果您只想匹配作为文件的python modulesmodule_name.py这可能有效:

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

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

我无法复制这一点,因为我不知道您的确切项目结构,但请阅读 glob 语法并根据您想要包含的文件/文件夹模式尝试不同的组合。

于 2018-02-01T01:57:31.523 回答