Documentation Tooling for juFFTe¶
This directory contains the documentation infrastructure for juFFTe, configured for Zensical (or MkDocs with Material theme).
Overview¶
The documentation uses Zensical (a modern static site generator built by the creators of Material for MkDocs) for generating professional, searchable documentation.
Prerequisites¶
Install the required tools:
# Install MkDocs and Material theme (Zensical-compatible)
pip install mkdocs mkdocs-material mkdocstrings
# Or install Zensical directly (when available)
pip install zensical
Building Documentation¶
# Using MkDocs (compatible with Zensical config)
mkdocs build
# Using Zensical (when CLI is stable)
zensical build
# Or with the Makefile target
make docs
Preview Locally¶
Documentation Structure¶
docs/
├── index.md # Main landing page
├── tutorials/ # Step-by-step guides
│ └── getting-started.md
├── api/ # API reference
│ └── index.md
├── examples/ # Code examples
│ └── simple-1d-fft.md
└── assets/ # Images, logos, etc.
Configuration¶
The mkdocs.yml file in the project root configures:
- Material theme with dark/light mode
- Navigation structure
- Search functionality
- Syntax highlighting
- Git revision dates
- Version management (via
mike)
Deploying¶
GitLab Pages¶
Documentation is automatically deployed via .github/workflows/docs.yml:
- Build runs on push to
main - Deploy to GitLab Pages or GitHub Pages
- Available at
https://juffte.gitlab.io
Zensical Hosting¶
When ready to use Zensical hosting:
- Configure
zensical.yamlwith your project details - Deploy via Zensical CLI or web interface
- Custom domain:
juffte.zensical.io
Adding Documentation¶
New Pages¶
- Create
.mdfile in appropriate directory - Add to
navsection inmkdocs.yml - Write content using Markdown
API Documentation¶
For Fortran API docs, we recommend:
- Add FORD-style comments to source code
- Use
mkdocstringswith Fortran plugin (when available) - Or maintain manual API reference in
docs/api/
Maintenance¶
- Keep examples in sync with API changes
- Update version in
mkdocs.ymlfor releases - Review search analytics (if enabled)
- Test on mobile devices
Migration to Zensical¶
When Zensical CLI becomes stable:
- Replace
mkdocs.ymlwithzensical.yaml - Update build commands in CI/CD
- Test all features
- Deploy
The current MkDocs setup is fully compatible with Zensical's configuration format.
Support¶
- Documentation issues: GitLab Issues
- Zensical docs: https://zensical.org/docs/