[doc] proofreading the guides, refactoring the reference.

This commit is contained in:
Romain Dorgueil
2018-01-16 06:27:25 +01:00
parent ed7887ba31
commit aa6e426768
41 changed files with 767 additions and 288 deletions

63
bin/update_apidoc.py Normal file
View File

@ -0,0 +1,63 @@
import os
from jinja2 import Environment, DictLoader
__path__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__), '..'))
apidoc_root = 'docs/reference/api'
class Module:
def __init__(self, name, title=None, *, automodule_options=None):
self.name = name
self.title = title or ' '.join(map(str.title, self.name.split('.')[1:]))
self.automodule_options = automodule_options or list()
def __repr__(self):
return '<{} ({})>'.format(self.title, self.name)
def asdict(self):
return {
'name': self.name,
'title': self.title,
'automodule_options': self.automodule_options,
}
def get_path(self):
return os.path.join(__path__, apidoc_root, *self.name.split('.')) + '.rst'
modules = [
Module('bonobo', title='Bonobo'),
Module('bonobo.config'),
Module('bonobo.constants', automodule_options=['no-members']),
Module('bonobo.execution'),
Module('bonobo.execution.contexts'),
Module('bonobo.execution.events'),
Module('bonobo.execution.strategies'),
Module('bonobo.util'),
]
def underlined_filter(txt, chr):
return txt + '\n' + chr * len(txt)
env = Environment(loader=DictLoader({
'module': '''
{{ (':mod:`'~title~' <'~name~'>`') | underlined('=') }}
.. currentmodule:: {{ name }}
:Module: :mod:`{{ name }}`
.. automodule:: {{ name }}
{% for opt in automodule_options %} :{{ opt }}:{{ "\n" }}{% endfor %}
'''[1:-1] + '\n'}))
env.filters['underlined'] = underlined_filter
for module in modules:
with open(module.get_path(), 'w+') as f:
f.write(env.get_template('module').render(module.asdict()))