当我发现这个问题时,我自己也很苦恼...提供的答案并没有完全做到我想要的,所以我决定在我找到答案后再回来。:)
为了从自动生成的标题中删除“包”和“模块”,并获得真正自动化的文档,你需要在几个地方进行更改,请耐心阅读。
首先,你需要处理你的sphinx-apidoc
选项。我的使用方法如下:
sphinx-apidoc -fMeET ../yourpackage -o api
假设您正在docs
目录中运行此命令,它将为文档引用yourpackage
并将生成的文件放置在docs/api
中。我所使用的选项将覆盖现有文件,在子模块文档之前添加模块文档,在单独页面上为每个模块提供文档,并且如果您的docstrings已经包含了它们,就不要创建模块/包标题,并且它也不会创建目录文件。
这是需要记住的许多选项,因此我只需将其添加到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 package”标题的 yourpackage.rst
文件,因此我们需要进行最后一步配置。在你的 conf.py
文件中找到 exclude_patterns
选项并将该文件添加到列表中。它应该看起来像这样:
exclude_patterns = ['_build', 'api/yourpackage.rst']
现在你的文档应该与你在模块docstrings中设计的完全相同,您无需担心Sphinx文档和代码内部文档不同步的问题!