2017-04-11 23 views
0

我已經建立了許多不同功能的Python模塊一個單獨的文件。使用獅身人面像自動生成每個功能

我正在使用Sphinx和readthedocs來提供文檔。我取得了不錯的進展,但目前我有one massive page,它提供了我所有功能(按字母順序)的文檔。

我看過其他項目,每個功能都有單獨的頁面。在查看源代碼時,我發現爲每個文件創建了一個單獨的.rst文件。我認爲這是自動完成的,關於生成自動數據摘要的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 

[自動摘要]產生自動摘要爲:文檔/ index.rst,文檔/ methods.rst,文檔/ quickstart.rst

[ autosummary]寫入文檔/生成

警告:[autosummary]無法導入u'fast_SIR':no module named fast_SIR

警告:[自動摘要]未能導入u'fast_SIS':沒有名爲fast_SIS

fast_SISfast_SIR坐在內../EoN.py

+0

你看着那個對每個功能的單獨頁面其他什麼項目? – mzjn

+0

@mzjn請參閱https://networkx.readthedocs.io/en/stable/reference/algorithms.html – Joel

+0

該文檔在我的答案中使用了與autosummary相同的方法。見https://github.com/networkx/networkx/blob/v1.11/doc/source/reference/algorithms.bipartite.rst – mzjn

回答

2

在對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子目錄)。

+0

當我嘗試這樣做時出現錯誤 - 警告:[autosummary]無法導入u'fast_SIR':沒有名爲fast_SIR的模塊 我編輯了問題,顯示我是如何實現您的答案的擠進評論)。 – Joel

+0

我還沒有運氣。它給出了一個錯誤,它找不到模塊「EoN.my_function1」。當然它不能,因爲它是一個功能。這可能與您在鏈接問題中的答案包含模板有關嗎? – Joel

+0

我不認爲模板是問題。如果未指定'template'選項,則使用默認模板:[autosummary/base.rst](http://www.sphinx-doc.org/en/stable/ext/autosummary.html#customizing-templates)。 – mzjn

0

模塊你可以後期處理的sphinx-apidoc -e輸出讀取每個行包含autofunction並根據該函數的名稱寫入一個新文件。

您可以重構代碼,並將每個函數放入包中的單獨文件中。

EoN 
├── __init__.py 
├── attack_rate_cts_time.py 
├── attack_rate_cts_time_from_graph.py 
├── ... 
└── subsample.py 

除此之外,我不知道任何你想要的現成的庫。

0

我認爲sphinx-automodapoi獅身人面像擴展可能會做你所需要的。本質上來說,你只需要記錄一個模塊:

.. automodapi:: mypackage.mymodule 

它會爲每個函數生成表和單獨的頁面。

免責聲明:我是獅身人面像,automodapi的作者