Developer Notes#
How this site is built#
Content: Authored in Markdown via MyST; reStructuredText works too.
API reference: Generated by Exhale/Breathe from the Doxygen XML under
docs/doxygen-xml/xml.Theme: sphinx-book-theme for a clean, responsive layout with built-in sidebar TOC and search.
Adding or curating docs#
Put new narrative pages in
docs/sphinx/and add them to a toctree.Use MyST features (admonitions, fenced code blocks, task lists) for richer docs.
Keep C++ API coverage focused: adjust
INPUTorEXCLUDE_PATTERNSindocs/Doxyfileif you want to broaden or narrow what lands in the API tree.
Common tasks#
Refresh API docs after structural code changes:
doxygen docs/Doxyfile sphinx-build -b html docs/sphinx docs/_build/html
Preview a single page quickly:
sphinx-build -b dirhtml docs/sphinx /tmp/rex-docs-preview python -m http.server --directory /tmp/rex-docs-preview
Publish automation#
A GitHub Actions workflow (
.github/workflows/docs-publish.yml) runs on a weekly schedule (Thu 00:00 UTC) or manually viaworkflow_dispatch. It builds the docs and deploys togh-pageswith CNAMErex.ouankou.com.The workflow installs Doxygen, builds the XML, builds Sphinx HTML, and pushes to
gh-pages. No manual steps are needed once changes land onmain.
Scope#
Doxygen is header-only (
*.h*, plus Markdown), scoped tosrc+README.md.Private/internal members are included; undocumented/local/anon entries are skipped; heavy third-party headers (nlohmann copies) and submodules (ompparser/accparser) are excluded to keep the build manageable.