Migrate from MkDocs¶
You do not need to change your configuration or replace your current workflow
to adopt Zensical. Zensical reads the existing mkdocs.yml, so the same project
can be built with either command:
We are committed to making adoption gradual and reversible. Zensical continues
to support your existing mkdocs.yml, so your MkDocs build is a working safety
net while you migrate to Zensical.
Adopt Zensical gradually¶
- Keep your existing MkDocs production deployment unchanged.
- Build the same project with Zensical using its existing
mkdocs.yml. - Compare representative pages, navigation, search, and customizations.
- Ensure that every MkDocs plugin you depend on is supported.
- Switch local and CI commands only when you are confident in the result.
Try Zensical Studio¶
Zensical Studio works with both MkDocs and Zensical projects, giving you the same authoring environment throughout the transition. Try it on your MkDocs project today, then gradually switch to Zensical without changing your workflow or losing access to Studio's workspace intelligence.
In the coming months, Zensical Studio will become the central place for
assessing compatibility and guiding a complete migration to Zensical, including
the final move to zensical.toml.
You can keep mkdocs.yml for as long as you want. Both MkDocs and Zensical
can read it, so moving to zensical.toml is not required as part of adopting
Zensical.
Configuration¶
When adding settings during this period, use the mkdocs.yml examples in the
configuration reference so the project remains compatible with both builders.
Zensical preserves the standard MkDocs project structure: configuration lives
at the project root, Markdown content lives in docs_dir, and
generated output is written to site_dir. Existing page paths,
directory URLs, and navigation configuration remain unchanged.
Unsupported settings¶
The following mkdocs.yml settings are not yet supported in Zensical:
remote_branchremote_nameexclude_docsdraft_docsnot_in_navhooks
Build and preview¶
During evaluation, run Zensical alongside the existing MkDocs commands. When
you are ready to switch, replace mkdocs with zensical in local and CI
commands. The common build and serve workflows remain available, with the
following differences:
--theme– not supported – Use themevariant.--use-directory-urls– not supported. Useuse_directory_urls.--site-dir– not supported. Usesite_dir.gh-deploy– not provided. Use the appropriate publishing method.get-deps– not provided. Declare dependencies explicitly inpyproject.toml.
See the command-line reference for the commands and options that Zensical provides.
Theme variant¶
Zensical provides two theme variants – modern and classic.
The classic variant preserves the appearance of Material for MkDocs, while
both variants retain the same HTML structure. We recommend using classic
when moving an existing Material for MkDocs project or when custom CSS and
JavaScript depend on its established appearance:
Templates and overrides¶
Zensical uses MiniJinja rather than Jinja to render templates. MiniJinja is largely compatible with Jinja, but it does not include a Python interpreter and cannot call arbitrary Python functions. Use the available filters and tests instead.
Material for MkDocs adapted its standard templates for MiniJinja compatibility. The last required changes were released in Material for MkDocs 9.6.18. Overrides based on that version or a later one should generally work without changes.
When moving older or extensively customized overrides:
- Compare them with the current Material for MkDocs templates.
- Replace calls to arbitrary Python functions with supported filters or tests.
- Build a representative set of pages and check each overridden block.





