Skip to content

Resolve Issue #88: Implement GitHub Pages documentation site - #90

Merged
QuasarAppCI merged 3 commits into
mainfrom
task_88
Oct 13, 2026
Merged

QuasarAppCI merged 3 commits into
mainfrom
task_88

Conversation

@QuasarAppCI

@QuasarAppCI QuasarAppCI commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Summary

Resolves #88 — GitHub Pages documentation site.

  • Site style: Material — MkDocs + Material theme (mkdocs.yml), with palette light/dark toggle, code copy, search highlighting and tasklist rendering for the README.
  • All md documentation — the repo README is the site home page; docs/index.md is generated from the root README.md at build time by the documentation workflow (gitignored copy), so there is a single source of truth.
  • Doxygen documentation — classic Doxygen HTML embedded in the site under /api/; the Doxygen config is generated in CI from doxygen.conf.in (@HEART_VERSION@ -> 1.4.<commit-count>.<short-sha>, same scheme as CMake) with OUTPUT_DIRECTORY redirected to docs/api/.
  • Deployed to a separated branch via GitHub Actions — new Deploy Documentation (GitHub Pages) workflow (push to main + manual dispatch) deploys the built site/ to the gh-pages branch with JamesIves/github-pages-deploy-action@v4.
  • Doxygen is installed in the workflow (per the issue comment): ssciwr/doxygen-install@v2.0.3 pinned to 1.9.8 + ts-graphviz/setup-graphviz@v2.0.2 for the HAVE_DOT=YES diagrams (same action set already proven in QuasarApp/easyssl).
  • .gitignore keeps the generated output (docs/api/, docs/res/, docs/index.md, site/) out of git while tracking the markdown sources.

Review feedback (ae04998)

  • EndrII asked to remove the docs/index.md symlink -> done. The README is now copied to docs/index.md at build time instead, and the workflow creates docs/ before the Doxygen run (the symlink was the only tracked file in that directory).

Validation (local, same toolchain versions as the runner)

  • Doxygen 1.9.8 + Graphviz 2.43: 3006 files generated in docs/api/, class/collaboration diagram PNGs rendered, version 1.4.914.a3e011b.
  • mkdocs build --strict (mkdocs 1.6.1, mkdocs-material 9.7.7): exit 0, no warnings.
  • Local HTTP server smoke test: /, /api/, /res/Banner_Web.png, /api/res/Banner_Web.png all 200; Doxygen main page titled Heart: QuasarApp Heart.

Notes

  • After the merge, the workflow will create the gh-pages branch; the repo Pages source then has to be set to gh-pages (path /) — I can do that via the API once the first deploy lands.
  • The Deploy Documentation (GitHub Pages) workflow is intentionally scoped to push: main (same as the proven easyssl workflow), so it will first run when this PR is merged.

Material-styled MkDocs site containing the markdown documentation

(README) and the Doxygen API documentation served under /api/.

The "Deploy Documentation (GitHub Pages)" workflow installs Doxygen

1.9.8 and Graphviz via marketplace actions, generates the Doxygen

HTML into docs/api/, builds the site with mkdocs-material and deploys

it to the gh-pages branch.
Comment thread docs/index.md Outdated
@EndrII

EndrII commented Oct 13, 2026

Copy link
Copy Markdown
Member

also fix README.md links to site

The site home page is now generated at build time: the documentation workflow copies the root README.md to docs/index.md before 'mkdocs build'. The README stays the single source of truth and the generated copy is gitignored. The workflow also creates docs/ before running Doxygen, since removing the symlink leaves no tracked file in that directory.
@EndrII

EndrII commented Oct 13, 2026

Copy link
Copy Markdown
Member

and lets try to use latest doxygen version (and fix doxygen generated page style - lets make it more material if it posible)

@QuasarAppCI

Copy link
Copy Markdown
Member Author

All three points are addressed in 084f2ca: (1) README link now points to the GitHub Pages site (https://quasarapp.github.io/Heart/ + /api/), (2) the workflow now pins Doxygen 1.18.0 (latest stable, and the version the docs were validated with locally), (3) the generated Doxygen pages get a Material restyle via res/doxygen-material.css (indigo palette + Roboto stack, matching the MkDocs site; dark mode follows the system scheme). SERVER_BASED_SEARCH is off so search works on static GitHub Pages.

@QuasarAppCI
QuasarAppCI merged commit fd12290 into main Oct 13, 2026
3 checks passed
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.

Implement GutHub Pages Documentattion site

2 participants