docs: Set up Doxygen + Doxygen Awesome for SDK reference documentation#453
Merged
Conversation
33a850d to
bb1a529
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Sets up a Doxygen-based reference documentation pipeline for the LootLocker Unity SDK, including the Doxygen Awesome theme, custom styling/navigation tweaks, and a GitHub Actions workflow to generate and publish/attach the generated docs.
Changes:
- Added a Doxygen configuration bundle under
.doxygen/(theme, layout, main page, groups, nav customization, and sync script). - Added a CI workflow to generate docs on PRs/pushes/releases and upload artifacts / attach release zips.
- Improved/added XML documentation summaries on a handful of SDK response/types.
Reviewed changes
Copilot reviewed 17 out of 21 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/Sync-DocsNavigation.ps1 |
PowerShell alternative for syncing mainpage navigation from groups.dox. |
Runtime/Game/Requests/FriendsRequest.cs |
Adds <summary> docs to previously undocumented request/response DTOs. |
Runtime/Client/LootLockerRequestContext.cs |
Adds class-level XML docs for request context. |
Runtime/Client/LootLockerErrorData.cs |
Adds class-level XML docs for error payload type. |
.gitignore |
Ignores generated Doxygen output at docs/html/ and adds temp dirs. |
.github/workflows/generate-docs.yml |
New workflow to sync nav, run Doxygen, upload artifacts, and attach release zip. |
.gitattributes |
Excludes .doxygen/ from exported archives via export-ignore. |
.doxygen/sync-nav.sh |
Bash/Python script to regenerate the mainpage nav table from groups.dox. |
.doxygen/nav-customization.js |
Post-processes Doxygen nav tree to reorganize Topics/Types and shorten labels. |
.doxygen/mainpage.md |
Adds the docs landing page content, quick start, and navigation table. |
.doxygen/lootlocker-theme.css |
LootLocker branding/theme overrides for Doxygen Awesome. |
.doxygen/images/lootlocker-logo.png |
Logo asset used in header/mainpage. |
.doxygen/header.html |
Custom HTML header with LootLocker top nav + theme toggle behavior. |
.doxygen/groups.dox |
Defines feature/topic groups used to build “Topics” navigation. |
.doxygen/footer.html |
Custom footer and injection of nav-customization.js. |
.doxygen/DoxygenLayout.xml |
Custom layout ordering (Types before Topics) and tab visibility configuration. |
.doxygen/doxygen-awesome/doxygen-awesome.css |
Vendored Doxygen Awesome CSS theme. |
.doxygen/doxygen-awesome/doxygen-awesome-sidebar-only.css |
Vendored sidebar-only variant of the theme. |
.doxygen/Doxyfile |
Doxygen configuration (inputs, exclusions, HTML output, theme assets). |
.doxygen/custom-layout-fixes.css |
Additional layout fixes (sidebar width, offsets, search box, height issues). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
0f44f3f to
8c0d8ea
Compare
kirre-bylund
commented
Apr 8, 2026
- 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
- Split workflow into two jobs: generate-docs (contents: read) and attach-release (contents: write) to avoid giving write access on PR runs - Add apt-get update before doxygen install to avoid stale package index failures - Add --clobber to gh release upload to make re-runs idempotent - Fix duplicate visible attribute in DoxygenLayout.xml namespace and file sections - Fix CRLF line-ending handling in sync-nav.sh regex lookahead - Fix 'id' -> 'ID' in mainpage.md response conventions table - Remove duplicate scripts/Sync-DocsNavigation.ps1 (not referenced anywhere, duplicated .doxygen/sync-nav.sh)
- Only upload artifact on release and workflow_dispatch, not push to main
- Name artifact sdk-docs-{version} from package.json instead of sdk-docs-{sha}
- Pass version between jobs via job outputs
0a8ceb9 to
0c9268c
Compare
Contributor
|
@kirre-bylund
It is fully functional without these changes and we can alway iterate on it later. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
Screenshots
Landing page — branding, quick-start, feature navigation table
Topic page (Authentication) — feature-grouped methods with brief descriptions
Types (Class List) — full annotated class listing
What ships where
.doxygen/.gitattributesexport-ignoredocs/html/documentationUrlinpackage.jsonalready points tohttps://docs.lootlocker.com/— Unity Package Manager surfaces this as the Documentation button. The release workflow zipsdocs/html/asdocs-{version}.zipfor the offline use case.Changes
.doxygen/— all generation configDoxyfile—INPUT = Runtime/, excludesLibraries/,Editor/,LootLockerEndPoints.cs,LootLockerObfuscator.cs,LootLockerValidation.cs;EXTRACT_ALL=NO;HIDE_UNDOC_MEMBERS=YES;INTERNAL_DOCS=NO;JAVADOC_AUTOBRIEF=YES; output →docs/html/doxygen-awesome/—doxygen-awesome.css+doxygen-awesome-sidebar-only.cssfrom jothepro/doxygen-awesome-csscustom-layout-fixes.css— 500px sidebar, branding padding, sidebar background extension, hides the floating top-nav bar to remove the double-offset whitespacelootlocker-theme.css— LootLocker green colour overridesnav-customization.js— two-phase nav tree restructuring: enums moved into Types, Topics hoisted to root level,LootLocker.Requests.LootLockerSDKManager.namespace prefix stripped from sidebar method labels (preserved as tooltip)DoxygenLayout.xml— Types before Topics; pages/modules/namespaces hidden from navheader.html/footer.html— custom HTML wrapping with script injection for nav-customization.jssync-nav.sh— syncs themainpage.mdnavigation table fromgroups.doxin CI (run before doxygen).github/workflows/generate-docs.ymlmainordevmainsdk-docs-{sha}artifact (30-day retention)docs-{version}.zipto the GitHub releaseSource annotations
Runtime/Game/LootLockerSDKManager.cs—@ingrouptags on all public methodsRuntime/Game/Requests/FriendsRequest.cs— added XML<summary>to 8 undocumented classesRuntime/Client/LootLockerErrorData.cs,Runtime/Client/LootLockerRequestContext.cs— doc improvementsVerification