使用Sphinx为每个函数自动生成单独的文档

时间:2017-04-11 23:39:51

标签: python python-sphinx read-the-docs

我一直在构建一个具有许多不同功能的Python模块。

我使用Sphinx和readthedocs提供文档。我取得了不错的进展,但目前我one massive page提供了所有功能的文档(按字母顺序排列)。

我已经查看了其他项目,每个项目都有一个单独的页面。通过查看源代码,我发现为每个文件创建了一个单独的.rst文件。我假设这是自动完成的,并且生成autodoc摘要的this page似乎在描述其中的一些,但我无法理解它。

sphinx-apidoc有一个选项(-e)为每个模块创建一个页面,但我想为每个函数创建一个页面。

如何使用Sphinx为每个函数自动生成单独的页面?

其他信息

要为以下某个答案添加信息,我已将以下内容放入我的methods.rst文件中,该文件位于子目录docs中。

EON documentation
=================

.. automodule:: ../EoN
   :members:

.. currentmodule:: ../EoN

.. autosummary::
   :toctree: functions

   fast_SIR
   fast_SIS

我收到错误消息

$ sphinx-autogen -o docs/generated docs/*.rst
  

[autosummary]为以下内容生成自动摘要:docs / index.rst,docs / methods.rst,docs / quickstart.rst

     

[autosummary]写入docs / generated

     

警告:[autosummary]无法导入u' fast_SIR':没有名为fast_SIR的模块

     

警告:[autosummary]无法导入你的fast_SIS':没有名为fast_SIS的模块

fast_SISfast_SIR位于../EoN.py

之内

2 个答案:

答案 0 :(得分:6)

我认为sphinx-automodapi Sphinx扩展可以满足您的需求。基本上用于记录您将要执行的模块:

.. automodapi:: mypackage.mymodule

它将为每个函数生成表格和单个页面。

免责声明:我是sphinx-automodapi的作者

答案 1 :(得分:3)

Sorting display by class using sphinx with 'autodoc'?的回答中,解释了如何使用autosummaryautosummary_generate=True为每个类生成一个页面的类生成文档。

这种机制也适用于功能。使用这样的东西:

EoN API documentation
=====================

.. currentmodule:: EoN

.. autosummary::
   :toctree: functions

   my_function1
   my_function2
   my_function3
   ...

您必须枚举autosummary指令中的每个函数,但相应的* .rst文件会自动生成(在functions子目录中)。