Sphinx文档在TOC中选择包而不是模块

时间:2018-02-01 00:20:43

标签: python-sphinx

我正在使用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,以便我只在得到的目录中获取包?

1 个答案:

答案 0 :(得分:1)

作为a toctree footnotes states:

  

关于可用的globbing语法的注释:您可以使用标准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语法,并根据您想要包含的文件/文件夹模式尝试不同的组合。