Skip to content

chore(docs): migrate docs build from MkDocs to Zensical - #8585

Merged
leandrodamascena merged 3 commits into
developfrom
chore/docs-zensical
Oct 18, 2026
Merged

leandrodamascena merged 3 commits into
developfrom
chore/docs-zensical

Conversation

@leandrodamascena

Copy link
Copy Markdown
Contributor

Issue number: closes #8195

Summary

Changes

Moves the docs build from MkDocs to Zensical. Zensical reads our mkdocs.yml as is, so the project layout, nav, snippets, annotations, tabs, mermaid, mkdocstrings API pages and the main.html override all stay the same. I built the site with both tools and compared page by page: same 109 pages, same 81 API objects, same code blocks and annotations. Build time went from 26s to 8s.

  • zensical==0.0.71 replaces mkdocs-material, mkdocs-git-revision-date-plugin and mkdocs-llmstxt. llms.txt and llms-full.txt are generated natively, no config change.
  • theme.variant: classic keeps the Material look. The default modern variant is the new visual we saw in May.
  • The privacy plugin does not exist in Zensical, so Ubuntu and Roboto Mono are now self-hosted in docs/stylesheets/fonts/ (latin + latin-ext, 737 KB) with theme.font: false. The built site makes no request to Google Fonts.
  • git-revision-date has no replacement. The "Last update" line is gone.
  • mkdocstrings: import is now inventories. The old key was removed in mkdocstrings-python 2.x.
  • core/metrics.md and core/metrics/index.md rendered to the same URL. MkDocs let one overwrite the other, Zensical fails the build. The EMF content now lives in core/metrics/index.md (same URL, same title), the duplicate nav entry is gone, and the internal links were updated.
  • Workflows, Makefile and docs/Dockerfile call zensical instead of mkdocs. docs/requirements.txt was regenerated with hashes and installs on Python 3.12 and 3.14.
  • zensical is only installed on Python 3.11+ in the dev group, which is its minimum.

User experience

No visual change intended. Things to look at when reviewing:

  • Search is Zensical's own engine, not Lunr. Try a few class names and phrases.
  • Fonts render from our own files. Check a page with code.
  • make docs-local and make docs-local-docker work the same way, just running Zensical.

Zensical is still 0.0.x until the 0.1.0 line on November 5, so the version is pinned. Material for MkDocs reaches end of life on May 5, 2027.


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Zensical reads the existing mkdocs.yml, so the project structure stays the same.

- replace mkdocs-material, mkdocs-git-revision-date-plugin and mkdocs-llmstxt with zensical (llms.txt is native now)
- use theme variant classic to keep the Material look
- self-host Ubuntu and Roboto Mono fonts instead of the privacy plugin
- rename mkdocstrings 'import' to 'inventories'
- fold core/metrics.md into core/metrics/index.md, both rendered to the same URL
- switch workflows, Makefile and the docs Dockerfile to zensical
@leandrodamascena
leandrodamascena requested a review from a team as a code owner October 18, 2026 10:13
@boring-cyborg boring-cyborg Bot added dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation github-actions Pull requests that update Github_actions code internal Maintenance changes metrics labels Oct 18, 2026
@powertools-for-aws-oss-automation powertools-for-aws-oss-automation Bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Oct 18, 2026
Comment thread docs/Dockerfile Fixed
Comment thread docs/Dockerfile Dismissed
@codecov

codecov Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.93%. Comparing base (43bab8d) to head (2f4b014).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #8585   +/-   ##
========================================
  Coverage    96.93%   96.93%           
========================================
  Files          318      318           
  Lines        16005    16005           
  Branches      1420     1420           
========================================
  Hits         15514    15514           
  Misses         349      349           
  Partials       142      142           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sonarqubecloud

sonarqubecloud Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
1 New issue
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

@leandrodamascena
leandrodamascena merged commit bdd370b into develop Oct 18, 2026
16 checks passed
@leandrodamascena
leandrodamascena deleted the chore/docs-zensical branch October 18, 2026 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation github-actions Pull requests that update Github_actions code internal Maintenance changes metrics size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: migrate from MkDocs to Zensical

2 participants