Skip to content

docs: Set up Doxygen + Doxygen Awesome for SDK reference documentation#450

Closed
kirre-bylund wants to merge 2 commits into
devfrom
docs/1461-doxygen-setup
Closed

docs: Set up Doxygen + Doxygen Awesome for SDK reference documentation#450
kirre-bylund wants to merge 2 commits into
devfrom
docs/1461-doxygen-setup

Conversation

@kirre-bylund
Copy link
Copy Markdown
Contributor

@kirre-bylund kirre-bylund commented Mar 30, 2026

Summary

Sets up Doxygen with the Doxygen Awesome CSS theme as the documentation generator for the Unity SDK, and adds a CI workflow that packages and publishes the generated docs.

Closes lootlocker/index#1461
Part of lootlocker/index#1203


Changes

.doxygen/ — all generation config (export-ignored, not shipped with SDK)

  • Doxyfile — input: Runtime/, excludes Libraries/Editor/internal files, output: docs/html/; EXTRACT_ALL=NO / HIDE_UNDOC_MEMBERS=YES; INTERNAL_DOCS=NO; JAVADOC_AUTOBRIEF=YES
  • doxygen-awesome/doxygen-awesome.css + doxygen-awesome-sidebar-only.css from jothepro/doxygen-awesome-css
  • custom-layout-fixes.css — 500px sidebar, branding padding, sidebar background extension
  • lootlocker-theme.css — LootLocker colour overrides
  • nav-customization.js — two-phase nav tree restructuring: enums into Types, Topics hoisted to root, namespace prefixes stripped from sidebar labels
  • DoxygenLayout.xml — Types before Topics; pages/modules/namespaces hidden
  • header.html / footer.html — custom HTML with script injection for nav-customization.js
  • images/lootlocker-logo.png — branding

.github/workflows/generate-docs.yml

Trigger Behaviour
PR to main or dev Runs Doxygen — validates no errors
Push to main Generates docs and uploads sdk-docs-{sha} artifact (30-day retention)
Release published Generates, zips, and attaches docs-{version}.zip to the GitHub release
Manual dispatch Generates docs on demand

.gitattributes

  • .doxygen/ added to export-ignore — generation config is stripped from archives and package exports; only docs/html/ (generated output) ships with the SDK

.gitignore

  • docs/html/ excluded from version control (generated output)

package.json

  • documentationUrl points to hosted docs — Unity Package Manager surfaces this as the "Documentation" button

Verification

Ran locally with Doxygen 1.16.1:

doxygen .doxygen/Doxyfile
  • Exit code: 0
  • Warnings: 0
  • Errors: 0
  • Internal types (Libraries, Editor, EndPoints, Obfuscator, Validation) confirmed absent from output

- Add .doxygen/ with Doxyfile, Doxygen Awesome theme, custom CSS, nav JS,
  layout, header/footer, and LootLocker branding
- Add .github/workflows/generate-docs.yml: validates on PR, uploads artifact
  on push to main, attaches docs-{version}.zip to releases
- Add .gitattributes: export-ignore for .doxygen/, .github/, Tests/ etc.
- Update .gitignore: exclude docs/html/ generated output
- Add @InGroup and XML doc annotations to source files for featured coverage

Closes lootlocker/index#1461
Part of lootlocker/index#1203
@kirre-bylund kirre-bylund force-pushed the docs/1461-doxygen-setup branch from 7f8e41e to bb1a529 Compare April 8, 2026 07:40
@kirre-bylund kirre-bylund force-pushed the docs/1461-doxygen-setup branch from 2d853a7 to 33a850d Compare April 8, 2026 07:52
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.

1 participant