2012-03-19 23 views
11

Tengo algunos módulos de python que contienen principalmente funciones y algunas clases. Cada uno está documentado usando sphinx-autodoc en un primer momento. Lo que quiero hacer es crear una lista o tabla de contenidos del módulo en la parte superior de cada página, así que por ejemplo, de mymodule.py esSphinx: lista de funciones en un módulo

def first(): 
    'First function' 

def second(): 
    'Second function' 

Y mymodule.rst es

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

:create_page_contents_list: 

Members 
------- 

.. automodule:: mymodule 
    :members: 

a continuación, la salida debería ser algo como esto:

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

first 
second 

Members 
------- 

first() 
    First function 

second() 
    Second function 

la pregunta de cómo hacer :create_page_contents_list:. He echado un vistazo al uso de un TOC, pero parece que necesitaría crear manualmente una entrada para cada artículo. También he analizado autosummary, pero todavía necesito enumerar a los miembros. ¿Alguna sugerencia para automatizar esto? Prefiero evitar extensiones de terceros.

Respuesta

1

Probablemente desee algo comoautosummary extension. Sin embargo, la extensión autosummary real no hará exactamente lo que usted desea.

Un ejemplo de cómo se puede extender Autorresumen de detectar automáticamente los contenidos del módulo se da in this answer

+11

¿Puede dar un ejemplo de su uso en este caso? –

+0

Actualmente ese enlace parece estar roto. Algo sobre un bucle de redirección. –

+2

¿Cómo soluciona esta extensión el problema? Usando 'autosummary', todavía tiene que especificar manualmente cada función/método/atributo en una lista. La opción ': members:' para módulos, como 'autodoc', no está disponible. Las únicas soluciones que encontré para hacer esto automáticamente se basan en JavaScript. Realmente me molesta que la mayoría de las documentaciones de Python no tengan una descripción concisa de la tabla sobre todos los miembros del módulo (mirándote _matplotlib_). – w1th0utnam3

Cuestiones relacionadas