## Summary
Many of you have been waiting for this one: Zensical now includes native blog support. As a direct port of the Material for MkDocs blog plugin, it preserves the familiar configuration, metadata, URLs, archives, categories, authors, pagination, and more. We're happy to finally put it into your hands, with more flexible blogging functionality planned for the future.
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
## Summary
This version ensures pages containing snippets rebuild when source files change during local preview and excludes hidden files and directories from the generated site. It also fixes preview-site root redirects and returns proper 404 responses while preserving custom error pages.
Additionally, the [user interface] is updated to [v0.0.31], fixing empty submenus for sections containing only an index page and improving task list checkbox sizing and alignment in the modern theme. It also updates dependencies and adds 60 new icons across Lucide, Octicons, and Simple Icons.
[user interface]: https://github.com/zensical/ui
[v0.0.31]: https://github.com/zensical/ui/releases/tag/v0.0.31
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
## Summary
This version adds support for the [mkdocs-callouts] plugin, which renders Obsidian-style callouts as admonitions. It also improves compatibility with existing MkDocs projects by accepting more plugin settings, restores support for mike's `version_selector` option, and fixes builds when the project configuration file is included in `watch`.
Additionally, the [user interface] is updated to [v0.0.30], ensuring that anchor links reveal targets inside collapsed details, content tabs, and annotations—including deeply nested combinations—before scrolling to them.
[mkdocs-callouts]: https://github.com/sondregronas/mkdocs-callouts
[user interface]: https://github.com/zensical/ui
[v0.0.30]: https://github.com/zensical/ui/releases/tag/v0.0.30
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
## Summary
This version adds comprehensive support for documentation redirects in `mkdocs.yml` and `zensical.toml`. Zensical supports page and anchor redirects, resolves redirect chains, rejects cycles, and preserves links when pages are moved or split.
### Anchor redirects
Renaming a heading normally breaks bookmarks and external links to its old anchor. For example, after renaming `## Installation` to `## Getting started`, add:
```toml
[project.plugins.redirects.redirect_maps]
"guide.md#installation" = "guide.md#getting-started"
```
Existing links to `/guide/#installation` will then redirect to `/guide/#getting-started`. The same configuration can redirect anchors between pages or preserve individual sections when splitting a page.
### Automatic redirects
[Zensical Studio](https://zensical.org/studio/) detects renamed headings and offers an **Add anchor redirect** CodeLens. It can complete, validate, navigate to, and repair redirect targets while compacting repeated changes, updating redirect chains, and removing redundant self-redirects.
<img width="557" height="86" src="https://github.com/user-attachments/assets/802d8d99-a205-44af-a29f-6a26eaaa5780" />
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
## Summary
This version updates the user interface to 0.0.28, fixing navigation pruning and alternate-link handling while adding 51 new icons. It also adds direct support for the `table-reader` plugin and fixes template inclusion with macros on Windows extended-length paths.
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
## Summary
This version fixes navigation title precedence, Windows `custom_dir` paths, `material/meta` activation, and inline SVG icons processed by the `minify` plugin.
Signed-off-by: squidfunk <martin.donath@squidfunk.com>
## 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:
- `meta`
- `redirects`
- `minify`
- `tags`
- `literate-nav`
- `awesome-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](https://mail.zensical.org/monthly/2026/06/) 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.
Signed-off-by: squidfunk <martin.donath@squidfunk.com>