|
| 1 | +# Documentation |
| 2 | + |
| 3 | +Developer and user documentation site for Freeshard, published at docs.freeshard.net. Built with MkDocs and the Material theme. |
| 4 | + |
| 5 | +## Tech Stack |
| 6 | + |
| 7 | +- **Generator**: MkDocs with Material theme |
| 8 | +- **Plugins**: blog, glightbox (image lightbox) |
| 9 | +- **Markdown extensions**: admonitions, details, syntax highlighting, Mermaid diagrams, emoji, markdown-include |
| 10 | +- **Dependencies**: `requirements.txt` (mkdocs, mkdocs-material, markdown-include, mkdocs-glightbox) |
| 11 | + |
| 12 | +## Commands |
| 13 | + |
| 14 | +```bash |
| 15 | +pip install -r requirements.txt # Install dependencies |
| 16 | +mkdocs serve # Dev server on localhost:8000 |
| 17 | +mkdocs build # Generate static site to public/ |
| 18 | +``` |
| 19 | + |
| 20 | +## Structure |
| 21 | + |
| 22 | +``` |
| 23 | +docs/ |
| 24 | + overview/ Product overview and concepts |
| 25 | + concepts/ Single-user isolation, devices, apps |
| 26 | + developer_docs/ Developer documentation for app creators |
| 27 | + includes/ Reusable markdown snippets (template vars, portal name info) |
| 28 | + img/ Developer docs images |
| 29 | + user_guides/ End-user guides (password management, smart home) |
| 30 | + blog/ |
| 31 | + posts/ Blog posts (date-prefixed directories) |
| 32 | + YYYY-MM-DD_slug/ Each post: main.md + images |
| 33 | + .authors.yml Blog author metadata |
| 34 | + css/extra.css Custom styles |
| 35 | + img/ Shared images (logo) |
| 36 | +mkdocs.yml Site config, navigation, theme, plugins |
| 37 | +``` |
| 38 | + |
| 39 | +## Conventions |
| 40 | + |
| 41 | +### Navigation |
| 42 | +Navigation is explicitly defined in `mkdocs.yml` under the `nav` key. Four top-level sections: Overview, Developer Docs, Blog, User Guides. Adding a new page requires adding it to `nav`. |
| 43 | + |
| 44 | +### Blog Posts |
| 45 | +Blog posts live in `docs/blog/posts/YYYY-MM-DD_slug/main.md`. Each post directory contains the markdown file and any associated images. Authors are defined in `docs/blog/.authors.yml`. |
| 46 | + |
| 47 | +### Markdown Includes |
| 48 | +Reusable snippets in `docs/developer_docs/includes/` can be included in other docs via the `markdown-include` extension: `{!developer_docs/includes/snippet.md!}`. |
| 49 | + |
| 50 | +### Images |
| 51 | +Store images alongside the content that uses them (in subdirectory `img/` or in blog post directories). Use relative paths. The glightbox plugin automatically adds lightbox behavior to images. |
| 52 | + |
| 53 | +### Mermaid Diagrams |
| 54 | +Supported via `pymdownx.superfences` custom fence. Use ` ```mermaid ` code blocks. |
| 55 | + |
| 56 | +## Deployment |
| 57 | + |
| 58 | +Built and deployed via GitLab Pages. The `site_dir` is `public/` (GitLab Pages convention). Site URL: `https://docs.freeshard.net`. |
0 commit comments