chore(docs): migrate documentation from MkDocs to Zensical

Material for MkDocs is in maintenance mode; Zensical is its successor from
the same maintainers. Zensical reads the existing mkdocs.yml natively, so
this is a tooling swap rather than a config rewrite.

- pyproject.toml: replace mkdocs-material with zensical in docs/dev groups
- Taskfile/CI/netlify: swap `mkdocs build|serve` for `zensical build|serve`
- mkdocs.yml: move custom `demo_url` under `extra:` (Zensical doesn't expose
  custom top-level config keys to templates); move `custom_dir` out of the
  docs source tree so raw templates aren't published as static files
- home.html: use `config.extra.demo_url`; replace the non-functional
  `lang.t('source.link.title')` (a Python call MiniJinja can't run, already
  rendering as literal text) with a static tooltip

Verified: `zensical build` exits clean ("No issues found"), 46 pages, with
mermaid, admonitions, content tabs, task lists, nav tabs, code-copy, custom
homepage, and announce banner all rendering at parity with the prior build.
This commit is contained in:
Hayden
2026-05-31 09:47:26 -05:00
parent 0af9633193
commit 15b3e59c55
9 changed files with 72 additions and 166 deletions

View File

@@ -63,7 +63,7 @@ task setup # Install all dependencies (Python + Node)
task dev:services # Start Postgres & Mailpit containers
task py # Start FastAPI backend (port 9000)
task ui # Start Nuxt frontend (port 3000)
task docs # Start MkDocs documentation server
task docs # Start Zensical documentation server
```
**Code generation (REQUIRED after schema changes):**

View File

@@ -30,7 +30,7 @@ jobs:
run: uv sync --only-group docs --no-install-project
- name: Build docs
run: uv run --no-project mkdocs build -d site
run: uv run --no-project zensical build
working-directory: docs
- name: Upload artifact