1.6 KiB
Vendored
Material blog compatibility fixtures
These fixtures define the user-visible compatibility target for the native
Zensical blog implementation. They are built with the pinned Material checkout
and reduced to semantic JSON manifests by scripts/blog_compatibility.py.
Run the compatibility check from the repository root:
uv run python scripts/blog_compatibility.py \
--mkdocs ../mkdocs-material/community/venv/bin/mkdocs \
--zensical .venv/bin/zensical
Pass --update only after reviewing an intentional Material baseline change.
The harness compares routes, titles, navigation, page relations, ordered view
memberships, pagination, links, and normalized excerpt fragments. It does not
compare complete generated documents or theme assets. The Zensical build uses
the built-in UI distribution, so this also validates the native blog templates.
The fixtures are divided by compatibility concern:
vertical-slicedefines the executable contract for phases 1 through 5.mutationsrecords ordered clean-build snapshots for route, content, ordering, draft, deletion, and pagination changes.grouped-viewscovers archive, category, and author membership.standalonerecords a blog omitted from configured navigation.multiple-instancesproves instance isolation.collisionsrecords Material's unsafe last-writer behavior as an upstream quirk. Zensical is expected to diagnose the collision instead of reproducing it.
Additional focused fixtures are added before implementing deferred compatibility areas such as advanced date formatting and custom templates.