当我发现这个问题时,我自己也在为此苦苦挣扎......给出的答案并没有完全符合我的要求,所以我发誓要在我弄清楚时回来。:)
为了从自动生成的标题中删除“包”和“模块”并拥有真正自动的文档,您需要在几个地方进行更改,所以请耐心等待。
首先,您需要处理您的sphinx-apidoc
选择。我使用的是:
sphinx-apidoc -fMeET ../yourpackage -o api
假设您从目录内部运行它docs
,这将yourpackage
获取文档并将生成的文件放在docs/api
. 我在这里使用的选项将覆盖现有文件,将模块文档放在子模块文档之前,将每个模块的文档放在自己的页面上,如果您的文档字符串已经有它们,则不要创建模块/包标题,并且它不会创建目录文件。
有很多选项要记住,所以我只是将其添加到我的末尾Makefile
:
buildapi:
sphinx-apidoc -fMeET ../yourpackage -o api
@echo "Auto-generation of API documentation finished. " \
"The generated files are in 'api/'"
有了这个,你就可以运行make buildapi
来构建你的文档了。
api.rst
接下来,在您的文档的根目录中创建一个包含以下内容的文件:
API Documentation
=================
Information on specific functions, classes, and methods.
.. toctree::
:glob:
api/*
这将创建一个包含文件夹中所有内容的api
目录。
不幸的是,sphinx-apidoc
仍然会生成一个yourpackage.rst
带有难看的“yourpackage package”标题的文件,所以我们需要最后一个配置。在您的conf.py
文件中,找到该exclude_patterns
选项并将此文件添加到列表中。它应该看起来像这样:
exclude_patterns = ['_build', 'api/yourpackage.rst']
现在您的文档应该看起来与您在模块文档字符串中设计的完全一样,并且您不必担心您的 Sphinx 文档和您的代码内文档不同步!