feat(docs): add services category alongside hardware
Mirror the auto-indexed per-host pattern for a new docs/services/
category, seeded with the six things currently deployed on or around
makerfloss.eu: docs, slides, forgejo, gandi-dns, marp, mermaid.
Generator/hook generalisation:
- scripts/gen_overview.py: replace the hardcoded `hostname` check
with a configurable `key_field` (default: hostname). Add a generic
`key-link` column kind (replaces the old `hostname-link`) and a
`url-link` kind that renders the value as a clickable link.
- scripts/overview_config.yml: declare hardware's key_field, then add
a `services` block (key_field=name, its own kind/status enums,
grouped by kind for the index table).
- scripts/mkdocs_hooks.py: route by `page.file.src_uri` so each
hardware/* page gets a "Specs" table and each services/* page gets
a "Service" table; both share the helpers in gen_overview.
Wiring:
- Makefile: docs-index and docs-check now regenerate and drift-check
both indices.
- .forgejo/workflows/docs.yml: same on the CI runner.
- mkdocs.yml: add Services to nav.
- README.md, CLAUDE.md: list services/ in the repo-layout block.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 17:48:15 +02:00
|
|
|
---
|
|
|
|
|
name: slides
|
|
|
|
|
kind: static-site
|
|
|
|
|
status: in-use
|
|
|
|
|
host: makerfloss.eu
|
|
|
|
|
url: https://slides.makerfloss.eu
|
|
|
|
|
upstream: https://marp.app
|
|
|
|
|
tech: Marp + Mermaid.js
|
|
|
|
|
tls: letsencrypt
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
|
|
2026-08-22 15:57:58 +02:00
|
|
|
Slide-deck site. Decks are authored as Marp markdown and compiled to HTML by
|
|
|
|
|
`build-slides.sh` (CI invokes it via the [marp](marp.md) toolchain). Built output is rsynced to
|
|
|
|
|
the VPS and served alongside [docs](docs.md).
|
|
|
|
|
|
|
|
|
|
Two source roots, two output conventions:
|
|
|
|
|
|
|
|
|
|
| Source | Published at |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| `docs/presentations/<name>.md` | `https://slides.makerfloss.eu/<name>.html` |
|
|
|
|
|
| `slides/<path>/<name>.md` | `https://slides.makerfloss.eu/<path>/<name>.html` |
|
|
|
|
|
|
|
|
|
|
Use `slides/` when a deck belongs to a named series and the URL should read like a path — for
|
|
|
|
|
example `slides/tappaas/how-to/new-module/index.md` is served at
|
|
|
|
|
`https://slides.makerfloss.eu/tappaas/how-to/new-module/`. Only the markdown is committed; the
|
|
|
|
|
generated HTML under `slides/` is git-ignored.
|
2026-08-25 18:42:11 +02:00
|
|
|
|
|
|
|
|
**Images** belong next to the deck source (`slides/<path>/<name>.jpg`) and are referenced with a
|
|
|
|
|
plain relative path. Marp keeps relative URLs as-is, so `build-slides.sh` copies image files from
|
|
|
|
|
`slides/` into the output tree at the same relative path — unlike the HTML, these *are* committed.
|
|
|
|
|
Only path-mirrored `slides/` decks can carry images; `docs/presentations/` decks are flattened to
|
|
|
|
|
`<name>.html`, so a relative path would not survive.
|