Skip to content

Commit 99554b4

Browse files
committed
Update Doxyfile and GitHub Actions for documentation generation
- 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.
1 parent 3ff7894 commit 99554b4

File tree

2 files changed

+98
-49
lines changed

2 files changed

+98
-49
lines changed

.github/workflows/doxygen.yml

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,42 +7,46 @@ on:
77
- 'include/**'
88
- 'Doxyfile'
99
- '.github/workflows/doxygen.yml'
10-
workflow_dispatch:
11-
12-
# Required for GitHub Pages deployment
13-
permissions:
14-
contents: write
15-
pages: write
16-
id-token: write
10+
- 'README.md'
1711

1812
jobs:
19-
build-docs:
13+
# Build and deploy Doxygen to GitHub Pages
14+
deploy-docs:
15+
name: Build & Deploy Doxygen
2016
runs-on: ubuntu-latest
21-
name: 'Build Doxygen HTML'
17+
permissions:
18+
contents: read
19+
pages: write
20+
id-token: write
21+
concurrency:
22+
group: "pages"
23+
cancel-in-progress: false
2224
steps:
23-
- name: Checkout
24-
uses: actions/checkout@v3
25+
- name: Checkout code
26+
uses: actions/checkout@v4
2527

26-
- name: Install Doxygen + Graphviz
27-
run: |
28-
sudo apt-get update -qq
29-
sudo apt-get install -y doxygen graphviz
28+
- name: Install Doxygen 1.14.0
29+
run: |
30+
cd /tmp
31+
wget -q https://github.com/doxygen/doxygen/releases/download/Release_1_14_0/doxygen-1.14.0.linux.bin.tar.gz
32+
tar -xzf doxygen-1.14.0.linux.bin.tar.gz
33+
sudo cp doxygen-1.14.0/bin/doxygen /usr/local/bin/
34+
doxygen --version
35+
sudo apt-get update
36+
sudo apt-get install -y graphviz
3037
31-
- name: Generate documentation
32-
run: |
33-
doxygen -v
34-
doxygen Doxyfile
38+
- name: Generate documentation
39+
run: |
40+
doxygen Doxyfile
3541
36-
- name: Upload Pages artifact
37-
uses: actions/upload-pages-artifact@v3
38-
with:
39-
path: docs/html
42+
- name: Setup Pages
43+
uses: actions/configure-pages@v5
4044

41-
deploy:
42-
needs: build-docs
43-
runs-on: ubuntu-latest
44-
name: 'Deploy to GitHub Pages'
45-
steps:
46-
- name: Deploy
47-
id: deployment
48-
uses: actions/deploy-pages@v4
45+
- name: Upload artifact
46+
uses: actions/upload-pages-artifact@v3
47+
with:
48+
path: docs/html
49+
50+
- name: Deploy to GitHub Pages
51+
id: deployment
52+
uses: actions/deploy-pages@v4

Doxyfile

Lines changed: 63 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,87 @@
44

55
# Project related --------------------------------------------------------
66
PROJECT_NAME = "cpp-core"
7-
PROJECT_BRIEF = "Header-only C++ helper library"
87
PROJECT_NUMBER = "1.0"
8+
PROJECT_BRIEF = "Header-only C++ helper library"
99
OUTPUT_DIRECTORY = docs/html
1010
CREATE_SUBDIRS = NO
11+
ALLOW_UNICODE_NAMES = YES
12+
OPTIMIZE_OUTPUT_FOR_C = NO
13+
OPTIMIZE_OUTPUT_JAVA = NO
14+
OPTIMIZE_FOR_FORTRAN = NO
15+
OPTIMIZE_OUTPUT_VHDL = NO
16+
OPTIMIZE_OUTPUT_SLICE = NO
17+
MARKDOWN_SUPPORT = YES
18+
AUTOLINK_SUPPORT = YES
19+
USE_MDFILE_AS_MAINPAGE = README.md
20+
21+
FULL_PATH_NAMES = NO
22+
STRIP_FROM_PATH = include
23+
24+
# Source files -----------------------------------------------------------
25+
INPUT = README.md include LICENSE
26+
FILE_PATTERNS = *.h *.hpp *.md
27+
RECURSIVE = YES
28+
EXCLUDE_PATTERNS = */build/* */.git/* */install/*
1129

1230
# Build options ----------------------------------------------------------
1331
EXTRACT_ALL = YES
1432
EXTRACT_PRIVATE = YES
1533
EXTRACT_STATIC = YES
34+
EXTRACT_LOCAL_CLASSES = YES
1635
EXTRACT_ANON_NSPACES = YES
1736

18-
# Source files -----------------------------------------------------------
19-
INPUT = include README.md LICENSE
20-
FILE_PATTERNS = *.h *.hpp *.md
21-
RECURSIVE = YES
37+
QUIET = YES
38+
WARN_IF_UNDOCUMENTED = NO
39+
WARN_AS_ERROR = NO
2240

2341
# HTML output ------------------------------------------------------------
2442
GENERATE_HTML = YES
2543
HTML_OUTPUT = .
26-
HTML_COLORSTYLE_HUE = 220
27-
HTML_COLORSTYLE_SAT = 100
28-
HTML_COLORSTYLE_GAMMA = 80
29-
30-
# Disable unwanted output -----------------------------------------------
3144
GENERATE_LATEX = NO
32-
GENERATE_MAN = NO
33-
GENERATE_RTF = NO
3445
GENERATE_XML = NO
3546

47+
HTML_COLORSTYLE = LIGHT
48+
HTML_COPY_CLIPBOARD = NO
49+
PAGE_OUTLINE_PANEL = NO
50+
FULL_SIDEBAR = NO
51+
GENERATE_TREEVIEW = YES
52+
DISABLE_INDEX = NO
53+
ALPHABETICAL_INDEX = YES
54+
GENERATE_DEPRECATEDLIST= YES
55+
56+
# Source browsing
57+
SOURCE_BROWSER = YES
58+
INLINE_SOURCES = NO
59+
STRIP_CODE_COMMENTS = YES
60+
REFERENCED_BY_RELATION = YES
61+
REFERENCES_RELATION = YES
62+
VERBATIM_HEADERS = YES
63+
SHOW_INCLUDE_FILES = YES
64+
SHOW_GROUPED_MEMB_INC = NO
65+
3666
# Diagrams --------------------------------------------------------------
3767
HAVE_DOT = YES
38-
DOT_IMAGE_FORMAT = svg
68+
DOT_NUM_THREADS = 0
69+
CLASS_GRAPH = YES
70+
COLLABORATION_GRAPH = YES
71+
GROUP_GRAPHS = YES
72+
UML_LOOK = NO
73+
UML_LIMIT_NUM_FIELDS = 10
74+
DOT_UML_DETAILS = NO
75+
DOT_WRAP_THRESHOLD = 17
76+
TEMPLATE_RELATIONS = YES
77+
INCLUDE_GRAPH = YES
78+
INCLUDED_BY_GRAPH = YES
3979
CALL_GRAPH = YES
4080
CALLER_GRAPH = YES
41-
42-
# Misc ------------------------------------------------------------------
43-
FULL_PATH_NAMES = NO
44-
STRIP_FROM_PATH = include
45-
GENERATE_TREEVIEW = YES
81+
GRAPHICAL_HIERARCHY = YES
82+
DIRECTORY_GRAPH = YES
83+
DIR_GRAPH_MAX_DEPTH = 1
84+
DOT_IMAGE_FORMAT = svg
85+
INTERACTIVE_SVG = YES
86+
DOT_GRAPH_MAX_NODES = 50
87+
MAX_DOT_GRAPH_DEPTH = 0
88+
DOT_MULTI_TARGETS = YES
89+
GENERATE_LEGEND = YES
90+
DOT_CLEANUP = YES

0 commit comments

Comments
 (0)