docs: add Doxygen reference documentation infrastructure#128
Merged
Conversation
- Add @addtogroup section tags inside LootLockerServerForCpp.h so each documented method section maps to its feature group (Authentication, Leaderboard, etc.) - Remove LootLockerServerForCpp.h from Doxyfile EXCLUDE so its JSDoc method comments appear in the generated docs - Fix header.html: change 'Game API' link to 'Server API' pointing to https://ref.lootlocker.com/server - Narrow @addtogroup scope in all 23 ServerAPI handler headers: close the group before the UCLASS definition so undocumented handler classes no longer appear in the feature group pages
Handler files contained undocumented structs and delegate typedefs that cluttered the feature group pages with empty, undocumented entries. Remove the section-wide @addtogroup blocks from all 24 ServerAPI handler headers. Group pages now show only the documented methods from LootLockerServerForCpp.h. Types remain accessible via the class listing and are cross-referenced from method parameter types.
…nked With EXTRACT_ALL=NO, delegate typedefs expanded from DECLARE_DELEGATE_* and response structs had no generated pages (their /* */ C-style comments are not Doxygen doc comments), so they appeared as non-clickable plain text in method parameter lists. EXTRACT_ALL=YES generates pages for all types regardless of doc comments, making FLootLockerServer*Delegate and FLootLockerServer*Response types clickable cross-references in method signatures. Group pages are unaffected: no handler files are in any @addtogroup, so groups still show only the documented LootLockerServerForCpp.h methods.
Doxygen only recognizes /// (single-line) and /** */ (block) as documentation comments. Plain // and /* */ comments are ignored, causing all UPROPERTY field descriptions and struct summaries to appear as undocumented in the generated output. Converted 23 header files: - // field comment before UPROPERTY -> /// field comment - /* block comment */ before USTRUCT/UCLASS/UPROPERTY -> /** block comment */
Member
|
This is very cool. What would an actual review consist of though? |
There was a problem hiding this comment.
Pull request overview
Sets up a Doxygen-based reference documentation pipeline for the LootLocker Unreal Server SDK, including CI generation, a custom theme/layout, and feature-group (“Topics”) organization across the public API headers.
Changes:
- Added a
.doxygen/documentation system (Doxyfile, layout, theme, header/footer, groups, main page, nav customization, helper scripts). - Annotated public headers with Doxygen-friendly comments / group markers to drive feature-based Topics pages.
- Added a GitHub Actions workflow to generate HTML docs and attach them to releases (plus ignores generated
docs/output).
Reviewed changes
Copilot reviewed 45 out of 48 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerTriggerRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerStorageRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerProgressionGenericTypes.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerPlayerRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerPlayerProgressionRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerPlayerInventoryRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerPlayerFileRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerOAuthRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerNotificationsRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerMetadataRequest.h | Convert inline comments to Doxygen-style blocks (enums/structs/requests/responses). |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerLeaderboardRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerLeaderboardArchiveRequestHandler.h | Switch property comments to /// for Doxygen pickup and minor formatting. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerInstanceProgressionRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerHeroRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerGameProgressionRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerFriendsRequest.h | Minor formatting to support doc grouping. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerDropTableRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerCurrencyRequest.h | Minor formatting to support doc grouping. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerConnectedAccountsRequest.h | Minor formatting to support doc grouping. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerCharacterRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerCharacterProgressionRequest.h | Convert inline comments to Doxygen-style blocks. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerBalanceRequest.h | Minor formatting to support doc grouping. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAuthRequest.h | Convert inline comments to Doxygen-style blocks; minor formatting. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/ServerAPI/LootLockerServerAssetRequest.h | Convert inline comments to Doxygen-style blocks; switch some // to ///. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerResponse.h | Switch comments to Doxygen-friendly /** */ / /// for core response + pagination types. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerPersistedState.h | Convert inline comment to Doxygen-style block. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerForCpp.h | Add @addtogroup section wrappers so facade methods appear under Topics. |
| LootLockerServerSDK/Source/LootLockerServerSDK/Public/LootLockerServerConfig.h | Wrap config API in Init group and improve doc comment style. |
| .gitignore | Ignore generated docs/ output from Doxygen. |
| .github/workflows/generate-docs.yml | New CI workflow to generate docs, upload artifacts, and attach zip to releases. |
| .doxygen/Doxyfile | Doxygen configuration for inputs, macro expansion, and HTML output customization. |
| .doxygen/DoxygenLayout.xml | Custom layout: prioritize detailed descriptions and function docs for group pages; hide noisy tabs. |
| .doxygen/header.html | Custom HTML header with LootLocker top nav + theme toggle. |
| .doxygen/footer.html | Custom HTML footer + load nav customization script. |
| .doxygen/groups.dox | Defines feature groups powering “Topics” navigation. |
| .doxygen/mainpage.md | Main page content: quick start, navigation table, response conventions, links. |
| .doxygen/lootlocker-theme.css | LootLocker-branded doxygen-awesome theme overrides. |
| .doxygen/custom-layout-fixes.css | CSS overrides to correct layout/sidebar behavior. |
| .doxygen/nav-customization.js | JS to restructure/hide/rename nav items and hoist Topics for feature-first browsing. |
| .doxygen/sync-nav.sh | Script to sync the mainpage navigation table from groups.dox. |
| .doxygen/doxygen-awesome/doxygen-awesome-sidebar-only.css | Vendor CSS variant for sidebar-only layout. |
| .doxygen/scripts/Tag-ForCppSections.py | Helper to insert group tags into LootLockerServerForCpp.h sections. |
| .doxygen/scripts/Move-EnumDocComments.ps1 | Helper script for enum doc comment relocation (currently points at wrong SDK paths). |
| .doxygen/scripts/Add-TypeDocComments.ps1 | Helper script to add missing type doc comments (currently points at wrong SDK paths). |
| .doxygen/scripts/Add-EnumGroupTags.ps1 | Helper script to group-tag enums (currently points at wrong SDK paths). |
| .doxygen/scripts/Add-DelegateGroupTags.ps1 | Helper script to group-tag delegates (currently points at wrong SDK paths). |
| .doxygen/doxygen-awesome/doxygen-awesome-sidebar-only.css | Sidebar-only doxygen-awesome styling (supports the custom layout). |
Contributor
Author
You know what? I have no idea 😅. I was just going through the motions I think |
- mainpage.md: fix Response.success -> Response.Success, FLootLockerErrorData -> FLootLockerServerErrorData (3 occurrences) - custom-layout-fixes.css: fix comment Unity SDK -> Unreal Server SDK - Add-DelegateGroupTags.ps1: update \c:\Users\erik\Documents\projects\full-development\unreal-server-sdk\LootLockerServerSDK\Source\LootLockerServerSDK\Public and \ to ServerAPI paths and server SDK handler files - Add-EnumGroupTags.ps1: same fix - ServerAPI base and server SDK file/group mapping (5 UENUM-containing files) - Add-TypeDocComments.ps1: update \c:\Users\erik\Documents\projects\full-development\unreal-server-sdk\LootLockerServerSDK\Source\LootLockerServerSDK\Public and replace game SDK enum descriptions with server SDK enums - Move-EnumDocComments.ps1: update \c:\Users\erik\Documents\projects\full-development\unreal-server-sdk\LootLockerServerSDK\Source\LootLockerServerSDK\Public to ServerAPI path
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.
What
Sets up the complete Doxygen reference documentation infrastructure for the Unreal Server SDK, matching the quality and style of the existing Unreal SDK and Unity SDK doc setups.
Changes
.doxygen/— new directoryDoxyfileDoxygenLayout.xmlheader.htmlfooter.htmlgroups.doxmainpage.mdlootlocker-theme.csscustom-layout-fixes.cssnav-customization.jssync-nav.shdoxygen-awesome/images/lootlocker-logo.pngscripts/Source headers —
@addtogroupannotationsAdded
/// @addtogroup <Group>//// @{//// @}blocks to all 25 public API headers:LootLockerServerConfig.h→InitServerAPI/*.hfiles → their respective feature groupsWorkflow —
.github/workflows/generate-docs.ymlNew CI workflow that:
main, PRs targetingmain/dev, releases, andworkflow_dispatchsdk-docs-{version}on release or manual dispatchGroups defined
Init·Authentication·TokenExchange·Player·PlayerFiles·PlayerStorage·Friends·ConnectedAccounts·Hero·Characters·Currency·Balances·DropTables·Assets·AssetInstance·PlayerProgressions·CharacterProgressions·AssetInstanceProgressions·Progressions·Leaderboard·Triggers·Metadata·NotificationsTesting
Built locally with Doxygen — all 23 group pages generated, no new errors (only pre-existing undocumented compound warnings).