The Stickler documentation site is built using MkDocs with the Material theme. The site structure includes conceptual documentation, practical guides, and auto-generated API reference from Python docstrings using mkdocstrings.
Documentation source files are in docs/ (Markdown), configuration is in mkdocs.yml, and the built site outputs to site/. Navigation is automatically generated from the directory structure via the awesome-nav plugin.
- Python 3.12 or higher
Install documentation dependencies:
pip install -r requirements.txtThis installs MkDocs, Material theme, mkdocstrings for API docs, and the awesome-nav plugin for automatic navigation generation.
Start the local development server with live reload:
mkdocs serve --livereloadThe site will be available at http://127.0.0.1:8000. Changes to Markdown files or mkdocs.yml will automatically reload the browser.
- Add new pages as Markdown files in
docs/docs/ - Navigation is auto-generated from directory structure via the awesome-nav plugin
- Use
README.mdfiles for section index pages - API documentation is generated from Python docstrings in
src/stickler/
Verify the site builds without errors:
mkdocs buildThis generates the static site in site/ and validates all internal links and references.
The site is deployed to GitHub Pages automatically via GitHub Actions (.github/workflows/docs.yml) on pushes to main that modify files in src/ or docs/. This ensures API reference docs stay current when Python source code changes. To deploy manually:
mkdocs gh-deploy --forceThis builds the site and pushes it to the gh-pages branch using MkDocs' built-in deployment command.
Automatic deployment is configured in .github/workflows/docs.yml. The workflow:
- Triggers on pushes to
mainthat modify files insrc/,docs/, or the workflow itself - Installs the stickler package (
pip install -e .) so mkdocstrings can import modules and read docstrings - Installs documentation dependencies from
docs/requirements.txt - Deploys to GitHub Pages using
mkdocs gh-deploy --force
Note: A
Makefileis provided for convenience with targets:install,docs,build,deploy, andclean.