Skip to content

Add automated documentation build and publish to GitHub Pages#51

Open
dimitrivlachos wants to merge 3 commits into
mainfrom
add_documentation
Open

Add automated documentation build and publish to GitHub Pages#51
dimitrivlachos wants to merge 3 commits into
mainfrom
add_documentation

Conversation

@dimitrivlachos

Copy link
Copy Markdown
Collaborator

This PR adds a documentation build to the repository and wires it into
CI, so that every push to main publishes the rendered site to GitHub
Pages and every pull request produces a downloadable HTML preview. It
addresses #12: dx2 has no rendered documentation, and while the headers
carry some Doxygen markup, nothing as of yet turned it into a site
anyone could read.

The stack is Doxygen -> Breathe -> Exhale -> Sphinx with the Furo theme.
Exhale drives Doxygen itself (exhaleExecutesDoxygen = True) with the
Doxygen configuration inlined in conf.py, so there is no separate
Doxyfile to keep in sync. The result is an auto-generated API reference
plus the README pulled in as the landing content, which is enough to get
the site live.

The deploy job needs the repository's Pages source set to GitHub Actions
rather than a branch, so I have switched that on in the repository
settings already.

From here we could:

  • Drop hand-written pages into docs/ and add them to the toctree.
  • Fill in Doxygen comments across the headers, which improves the API
    reference on its own.

Changes:

  • docs/conf.py: Sphinx configuration with the Breathe/Exhale
    bridge to Doxygen and the inlined Doxygen settings, on the Furo
    theme.
  • docs/index.rst: the root document and toctree.
  • docs/readme.md: pulls the top-level README in via {include}
    so the landing page has content.
  • docs/requirements.txt: the docs build dependencies (Sphinx,
    Furo, Breathe, Exhale, MyST).
  • .github/workflows/docs.yml: a Docs workflow that builds on
    push and pull request, uploads the rendered HTML as a preview
    artifact on pull requests, and deploys to GitHub Pages only on
    push to main.
  • README.md: a Documentation section.
  • .gitignore: ignore the local docs/_build output.
  • Bump the workflow actions to their Node 24 releases
    (checkout@v7, setup-python@v6, upload-artifact@v7,
    upload-pages-artifact@v5, deploy-pages@v5).

Closes #12

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.

A distinct lack of documentation

1 participant