Martin Donath

Martin Donath

@squidfunk.com

Founder of @zensical.org, creator of Material for MkDocs

450 followers12 following246 posts

Studio has crossed 1,000 weekly active users! 🚀 Four months into our beta, it's great to see Studio becoming part of more technical documentation workflows. Thanks to everyone using Studio, sharing feedback, and helping us make it better for everyone ❤️ zensical.org/studio/

Sunday – funday: screen of my wife's MacBook broke. iPad via Sidecar to the rescue. Blindly navigating through display settings with Voiceover to enable mirroring – wow, that was hard – then built a keyboard shortcut and auto-connector with Codex. Accessibility is hard.

We're putting the finishing touches on Zensical 0.1.0, just two weeks away! This release brings another round of MkDocs compatibility improvements as we remove the remaining differences in behavior. Very excited for what's coming!

Zensical@zensical.org

Zensical 0.0.72 brings behavior very close to Material for MkDocs: privacy plugin, fenced code blocks by default, and fixes for links and Markdown extension ordering among many others. Release notes: github.com/zensical/zen...

In this week's Zensical Monthly, we'll share more on Spark Community, launching November 5. We're rebuilding Spark from scratch for great UX, fast feedback, Open Source collaboration, and early access – shaped by a decade of building in the open. zensical.org/about/newsle...

MkDocs 1.x is now closed to outside contributions. Meanwhile, six new MkDocs 2.0 pre-releases have been published to PyPI. We've updated our article to reflect the latest developments, what they may mean for your projects, and how you can start planning: squidfunk.github.io/mkdocs-mater...

squidfunk.github.ioWhat MkDocs 2.0 means for your documentation projects - Material for MkDocsMkDocs 2.0 is a ground-up rewrite of the documentation tool tens of thousands of projects rely on, introducing potentially significant breaking changes

🤫 Fewer and fewer reasons to stay on MkDocs – switch to Zensical, an actively maintained stack.

Zensical@zensical.org

Zensical 0.0.65 is out 🎉 It includes a plugin replacement for the MkDocs RSS plugin, which means your blog can now ship RSS and JSON feeds! Release notes: github.com/zensical/zen...

5x faster. 80% fewer tokens. Agents should edit intent, not chase references. In three paired runs, Studio also cut direct file edits by 90% while updating every affected link. We're bringing this to Zensical Studio in the coming weeks. zensical.org/studio/

Pretty happy with how yesterday went, and we're already back at it ☺️ Just released: 0.2.17 makes Connections easier to explore: – Expand all connections – Open targets directly or to the side – Reveal assets in your file explorer zensical.org/studio/

We've put a lot into this – really happy to finally share it with you ☺️

Zensical@zensical.org

On November 5, we'll ship Zensical 0.1.0, move Studio out of beta, and open Spark Community to individuals. Zensical remains free and Open Source, forever. Here's what changes – and what stays the same: zensical.org/upcoming-cha...

After link validation, this is probably one of the most useful features we've added to Zensical Studio. Keeping incoming links intact as documentation evolves sounds simple, but involves many interesting edge cases. This was a lot of fun to build.

Zensical@zensical.org

Zensical 0.0.61 adds anchor redirects, so incoming links and bookmarks keep working when headings change or content moves. Zensical Studio now suggests redirects for renamed headings and keeps mappings up-to-date for you. Enjoy your weekend! github.com/zensical/zen...

I really love where this is going: one unified model of your entire documentation project, from Markdown content to configuration.

Zensical@zensical.org

Project configuration is source code, too. Zensical Studio now completes and validates mkdocs.yml and zensical.toml, shows previews for navigation items, and keeps paths synchronized when pages move. zensical.org/studio/

That was a lot of work, but I’m very happy with where we landed. 6 MkDocs plugin replacements, a much more efficient build architecture, and a solid foundation for what comes next!

Zensical@zensical.org

Zensical 0.0.58 is out – our largest compatibility and workflow update yet + 6 MkDocs plugin replacements: - meta - redirects - minify - tags - literate-nav - awesome-nav Peak memory use is cut by 30–40%, with the biggest gains on larger projects. github.com/zensical/zen...

We reduced memory use by 8x in 0.0.54. The next release cuts it another ~40%. More tomorrow.

Zensical@zensical.org

New Zensical release tomorrow 🚀 We've been quietly making it faster and leaner – peak memory down by 40% depending on project size. More details in a few hours.

Exactly two years after MkDocs 1.6.1 – the last release of the original MkDocs lineage – there's now an installable MkDocs 2.0 pre-release on PyPI. MkDocs 2.0 is being developed as a ground-up rewrite with a fundamentally different architecture. pypi.org/project/mkdo...

Some people wonder why we’re working on replacing Python Markdown in Zensical. This trace shows why: it occupies ~91% of the cold-build critical path, while the rest of the pipeline fans out across cores. Our Rust parser removes that bottleneck and unlocks parallelism.

Martin Donath reposted

Zensical Studio now treats your nav configuration as part of the documentation workspace. Complete pages as you type, catch invalid entries immediately, and keep navigation paths correct when files move. Works with Zensical and MkDocs projects. zensical.org/studio/

We're building Zensical Studio to make the relationships between Markdown pages, reusable content, and assets much easier to understand ☺️

Zensical@zensical.org

Zensical Studio's new Connections view helps you explore the current documentation's relations: 🔗 Incoming and outgoing links 🖼️ Images and other assets used by a page 💣 Invalid links and unresolved references zensical.org/studio/

Extremely useful and surprisingly satisfying to watch 60 broken links magically being repaired at once 🪄

Zensical@zensical.org

When you open Zensical Studio this morning, you’ll find that broken links now show hover previews and have a new "repair" code action. The video shows: → Preview repair candidates → Repair 1 broken link → Repair 60 broken links at once zensical.org/studio/

I've changed my mind on AI-generated bug reports. They got genuinely better and helpful. Open Source maintainers: do you share prompts with your users to help an LLM gather data and debug before filing an issue?

If you work in a large documentation project, the latest Zensical Studio update should feel quite different. Startup, link intelligence, workspace symbols, and diagnostics have all received substantial performance work 🚀

Zensical@zensical.org

50,000 documents indexed in under 8 seconds. The latest Zensical Studio release improves indexing performance for large documentation workspaces. Recorded on a MacBook Pro (M2) from '22. zensical.org/studio/

Martin Donath reposted

Autorefs are now workspace symbols in Zensical Studio! They support completion, diagnostics, navigation, incoming-reference counts, rename, and safe updates across the entire project. Zensical Studio is available for VS Code: zensical.org/studio/

We keep shipping – Zensical Studio 0.2.6 makes anchors first-class workspace symbols: navigate, validate, rename, and automatically update incoming links across your entire documentation project. Documentation, refactored like code.

Zensical@zensical.org

Never break anchor links again. Zensical Studio 0.2.6 tracks every addressable Python Markdown element, including headings, attribute lists, and HTML IDs. Rename an anchor or edit and save it, and incoming links update automatically. zensical.org/studio/

Martin Donath reposted

Zensical 0.0.52 is out! 🇨🇳🇯🇵🇰🇷 Search now supports Chinese, Japanese, and Korean through locale-aware word segmentation. The release also includes a larger search modal, improved keyboard key styling, and 56 new icons. Release notes: github.com/zensical/zen...

github.comRelease 0.0.52 · zensical/zensicalSummary This version adds search support for CJK languages: Chinese, Japanese, and Korean. Search needs to segment text into individual words before it can index and match them. While many language...

👀 Sneak peek: A Markdown formatter that understands Python Markdown - natively: ✨ Format on save (or edit) ⚡ Extremely fast – written in Rust 🏗️ Integrated into Zensical Studio 👯‍♀️ Works with Zensical and MkDocs projects More about Zensical Studio: zensical.org/studio/

A much-requested feature is here: Zensical Studio 0.2.0 now provides a live, interactive Markdown preview. It also works with your existing MkDocs projects ☺️

Zensical@zensical.org

1/2 Zensical Studio 0.2.0 provides a live Markdown preview for Zensical and MkDocs projects, powered by our Rust-based Python Markdown renderer. It updates as you type, supports navigation, and stays synchronized with your editor. zensical.org/studio/

Python Markdown is too strict about link labels. We're working on fixing that in Zensical's new Rust-based Markdown implementation ☺️ No more [`module.symbol`][module.symbol] workarounds.

Material for MkDocs 9.7.7 is out. It fixes a DOM-based XSS issue in the optional search.suggest feature, which was responsibly disclosed to us. Please update. Material for MkDocs will continue receiving security updates through November 5, 2026. github.com/squidfunk/mk...

github.comRelease mkdocs-material-9.7.7 · squidfunk/mkdocs-materialWarning Material for MkDocs is approaching end of life Material for MkDocs is scheduled to reach end of life on November 5, 2026. Until then, maintenance is limited to critical bug fixes and securi...

4 weeks after launching Zensical Studio, Markdown Preview is one of the most requested features – soon, you won't even need to leave the editor to get a truthful preview of your docs. Supports dark mode 🌗 If you haven't, check out Studio: zensical.org/studio/

If you missed it: Python Markdown has documented all of its extensions as being in maintenance mode. Good timing: we just rewrote Python Markdown in Rust, and it already powers Zensical Studio. It’s 10-20x faster and will be Open Sourced later this year. github.com/Python-Markd...

github.comDocument all extensions are in maintenance mode by waylan · Pull Request #1613 · Python-Markdown/markdownThis has been the de facto policy for some time. We are now officially documenting it. Relates to #1612. Some recommendations for alternative extensions have been included. If anyone would like to ...

Zensical Studio is out, and the bigger picture is coming together. We're building the next-generation Docs-as-Code stack, end to end, and we're right on track. More in tomorrow's newsletter. zensical.org/about/newsle...

Zensical@zensical.org

Material for MkDocs proved the value of Python Markdown for technical writing. With Zensical, we’re now integrating the layers around it: parser, editor tooling, build, and publishing. We’ll share more in tomorrow’s newsletter. zensical.org/about/newsle...

Now that Zensical Studio is out and humming, I'm picking up work on ZRX again, the heart of Zensical. Working hard on closing the remaining gap to MkDocs, so most projects can move to Zensical in the coming weeks/months ☺️ github.com/zensical/zrx...

github.comRelease 0.0.25 · zensical/zrxSummary This version adds Sequence as the ordered relation layer on top of Expression, which is what makes route matching work for keyed relations like page -> tags. With Sequence, those relations ...