Jinja24Doc is lightweight documentation generator for python modules with jinja2 templates. It is part of Poor Http group tools (WSGI connector, WSGI/HTTP Server and mod_python connector). It could load modules and gets documentation for its items. No configuration is needed, only jinja2 templates. Your or from jinja2doc package.
It is more powerful pydoc, with style what you want. You can format your documentation string with some simple chars by wiki formating, which is similar to AsciiDoc. Or you can use standard reStructuredText format. Both of these markups parsers support highlighting and creating automatic links to PEP.
There are three tools for your usage: rst24doc, wiki24doc and jinja24doc. You can generate simple page like this with tools rst24doc and wiki24doc in one command:
# if your module use reStructuredText formating in documentation strings
~$ rst24doc -O your_module.html --embed-stylesheet your_module.py
# or if your module use wiki formating in documentation strings
~$ rst24doc -O your_module.html --embed-stylesheet your_module.py
Or you can create your own template, which import predefined templates from
Jinja24doc. Your template.html
could see like this:
{% set title = 'Your Module' %}
{% set api = load_module('your_module') %}
{% include '_reference.html' %}
Than call the jinja24doc tool with right parameters from path where your python module is available:
~$ jinja24doc --embed-stylesheet template.html > your_module.html
There are three submodules which you could interest to:
- apidoc which contains base ApiDoc class to read python modules and create list of module items by method load_module.
- rst which contains Rst class based on ApiDoc to parse reStructuredText __doc__ or document.
- wiki which contains Wiki class based on ApiDoc to parse wiki formated __doc__ or document.
- context which contains Context class based on Rst and Wiki to couple all functionality to working with jinja2 templates.
- frontend which contains some functions to easier create command tool like rst24doc, wiki24doc and jinja24doc.
Jinja24Doc needs Jinja2, docutils and distutils-tinyhtmlwriter package for build and or for install. So you must install it first.
~$ pip install jinja24doc
~$ git clone https://github.com/PoorHttp/Jinja24Doc.git
~$ cd Jinja24Doc
~$ python setup.py install