Merge branch 'idf' into idf-dmx

This commit is contained in:
Hendrik Rauh 2026-03-15 20:22:28 +01:00 committed by GitHub
commit 8a5ed13dd2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 85 additions and 0 deletions

3
.gitignore vendored
View file

@ -52,6 +52,9 @@ venv*/
*.tmp
*.bak
# Documentation
docs/doxygen/*
# Misc
*.local

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "docs/external/doxygen-awesome-css"]
path = docs/external/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css

61
Doxyfile Normal file
View file

@ -0,0 +1,61 @@
PROJECT_NAME = "DMX-Interface"
PROJECT_BRIEF = "ChaosDMX"
OUTPUT_DIRECTORY = docs/doxygen
# Input settings
INPUT = main \
components \
data \
README.md
FILE_PATTERNS = *.c *.h *.cpp *.hpp *.md *.py *.js *.css *.html
RECURSIVE = YES
EXCLUDE_PATTERNS = */build/* \
*/managed_components/*
USE_MDFILE_AS_MAINPAGE = README.md
# Documentation settings
GENERATE_LATEX = NO
GENERATE_HTML = YES
# doxygen-awesome-css settings
HTML_EXTRA_STYLESHEET = docs/external/doxygen-awesome-css/doxygen-awesome.css \
docs/external/doxygen-awesome-css/doxygen-awesome-sidebar-only.css
HTML_EXTRA_FILES = docs/external/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js \
docs/external/doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js \
docs/external/doxygen-awesome-css/doxygen-awesome-paragraph-link.js \
docs/external/doxygen-awesome-css/doxygen-awesome-interactive-toc.js \
docs/external/doxygen-awesome-css/doxygen-awesome-tabs.js
# Custom header for JS integration
# Better HTML output
HTML_COLORSTYLE = LIGHT
GENERATE_TREEVIEW = YES
DISABLE_INDEX = NO
FULL_SIDEBAR = NO
# Extraction settings
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
# Graphviz / Dot settings
HAVE_DOT = YES
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
# Graphs to generate
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES

1
docs/external/doxygen-awesome-css vendored Submodule

@ -0,0 +1 @@
Subproject commit 1f3620084ff75734ed192101acf40e9dff01d848

View file

@ -30,6 +30,8 @@
pkgs.prettier
pkgs.nixfmt
pkgs.doxygen
pkgs.graphviz
];
};
};

View file

@ -1,7 +1,9 @@
from invoke import task
import os
import shutil
import subprocess
import sys
import webbrowser
@task
@ -149,3 +151,16 @@ def format_check(c):
sys.exit(1)
print("\n✅ All files are correctly formatted!")
@task(help={"o": "Open documentation in the default browser after generation."})
def docs(c, o=False):
"""Generate Doxygen documentation."""
proc = subprocess.run("doxygen Doxyfile", shell=True)
if proc.returncode == 0:
path = "docs/doxygen/html/index.html"
print(f"\n✓ Documentation generated in {path}")
if o:
webbrowser.open(f"file://{os.path.abspath(path)}")
return
raise Exit(code=1)