Skip to content

Migrate the documentation from MkDocs to Zensical - #103

Open
kattni wants to merge 3 commits into
beeware:mainfrom
kattni:tooling/zensical-migration
Open

kattni wants to merge 3 commits into
beeware:mainfrom
kattni:tooling/zensical-migration

Conversation

@kattni

@kattni kattni commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Moves Podium's documentation build from MkDocs and Material for MkDocs to Zensical 0.1.0, with Zensical-native configuration files.

This depends on beeware/beeware-docs-tools#288, which moves the shared docs-tools build to Zensical. Until that PR is merged, the docs dependency group is temporarily pinned to its branch (kattni/beeware-docs-tools@tooling/zensical-migration). The pin will be reverted to beeware/beeware-docs-tools once #288 is merged.

Changes

  • docs/config.yml and docs/mkdocs.en.yml are replaced by docs/zensical.toml and docs/zensical.en.toml. They were generated with the docs-tools converter, which checked that Zensical reads the same configuration from the new files as it did from the YAML.
  • docs/en/SUMMARY.md (literate-nav) is replaced by the native nav setting in docs/zensical.toml. The literate-nav plugin is no longer used.
  • pyproject.toml: the docs group is temporarily pinned to the docs-tools migration branch (see above).
  • tox.ini: removed the MkDocs-only DISABLE_MKDOCS_2_WARNING and NO_MKDOCS_2_WARNING settings.
  • .gitignore: ignores the docs/_build.*.toml files that docs-tools generates during a build.
  • Added a change note.

Verification

  • tox -r -e docs builds in strict mode with no issues. Strict mode does fail the build on a broken link.
  • Compared with a MkDocs build of main:
    • Pages: the same 36 pages, plus the 404 page.
    • Article text: identical on 32 of 37 pages. The other 5 are contribution-guide pages that come from docs-tools' shared content, which #288 updates on purpose. Four of them now say to add new pages to nav in zensical.toml instead of SUMMARY.md. The documentation style guide now refers to Zensical instead of MkDocs.
    • Other checks: page titles, images, article links, the sidebar, tabs and previous/next links are identical. There are no broken links in either build.
  • A visual check of several pages in light and dark mode shows the same layout. The only visible difference is Zensical's more compact search box.

Notes for reviewers

  • tox.ini still passes --source-code=stubs to build_md_translations. docs-tools accepts this option but doesn't use it, either before or after #288, and Podium has no stubs directory. It could be removed, as it was in Toga and Rubicon, but I left it alone to keep this PR to the migration.
  • New pages now have to be added to nav in docs/zensical.toml. Zensical doesn't warn about pages that are missing from nav.

PR Checklist:

  • I will abide by the BeeWare Code of Conduct
  • I have read and have followed the CONTRIBUTING.md file
  • This PR was generated or assisted using an AI tool

Assisted-by: Claude Code (Claude Opus 5.5)

docs/config.yml and docs/mkdocs.en.yml become docs/zensical.toml and
docs/zensical.en.toml, and the literate-nav SUMMARY.md becomes the native
nav setting in zensical.toml. Generated with the docs-tools
convert_mkdocs_config command, which checked that Zensical reads the same
configuration from the TOML files as from the YAML files.
Temporarily pin beeware-docs-tools to the Zensical migration branch
(beeware/beeware-docs-tools#288); revert to beeware/main once that PR is
merged. Remove the MkDocs-only DISABLE_MKDOCS_2_WARNING and
NO_MKDOCS_2_WARNING settings from tox.ini, and ignore the
docs/_build.*.toml files that docs-tools generates during a build.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant