2012-03-19 14 views
11

Ho alcuni moduli python contenenti principalmente funzioni e alcune classi. Ognuno è documentato usando sphinx-autodoc in un primo separato. Quello che voglio fare è quello di creare una tabella o un elenco del contenuto del modulo nella parte superiore di ogni pagina, così per esempio, di mymodule.py èSfinge: elenco di funzioni in un modulo

def first(): 
    'First function' 

def second(): 
    'Second function' 

E mymodule.rst è

Page Contents 
------------- 

:create_page_contents_list: 

Members 
------- 

.. automodule:: mymodule 
    :members: 

l'uscita dovrebbe essere simile a questa:

Page Contents 
------------- 

first 
second 

Members 
------- 

first() 
    First function 

second() 
    Second function 

la domanda come fare :create_page_contents_list:. Ho dato un'occhiata all'utilizzo di un sommario, ma sembra che avrei bisogno di creare manualmente una voce per ogni elemento. Ho anche guardato l'autosummary, ma ho ancora bisogno di elencare i membri. Qualche suggerimento per automatizzare questo? Preferisco evitare le estensioni di terze parti.

risposta

1

Probabilmente si desidera qualcosa come il autosummary extension. L'attuale estensione di riassunto automatico non farà esattamente quello che vuoi, però.

Un esempio di come si potrebbe estendere AutoSummary di rilevare automaticamente il contenuto del modulo è dato in this answer

+11

Si può fornire un esempio del suo utilizzo in questo caso? –

+0

Attualmente quel collegamento sembra essere rotto. Qualcosa su un ciclo di reindirizzamento. –

+2

In che modo questa estensione risolve il problema? Usando 'autosummary' devi ancora specificare manualmente ogni singola funzione/metodo/attributo in una lista. L'opzione ': members:' per i moduli, come 'autodoc', non è disponibile. Le uniche soluzioni che ho trovato per farlo automaticamente sono basate su javascript. Mi dispiace davvero che la maggior parte delle documentazioni Python non abbia una panoramica concisa della tabella su tutti i membri del modulo (dando un'occhiata a _matplotlib_). – w1th0utnam3

Problemi correlati