Uh oh!
There was an error while loading. Please reload this page.
docs: migrate from Sphinx/RST/Doxygen to Antora/AsciiDoc - #797
Conversation
sdebionne
commented
Sep 1, 2026
Well I don't deserve the credit on this one, my AI agent did most of the work... The result is very promising, hoping that the MrDocs bugs are not too difficult to fix. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## develop #797 +/- ##
===========================================
+ Coverage 82.05% 82.85% +0.79%
===========================================
Files 117 119 +2 Lines 5383 5634 +251 ===========================================
+ Hits 4417 4668 +251
Misses 966 966 🚀 New features to boost your workflow:
|
sdebionne
commented
Sep 3, 2026
@mloskot Here is the documentation built locally (I am working on the CI now): site.tar.gz. IMHO, It's great improvement. |
Convert all prose documentation under doc/ to AsciiDoc pages built with Antora, following the boostorg/redis and boostorg/url convention (antora.yml, nav.adoc, build_antora.sh, package.json). Fix two pre-existing navigation gaps in the process: the contrast_enhancement pages that were unreachable from the old toctree, and the duplicated histogram/extension inclusion. The C++ API reference stays Doxygen-generated for now and is linked in via modules/ROOT/pages/reference.adoc: MrDocs 0.8.0 segfaults on most of GIL's CRTP-based pixel/image/iterator/locator headers, so a MrDocs-native reference (mrdocs.yml is prepared but not wired into antora.yml) is blocked on an upstream fix. Update the docs CI actions and pixi.toml's new `docs` environment (Node.js + Doxygen) accordingly, and remove the old Sphinx toolchain files. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace the interim Doxygen reference (see previous commit) with a real
MrDocs-generated one, now that the upstream segfault blocking it is fixed
(verified against a fixed MrDocs dev build against all 49 previously-crashing
GIL headers, and against the full public API: 6796 declarations, 5662 pages).
- doc/mrdocs-src/all.cpp: the single translation unit MrDocs extracts from --
core + concepts + image_processing + the dynamic_image/toolbox/numeric/
histogram extensions + the generic io layer. Deliberately excludes
extension/io/{jpeg,png,tiff,bmp,pnm,raw}, which need the matching external
image libraries just to parse.
- doc/mrdocs.yml: scoped to that same surface; compilation-database is
generated by build_antora.sh since it needs $BOOST_SRC_DIR baked in.
- antora.yml: ext.cppReference wired in (camelCase -- the extension doesn't
read the kebab-case key the public docs guide shows).
- reference.adoc: rewritten from the Doxygen stopgap to a curated table of
xref:reference:boost/gil/<Symbol>.adoc[] links, grouped by the categories
the old doc/reference.dox Doxygen-group taxonomy used (that taxonomy has
no equivalent in MrDocs' output, which groups by namespace/file instead).
- design/*.adoc: the ~45 concept deep-links that used to point at Doxygen
HTML now point at the real MrDocs reference pages instead.
- doxyfile, reference.dox, header.html, footer.html, doxygen-boost.css:
removed, no longer needed.
- local-playbook.yml: failure_level set to `fatal` rather than `error` --
some MrDocs-generated pages (e.g. packed_pixel) link to private-member
sub-pages (`_bitfield`) that MrDocs doesn't actually emit regardless of
extract-private; cosmetic, worth another small upstream report, but not
worth hard-failing the build over.
- .gitignore: `/doc/*build*` was accidentally also matching and silently
untracking doc/build_antora.sh this whole time (the same trap the
pre-existing `!build.jam` exception below it was clearly added for
before); narrowed to `/doc/build/`, and doc/build_antora.sh is now
actually tracked.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>setup-boost's `cp -r $GITHUB_WORKSPACE/* libs/gil` (into ../boost-root) drops .git (cp -r with a glob doesn't match dotfiles), but local-playbook.yml's Antora content source (`url: ..`) requires a real git repository. Found via the docs-ci-smoke test branch: FATAL (antora): Local content source must be a git repository: /home/runner/work/gil/boost-root/libs/gil (url: ..) Run the build from the original checkout instead (which does have .git), and only use ../boost-root for BOOST_SRC_DIR (MrDocs' cross-library header resolution), matching how boostorg/url and boostorg/redis's CI scripts keep those two concerns separate. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Add libs/gil/pixi.toml -- a self-contained `docs` environment (Node, a C++ compiler, and MrDocs from the sdebionne/label/esrf-bcu channel, which repackages a fixed MrDocs dev build until the upstream segfault fix ships in an official release) -- so `pixi run -e docs docs-build` is a fully self-contained one-command local build. build_antora.sh now auto-detects a pixi/conda-provided MrDocs via CONDA_PREFIX when MRDOCS_ROOT isn't already set, instead of falling through to the antora-cpp-reference-extension's auto-download (which currently fetches the still-broken official release). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
docs-prerequisites now sets up the pixi `docs` environment instead of a plain Node install, and generate-doc runs the build through `pixi run -e docs docs-build`. Without this, a real push to develop/master would still hit the antora-cpp-reference-extension's auto-download of the official MrDocs release, which segfaults on GIL's headers -- validated end-to-end on the docs-ci-smoke test branch first. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
7b9e276 to
c889bcbCompareUh oh!
There was an error while loading. Please reload this page.
sdebionne
commented
Sep 3, 2026
@mloskot It might be easier for you to review the doc with https://boostorg.github.io/gil/develop/doc/gil/index.html now that the CI works. |
mloskot
commented
Sep 4, 2026
@sdebionne This looks fantastic |
Description
Convert all prose documentation under doc/ to AsciiDoc pages built with Antora, following the boostorg/redis and boostorg/url convention (antora.yml, nav.adoc, build_antora.sh, package.json). Fix two pre-existing navigation gaps in the process: the contrast_enhancement pages that were unreachable from the old toctree, and the duplicated histogram/extension inclusion.
The C++ API reference stays Doxygen-generated for now and is linked in via modules/ROOT/pages/reference.adoc: MrDocs 0.8.0 segfaults on most of GIL's CRTP-based pixel/image/iterator/locator headers, so a MrDocs-native reference (mrdocs.yml is prepared but not wired into antora.yml) is blocked on an upstream fix.
Update the docs CI actions and remove the old Sphinx toolchain files.
References
Closes#782
Closes#783
Tasklist