Skip to content

Migrate the documentation from MkDocs to Zensical - #115

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

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

Conversation

@kattni

@kattni kattni commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Migrates xbuild's documentation 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 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 is reverted to beeware/beeware-docs-tools@main once #288 merges.

Changes

  • docs/config.yml, docs/mkdocs.en.yml and docs/en/SUMMARY.md are replaced by docs/zensical.toml and docs/zensical.en.toml, generated with the docs-tools converter. The converter checked that the result is equivalent to the configuration Zensical reads from the YAML files. The literate-nav navigation is now the nav setting in docs/zensical.toml.
  • The duplicate "Using xbuild" nav entry is removed. It pointed at the How-to guides index page a second time. Material hid it (but gave the How-to page a "Previous" link to itself); Zensical shows it as a second sidebar link.
  • tox.ini: removed the MkDocs-only DISABLE_MKDOCS_2_WARNING and NO_MKDOCS_2_WARNING settings, and the --source-code=src argument, which docs-tools no longer uses.
  • pyproject.toml: the temporary docs-tools pin, and docs/en/SUMMARY.md removed from the rumdl excludes.
  • .gitignore: ignores the docs/_build.*.toml files that builds generate.

Verification

The strict Zensical build passes with no issues. Compared with the MkDocs build of main:

  • Both builds have 52 pages.
  • Article text is identical on 47 pages. The other 5 differ only in docs-tools' shared contribution content, which now describes nav in zensical.toml instead of SUMMARY.md, and Zensical instead of MkDocs.
  • Page titles, sidebar navigation, header tabs, "On this page" lists, images and other files are identical. Neither build has broken internal links. The How-to page's "Previous" link now goes to the Android tutorial instead of itself.
  • objects.inv is byte-identical. xbuild has no API reference pages, so mkdocstrings generates no content.
  • Pages look the same in light and dark mode, apart from the theme's compact search box.

Notes for reviewers

  • Removing the duplicate "Using xbuild" nav entry keeps the sidebar the same as before. If a sidebar entry for that section is wanted, it could point at how-to/index.md#using-xbuild instead.

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)

Convert docs/config.yml, docs/mkdocs.en.yml and docs/en/SUMMARY.md into
Zensical-native docs/zensical.toml and docs/zensical.en.toml, using the
docs-tools converter. The literate-nav navigation becomes the nav setting.

Drop the duplicate "Using xbuild" nav entry, which pointed at the How-to
guides index page a second time; Material hid it, but Zensical shows it.

Remove the MkDocs-only settings from tox.ini, the --source-code argument
that docs-tools no longer uses, and SUMMARY.md from the rumdl excludes.
Ignore the docs/_build.*.toml files that builds generate.

Temporarily pin beeware-docs-tools to the Zensical migration branch,
until beeware/beeware-docs-tools#288 is merged.
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