Summary
This version marks a major evolution of Zensical's build architecture and completes the most essential MkDocs plugin replacements.
Six new plugin replacements are now included:
metaredirectsminifytagsliterate-navawesome-nav
The existing search, mkdocstrings, and autorefs replacements have also been migrated to the new architecture. We kept their behavior close to the upstream plugins while moving almost all processing into Rust. Python is now primarily responsible for configuration normalization and the narrow Python-Markdown adapter used by literate-nav.
Under the hood, the build pipeline now runs on a substantially more efficient ZRX scheduler and stream architecture. Together with more compact intermediate data, shared page state, and fewer allocations, this reduces peak memory usage by roughly 30–40% on large projects. Builds are also modestly faster.
Most remaining build time is now spent rendering Markdown through Python-Markdown. One of our next major performance steps is replacing that stage with our Rust-based, Python-Markdown-compatible parser, as announced in the June edition of Zensical Monthly.
Over the coming weeks, we'll focus on adding more plugin replacements so that increasingly complex existing projects can switch to Zensical without missing out on functionality. We'll also continue evolving the module API and make it available to interested early users before releasing it publicly.
Changelog
Breaking changes
- 34043fe – remove x86 and armv7 musl builds
Features
- af7ae6f zensical – support secure WebSockets for preview (#893)
- 1e1fc79 zensical, compat – add
awesome-navMkDocs plugin replacement - c3dbdfe zensical, compat – add
literate-navMkDocs plugin replacement - 32bd870 zensical, zensical-serve, zensical-watch, compat – add
tagsMkDocs plugin replacement - cbdd6ce zensical, compat – add
minifyMkDocs plugin replacement - afe1ecb zensical, compat – add
redirectsMkDocs plugin replacement - 8dc4a80 zensical, compat – add
metaMkDocs plugin replacement
Bug fixes
- 1ec42b9 ui – update ui to v0.0.27
- 965351d compat – run link rewriting post-processor before raw HTML post-processor
- 7fe9245 zensical – propagate unresolved operator failures
- 02d903d compat – maintain Python-Markdown extensions ordering
Performance improvements
- f4830e0 compat – iterate over raw HTML blocks only once per post-processor
- af0ca2e compat – faster autorefs URL membership check
Refactorings
- 3c779b9 zensical, compat – finalize scheduler and plugin integration
- 86646a4 zensical, zensical-serve, compat – reconcile MkDocs plugin infrastructure
- 83b0fd7 zensical, compat – migrate
autorefsMkDocs plugin replacement - 3a390c7 zensical, compat – migrate
mkdocstringsMkDocs plugin replacement - ff11fe3 zensical, compat – migrate
searchMkDocs plugin replacement - de7757b zensical, zensical-watch – migrate workflows to ZRX scheduler and streams