Skip to content

chore: add Zensical trial build alongside MkDocs - #102

Merged
tastybento merged 1 commit into
masterfrom
chore/zensical-trial
Sep 6, 2026
Merged

tastybento merged 1 commit into
masterfrom
chore/zensical-trial

Conversation

@tastybento

Copy link
Copy Markdown
Member

Material for MkDocs reaches end of life on 2026-11-05. Zensical is its successor from the same team, reads the existing mkdocs.yml, and runs the main.py macros natively. This PR keeps the repo buildable with both tools so a later switch of the production build is a config change rather than a migration. Read the Docs is untouched and still builds with MkDocs.

What's added

  • requirements-zensical.txtzensical==0.0.59 (pre-1.0, so pinned exactly) plus PyYAML/requests for main.py. No MkDocs packages needed.
  • .github/workflows/zensical.yml – runs zensical build on every push and PR, and checks that macros and the footer override actually rendered.
  • mkdocs.ymltheme.variant: classic keeps the Material look under Zensical. MkDocs passes the key through; verified with mkdocs build --strict.
  • CLAUDE.md – documents the dual build.

Verified locally (Zensical 0.0.59, Python 3.12)

  • All 120 pages build; macro output (placeholder/flag tables, addon info boxes, translation tables) matches the MkDocs build row for row.
  • Custom footer with policy links, homepage HTML block, Blueprint CSS, and minify all work.
  • Only warnings are the same two Biomes anchor warnings MkDocs reports.

Known gap

  • git-revision-date-localized isn't supported by Zensical yet, so the "last updated" line is omitted in Zensical builds. It's still present in the MkDocs/production build.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AtaKe95zrGF2Do7h3FfNBS

Material for MkDocs reaches end of life on 2026-11-05. Zensical, from the
same team, reads the existing mkdocs.yml and runs the main.py macros
natively, so this repo can be built with either tool from one config.

- requirements-zensical.txt: zensical pinned (pre-1.0) plus PyYAML/requests
  for main.py; no MkDocs packages needed.
- .github/workflows/zensical.yml: builds with Zensical on every push/PR and
  checks macros and the footer override rendered.
- mkdocs.yml: theme.variant: classic keeps the Material look under Zensical;
  MkDocs passes the key through unchanged (verified with a strict build).
- CLAUDE.md: document the dual build and the one known gap
  (git-revision-date-localized is not supported by Zensical).

Production on Read the Docs is unchanged and still builds with MkDocs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AtaKe95zrGF2Do7h3FfNBS
@tastybento
tastybento merged commit 8f4fa6c into master Sep 6, 2026
2 checks passed
@tastybento
tastybento deleted the chore/zensical-trial branch September 6, 2026 23:58
tastybento added a commit that referenced this pull request Sep 7, 2026
* chore: switch the Read the Docs build to Zensical

Material for MkDocs reaches end of life on 2026-11-05. Zensical was
trialled in #102 (same mkdocs.yml, native macros, classic theme variant)
and the output matches the MkDocs build, so production moves over.

- .readthedocs.yml: Python 3.12, install requirements-zensical.txt, run
  zensical build and copy site/ to the output directory, following the
  official Read the Docs Zensical guide.
- mkdocs.yml: explicit site_url, since Zensical cannot read
  READTHEDOCS_CANONICAL_URL.
- CLAUDE.md, requirements-zensical.txt, workflow comments updated;
  requirements.txt and the mkdocs: fallback are documented for rollback.

Known difference: the "last updated" line from git-revision-date-localized
is no longer shown, as Zensical does not support that plugin yet.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AtaKe95zrGF2Do7h3FfNBS

* fix(rtd): install Zensical via build.jobs.install

python.install is only run for sphinx/mkdocs builds, so with build.jobs
alone the zensical command was not found on Read the Docs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AtaKe95zrGF2Do7h3FfNBS

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant