This page describes the Makefile commands available for generating and managing the project's documentation.
The CryptographicEstimators library uses Sphinx to generate HTML documentation from docstrings and RST files. The documentation generation process involves several steps that can be run individually or as a complete pipeline.
To generate the complete HTML documentation locally:
make docThis command runs the full documentation pipeline:
- Cleans previous documentation builds
- Creates Sphinx configuration
- Generates RST files from docstrings
- Builds HTML documentation
If you need to run individual steps of the documentation generation process:
make clean-docsRemoves all generated documentation files and build artifacts.
make create-sphinx-configInitializes a new Sphinx configuration for the project.
make create-rst-filesCreates RST (reStructuredText) files from the library's docstrings using the scripts/create_documentation.py script.
make create-html-docsBuilds the final HTML documentation from RST files using Sphinx.
For systems where installing Sphinx and documentation dependencies might be challenging, you can generate documentation using Docker:
make docker-docThis command:
- Builds a Docker image with all documentation dependencies
- Mounts the documentation directory as a volume
- Runs the complete documentation generation process inside the container
- Cleans up the container after completion
The generated documentation will be available in docs/build/html/ and can be viewed by opening docs/build/html/index.html in a web browser.
The generated documentation includes:
- API reference for all estimators and algorithms
- User guide and examples
- Code documentation extracted from docstrings
- Cross-references between related components
- The documentation generation process requires the library to be installed.
- RST files are automatically generated from docstrings, so keeping docstrings up-to-date ensures accurate documentation
- The Docker variant is particularly useful for CI/CD pipelines or systems with limited package management options