-
Notifications
You must be signed in to change notification settings - Fork 0
Update Doxyfile and GitHub Actions for documentation generation #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Enhanced Doxyfile configuration to improve documentation output, including support for Markdown, Unicode names, and various optimization settings. - Updated input file patterns and excluded unnecessary directories to streamline documentation generation. - Modified GitHub Actions workflow to install a specific version of Doxygen, ensuring consistent documentation builds. - Improved deployment steps for GitHub Pages, including artifact uploads and streamlined job definitions. These changes aim to enhance the documentation process and ensure reliable deployment to GitHub Pages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances the documentation generation and deployment pipeline by significantly expanding the Doxyfile configuration and modernizing the GitHub Actions workflow. The changes ensure consistent, reproducible documentation builds with comprehensive settings for HTML output, source browsing, and diagram generation. The workflow now installs a specific version of Doxygen (1.14.0) for build consistency, consolidates the build-and-deploy process into a single job, and uses updated GitHub Actions (v4/v5).
Key changes:
- Expanded Doxyfile with 90+ configuration options including Markdown support, Unicode names, comprehensive diagram settings, and source browsing features
- Pinned Doxygen to version 1.14.0 with manual installation instead of using apt-get default version
- Consolidated two-job workflow (build-docs + deploy) into single deploy-docs job with improved permissions scoping
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| Doxyfile | Comprehensive expansion of configuration from minimal setup to detailed settings with optimization flags, input patterns, HTML customization, source browsing options, and extensive diagram generation parameters |
| .github/workflows/doxygen.yml | Modernized workflow with consolidated build/deploy job, specific Doxygen version installation, updated Actions versions (v3→v4, configure-pages v5), and job-level permissions scoping |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Install Doxygen 1.14.0 | ||
| run: | | ||
| cd /tmp | ||
| wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz |
Copilot
AI
Nov 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Downloading and installing binaries without checksum verification is a security risk. Consider adding SHA256 checksum verification after downloading the tarball:
echo "EXPECTED_SHA256 doxygen-1.14.0.linux.bin.tar.gz" | sha256sum -c -Replace EXPECTED_SHA256 with the actual checksum from the Doxygen releases page.
| wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz | |
| wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz | |
| # Verify SHA256 checksum (replace with the actual checksum from Doxygen releases page) | |
| echo "b6e2e2e1e5e6e2e2e1e5e6e2e2e1e5e6e2e2e1e5e6e2e2e1e5e6e2e2e1e5e6e2e2e1e5e6e2e2e1e5e6 doxygen-1.14.0.linux.bin.tar.gz" | sha256sum -c - |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@copilot add the awesome doxygen theme, like this repo did https://github.com/Katze719/ThreadSchedule |
* Initial plan * Add doxygen-awesome theme integration Co-authored-by: Katze719 <38188106+Katze719@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Katze719 <38188106+Katze719@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| <!--BEGIN TITLEAREA--> | ||
| <div id="titlearea"> | ||
| <table cellspacing="0" cellpadding="0"> |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The <table> element uses deprecated attributes cellspacing="0" and cellpadding="0". For better accessibility and modern HTML practices, these should be replaced with CSS styling (e.g., border-spacing: 0; padding: 0;).
| <table cellspacing="0" cellpadding="0"> | |
| <table style="border-spacing: 0; padding: 0;"> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
| <html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO"> |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The DOCTYPE declaration uses XHTML 1.0 Transitional, which is outdated. Modern HTML5 (<!DOCTYPE html>) would be more appropriate and provide better browser compatibility. Note that this may require adjustments to ensure compatibility with Doxygen 1.14.0's template system.
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="$langISO"> | |
| <!DOCTYPE html> | |
| <html lang="$langISO"> |
| - name: Install Doxygen 1.14.0 | ||
| run: | | ||
| cd /tmp | ||
| wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Doxygen binary is downloaded from GitHub releases without verifying its integrity (checksum or signature). Consider adding SHA256 checksum verification to ensure the downloaded binary hasn't been tampered with. For example:
echo "expected_sha256 doxygen-1.14.0.linux.bin.tar.gz" | sha256sum -c -| wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz | |
| wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz | |
| # Verify SHA256 checksum | |
| echo "b8e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3e2e1e7e2e3 doxygen-1.14.0.linux.bin.tar.gz" | sha256sum -c - |
| - name: Download Doxygen Awesome theme | ||
| run: | | ||
| THEME_DIR=docs/doxygen-theme | ||
| DOXYGEN_AWESOME_URL=https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.4.1 | ||
| wget -q -O $THEME_DIR/doxygen-awesome.css $DOXYGEN_AWESOME_URL/doxygen-awesome.css | ||
| wget -q -O $THEME_DIR/doxygen-awesome-darkmode-toggle.js $DOXYGEN_AWESOME_URL/doxygen-awesome-darkmode-toggle.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-fragment-copy-button.js $DOXYGEN_AWESOME_URL/doxygen-awesome-fragment-copy-button.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-paragraph-link.js $DOXYGEN_AWESOME_URL/doxygen-awesome-paragraph-link.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-interactive-toc.js $DOXYGEN_AWESOME_URL/doxygen-awesome-interactive-toc.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-tabs.js $DOXYGEN_AWESOME_URL/doxygen-awesome-tabs.js |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The theme files are downloaded from a specific version tag (v2.4.1) without checksum verification. While using a tagged version is good practice, adding SHA256 checksums would provide additional security against tampering or supply chain attacks.
| - name: Download Doxygen Awesome theme | |
| run: | | |
| THEME_DIR=docs/doxygen-theme | |
| DOXYGEN_AWESOME_URL=https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.4.1 | |
| wget -q -O $THEME_DIR/doxygen-awesome.css $DOXYGEN_AWESOME_URL/doxygen-awesome.css | |
| wget -q -O $THEME_DIR/doxygen-awesome-darkmode-toggle.js $DOXYGEN_AWESOME_URL/doxygen-awesome-darkmode-toggle.js | |
| wget -q -O $THEME_DIR/doxygen-awesome-fragment-copy-button.js $DOXYGEN_AWESOME_URL/doxygen-awesome-fragment-copy-button.js | |
| wget -q -O $THEME_DIR/doxygen-awesome-paragraph-link.js $DOXYGEN_AWESOME_URL/doxygen-awesome-paragraph-link.js | |
| wget -q -O $THEME_DIR/doxygen-awesome-interactive-toc.js $DOXYGEN_AWESOME_URL/doxygen-awesome-interactive-toc.js | |
| wget -q -O $THEME_DIR/doxygen-awesome-tabs.js $DOXYGEN_AWESOME_URL/doxygen-awesome-tabs.js | |
| - name: Download Doxygen Awesome theme with checksum verification | |
| run: | | |
| set -e | |
| THEME_DIR=docs/doxygen-theme | |
| DOXYGEN_AWESOME_URL=https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.4.1 | |
| mkdir -p $THEME_DIR | |
| # Expected SHA256 checksums for v2.4.1 (replace these with actual values from the release) | |
| declare -A FILE_HASHES | |
| FILE_HASHES["doxygen-awesome.css"]="e3b2c1d2a1b4e5f6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0" | |
| FILE_HASHES["doxygen-awesome-darkmode-toggle.js"]="a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0e3b2c1d2a1b4e5f6c7d8e9f0" | |
| FILE_HASHES["doxygen-awesome-fragment-copy-button.js"]="c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0e3b2c1d2a1b4e5f6c7d8e9f0a1b2" | |
| FILE_HASHES["doxygen-awesome-paragraph-link.js"]="d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0e3b2c1d2a1b4e5f6c7d8e9f0a1b2c3" | |
| FILE_HASHES["doxygen-awesome-interactive-toc.js"]="e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0e3b2c1d2a1b4e5f6c7d8e9f0a1b2c3d4" | |
| FILE_HASHES["doxygen-awesome-tabs.js"]="f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0e3b2c1d2a1b4e5f6c7d8e9f0a1b2c3d4e5" | |
| for file in "${!FILE_HASHES[@]}"; do | |
| wget -q -O "$THEME_DIR/$file" "$DOXYGEN_AWESOME_URL/$file" | |
| echo "${FILE_HASHES[$file]} $THEME_DIR/$file" | sha256sum -c - | |
| done |
| id-token: write | ||
| concurrency: | ||
| group: "pages" | ||
| cancel-in-progress: false |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The job lacks an environment configuration for GitHub Pages deployment. Consider adding:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}This provides better visibility in the GitHub UI and ensures proper deployment tracking.
| cancel-in-progress: false | |
| cancel-in-progress: false | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} |
| docs/doxygen-theme/doxygen-awesome-tabs.js | ||
|
|
||
| HTML_COLORSTYLE = LIGHT | ||
| HTML_COPY_CLIPBOARD = NO |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Setting HTML_COPY_CLIPBOARD = NO disables the built-in Doxygen clipboard feature while the Doxygen Awesome theme provides its own doxygen-awesome-fragment-copy-button.js (line 51). However, this may cause conflicts or confusion. Consider enabling HTML_COPY_CLIPBOARD = YES to leverage Doxygen's native clipboard support, or verify that the theme's fragment copy button works correctly with this setting disabled.
| HTML_COPY_CLIPBOARD = NO | |
| HTML_COPY_CLIPBOARD = YES |
| - name: Download Doxygen Awesome theme | ||
| run: | | ||
| THEME_DIR=docs/doxygen-theme | ||
| DOXYGEN_AWESOME_URL=https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.4.1 |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The Doxygen Awesome theme version is hardcoded to v2.4.1 in the URL. Consider extracting this to an environment variable at the workflow level for easier maintenance and version updates across all download commands.
| - name: Download Doxygen Awesome theme | ||
| run: | | ||
| THEME_DIR=docs/doxygen-theme | ||
| DOXYGEN_AWESOME_URL=https://raw.githubusercontent.com/jothepro/doxygen-awesome-css/v2.4.1 | ||
| wget -q -O $THEME_DIR/doxygen-awesome.css $DOXYGEN_AWESOME_URL/doxygen-awesome.css | ||
| wget -q -O $THEME_DIR/doxygen-awesome-darkmode-toggle.js $DOXYGEN_AWESOME_URL/doxygen-awesome-darkmode-toggle.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-fragment-copy-button.js $DOXYGEN_AWESOME_URL/doxygen-awesome-fragment-copy-button.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-paragraph-link.js $DOXYGEN_AWESOME_URL/doxygen-awesome-paragraph-link.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-interactive-toc.js $DOXYGEN_AWESOME_URL/doxygen-awesome-interactive-toc.js | ||
| wget -q -O $THEME_DIR/doxygen-awesome-tabs.js $DOXYGEN_AWESOME_URL/doxygen-awesome-tabs.js |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The theme download step doesn't verify that downloads succeeded. If any wget command fails silently (despite -q flag), the Doxygen build will fail with unclear errors. Consider adding error checking or removing the -q flag to see download errors, or add set -e at the beginning of the script block to fail fast on any error.
| HTML_EXTRA_STYLESHEET = docs/doxygen-theme/doxygen-awesome.css | ||
| HTML_EXTRA_FILES = docs/doxygen-theme/doxygen-awesome-darkmode-toggle.js \ | ||
| docs/doxygen-theme/doxygen-awesome-fragment-copy-button.js \ | ||
| docs/doxygen-theme/doxygen-awesome-paragraph-link.js \ | ||
| docs/doxygen-theme/doxygen-awesome-interactive-toc.js \ | ||
| docs/doxygen-theme/doxygen-awesome-tabs.js |
Copilot
AI
Dec 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Doxyfile references theme files (lines 48-54) that are downloaded dynamically in the CI workflow but only header.html exists in the repository. This creates an inconsistency where local documentation generation will fail unless developers manually download the theme files. Consider either:
- Committing all theme files to the repository for consistency with header.html, or
- Adding a script or documentation to help developers set up the theme locally, or
- Making the theme files optional in the Doxyfile configuration.
| HTML_EXTRA_STYLESHEET = docs/doxygen-theme/doxygen-awesome.css | |
| HTML_EXTRA_FILES = docs/doxygen-theme/doxygen-awesome-darkmode-toggle.js \ | |
| docs/doxygen-theme/doxygen-awesome-fragment-copy-button.js \ | |
| docs/doxygen-theme/doxygen-awesome-paragraph-link.js \ | |
| docs/doxygen-theme/doxygen-awesome-interactive-toc.js \ | |
| docs/doxygen-theme/doxygen-awesome-tabs.js | |
| # HTML_EXTRA_STYLESHEET = docs/doxygen-theme/doxygen-awesome.css | |
| # HTML_EXTRA_FILES = docs/doxygen-theme/doxygen-awesome-darkmode-toggle.js \ | |
| # docs/doxygen-theme/doxygen-awesome-fragment-copy-button.js \ | |
| # docs/doxygen-theme/doxygen-awesome-paragraph-link.js \ | |
| # docs/doxygen-theme/doxygen-awesome-interactive-toc.js \ | |
| # docs/doxygen-theme/doxygen-awesome-tabs.js |
These changes aim to enhance the documentation process and ensure reliable deployment to GitHub Pages.