2012-03-19 15 views
11

Mam kilka modułów python zawierających głównie funkcje i kilka klas. Każda z nich jest udokumentowana za pomocą sphinx-autodoc w oddzielnym pierwszym. Co chcę zrobić, to utworzyć tabelę lub listę treści modułu w górnej części każdej strony, tak na przykład, mymodule.py jestSfinks: lista funkcji w module

def first(): 
    'First function' 

def second(): 
    'Second function' 

I mymodule.rst jest

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

:create_page_contents_list: 

Members 
------- 

.. automodule:: mymodule 
    :members: 

Następnie wyjście powinno wyglądać mniej więcej tak:

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

first 
second 

Members 
------- 

first() 
    First function 

second() 
    Second function 

na pytanie, jak zrobić :create_page_contents_list:. Rzuciłem okiem na używanie TOC, ale wydaje mi się, że musiałbym ręcznie utworzyć wpis dla każdego przedmiotu. Przyjrzałem się także autopodsumowaniu, ale wciąż muszę wymienić członków. Wszelkie sugestie dotyczące automatyzacji tego? Wolałbym unikać rozszerzeń stron trzecich.

Odpowiedz

1

Prawdopodobnie chcesz coś jak z autosummary extension. Rzeczywiste rozszerzenie autosummary nie będzie jednak robić tego, co chcesz.

Przykładem, jak można przedłużyć autosummary automatycznie wykryć zawartość modułu jest podana in this answer

+11

Czy możesz podać przykład jej zastosowania w tym przypadku? –

+0

Obecnie ten link wydaje się być uszkodzony. Coś o pętli przekierowania. –

+2

W jaki sposób to rozszerzenie rozwiązuje problem? Używając 'autosummary' nadal musisz ręcznie określić każdą pojedynczą funkcję/metodę/atrybut na liście. Opcja ': members:' dla modułów, np. 'Autodoc', jest niedostępna. Jedyne rozwiązania, które automatycznie wykryłem, są oparte na javascript. To naprawdę denerwuje mnie, że większość dokumentacji Pythona nie ma zwięzłego przeglądu wszystkich elementów modułu (spoglądając na ciebie _matplotlib_). – w1th0utnam3

Powiązane problemy