Contributing to Documentation¶
This guide explains how to contribute to and work with the Morphium documentation.
Viewing the Documentation¶
Online¶
Visit the published documentation at: https://sboesebeck.github.io/morphium/
Local Development¶
-
Install MkDocs and Material theme:
-
Serve locally:
Then open http://127.0.0.1:8000 -
Build static site:
Output will be in thesite/directory.
Documentation Structure¶
docs/
├── index.md # Home page
├── overview.md # Getting started overview
├── architecture-overview.md # Architecture details
├── developer-guide.md # Developer guide
├── messaging.md # Messaging system
├── api-reference.md # API reference
├── configuration-reference.md # Configuration options
├── performance-scalability-guide.md # Performance tuning
├── production-deployment-guide.md # Production deployment
├── monitoring-metrics-guide.md # Monitoring and metrics
├── security-guide.md # Security best practices
├── troubleshooting-guide.md # Troubleshooting
└── howtos/ # How-to guides
├── basic-setup.md
├── migration-v5-to-v6.md
├── inmemory-driver.md
├── aggregation-examples.md
├── caching-examples.md
├── cache-patterns.md
├── field-names.md
└── messaging-implementations.md
Automated Deployment¶
The documentation is automatically deployed to GitHub Pages when changes are pushed to the master or develop branch.
GitHub Actions Workflow¶
- File:
.github/workflows/deploy-docs.yml - Triggers on: Push to
master/developwith changes todocs/**ormkdocs.yml - Manual trigger: Available via GitHub Actions UI
How it works:¶
- Checks out the repository
- Installs Python and MkDocs dependencies
- Builds the documentation site
- Deploys to the
gh-pagesbranch - GitHub Pages serves the content
Navigation Features¶
The Material theme provides: - Tabbed Navigation: Top-level categories - Sidebar Navigation: Nested page structure - Search: Full-text search across all docs - Dark/Light Mode: Theme switcher - Code Highlighting: Syntax highlighting for code blocks - Mobile Responsive: Works on all devices - Table of Contents: Per-page TOC on the right
Editing Documentation¶
- Edit Markdown files in the
docs/directory - Add new pages to
mkdocs.ymlnavigation - Test locally with
mkdocs serve - Commit and push to trigger automatic deployment
Markdown Extensions¶
Supported features:
- Admonitions: !!! note, !!! warning, etc.
- Code Blocks: Triple backticks with syntax highlighting
- Tables: Standard Markdown tables
- Tabbed Content: Using pymdownx.tabbed
- Task Lists: - [ ] and - [x]
Theme Configuration¶
The Material theme is configured in mkdocs.yml:
- Colors: Indigo primary/accent
- Features: Navigation tabs, expand sections, search suggestions
- Plugins: Search, tags
- Social: GitHub repository link
Troubleshooting¶
Issue: Theme not found
Issue: Build fails
Issue: Navigation not updating
- Check mkdocs.yml nav structure
- Ensure file paths are correct relative to docs/
Contributing¶
When adding new documentation:
1. Place in appropriate directory (docs/ or docs/howtos/)
2. Update mkdocs.yml navigation
3. Use consistent heading levels (H1 for title, H2 for sections)
4. Add code examples where applicable
5. Test locally before committing