*************
Documentation
*************
We are using `Sphinx `_ with the `Material for Sphinx html theme `_.
Its configured to provide a Html version of the documentation but could be easily extended to provide a PDF or EPub version as well.
This extensions are configured to enrich the documentation:
* `sphinx.ext.autodoc – Include documentation from docstrings `_
* `sphinx_autodoc_typehints - Include typehints in autodoc documentation `_
* `sphinx.ext.autosectionlabel – Allow reference sections using its title `_
* `sphinx.ext.coverage – Collect doc coverage stats `_
* `sphinx.ext.doctest – Test snippets in the documentation `_
* `sphinx.ext.duration – Measure durations of Sphinx processing `_
* `sphinx.ext.extlinks – Markup to shorten external links `_
* `sphinx.ext.intersphinx – Link to other projects’ documentation `_
* `sphinx.ext.napoleon – Support for NumPy and Google style docstrings `_
* `sphinx.ext.viewcode – Add links to highlighted source code `_
* `enum_tools.autoenum - A Sphinx directive for documenting Enums in Python `_
Development
===========
Use one of the following options to build the documentation:
- Run the live reload server with Python directly:
.. code-block:: bash
poetry run python docs/docs_livereload.py
- Or use `Docker `_:
.. code-block:: bash
docker compose up --build docs
Both will run a webserver listing on http://localhost:5500 and will automatically rebuild the documentation (and
reloading the website inside your browser) if a file in docs or svn2git directory changes.
Build
=====
To finally build the documentation run the following command inside the docs directory:
.. code-block:: bash
make html
Or on Windows:
.. code-block:: bash
./make.bat html