diff --git a/CLAUDE.md b/CLAUDE.md index c28122b..1044ec7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -35,8 +35,9 @@ build/ # Generated output (gitignored) ## Build Commands ```bash -make dev-b # Dev server 223015b (port 1311) -make dev-c # Dev server 223015c (port 1312) +make dev # Marp live server all courses (port 1312, HMR) +make dev-b # Marp live server 223015b (port 1313, HMR) +make dev-c # Marp live server 223015c (port 1314, HMR) make build # Build all courses make build-b # Build 223015b only make build-c # Build 223015c only diff --git a/Makefile b/Makefile index 60d313f..596f4f7 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,9 @@ help: @echo " 223015c - Internettechnologien" @echo "" @echo "Development:" - @echo " make dev - Start development server (port 3000)" + @echo " make dev - Marp live server all courses (port 1312, HMR)" + @echo " make dev-b - Marp live server 223015b (port 1313, HMR)" + @echo " make dev-c - Marp live server 223015c (port 1314, HMR)" @echo "" @echo "Build:" @echo " make build - Build all courses" @@ -55,13 +57,20 @@ build/.exists: @mkdir -p build/223015b build/223015c @touch $@ -# Development server +# Development server (Marp live server with HMR) dev: @./scripts/dev-server.sh +dev-b: + @./scripts/dev-server.sh 223015b 1313 + +dev-c: + @./scripts/dev-server.sh 223015c 1314 + dev-kill: - @-pkill -f "marp-cli.*--server" 2>/dev/null || true - @sleep 0.5 + @-fuser -k 1312/tcp 2>/dev/null || true + @-fuser -k 1313/tcp 2>/dev/null || true + @-fuser -k 1314/tcp 2>/dev/null || true # Build functions define build_course diff --git a/scripts/dev-server.sh b/scripts/dev-server.sh index 8e27e0c..15dd90b 100755 --- a/scripts/dev-server.sh +++ b/scripts/dev-server.sh @@ -1,12 +1,16 @@ #!/usr/bin/env bash -# Simplified development server for HdM slides -# Starts single Marp server for all courses +# Development server for HdM slides +# Usage: +# ./dev-server.sh - Marp live server for all courses (port 1312) +# ./dev-server.sh 223015b 1313 - Marp live server for single course +# ./dev-server.sh 223015c 1314 - Marp live server for single course set -e # Configuration SLIDES_DIR="slides" -DEV_PORT=3000 +COURSE="${1:-}" +DEV_PORT="${2:-1312}" # Colors GREEN='\033[0;32m' @@ -14,40 +18,27 @@ BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' # No Color -# Cleanup function -cleanup() { - echo -e "\n${RED}Shutting down dev server...${NC}" - pkill -f "marp-cli.*--server" 2>/dev/null || true - exit 0 -} - -# Kill existing processes on our port -kill_existing() { - echo -e "${BLUE}Cleaning up existing processes...${NC}" - pkill -9 -f "marp-cli" 2>/dev/null || true - fuser -k $DEV_PORT/tcp 2>/dev/null || true - sleep 1 +# Kill existing process on our port only +kill_port() { + fuser -k "$DEV_PORT/tcp" 2>/dev/null || true + sleep 0.5 } # Main -trap cleanup SIGINT SIGTERM +trap 'echo -e "\n${RED}Shutting down...${NC}"; kill 0; exit 0' SIGINT SIGTERM -kill_existing +kill_port -echo -e "${GREEN}Starting development server...${NC}" -echo "" -echo -e " Server: ${BLUE}http://localhost:$DEV_PORT${NC}" -echo -e " Slides: ${BLUE}$SLIDES_DIR/${NC}" -echo "" -echo -e "Available courses:" -echo -e " 223015b: ${BLUE}http://localhost:$DEV_PORT/223015b/${NC}" -echo -e " 223015c: ${BLUE}http://localhost:$DEV_PORT/223015c/${NC}" -echo "" -echo -e "Press ${RED}Ctrl+C${NC} to stop the server" +if [ -n "$COURSE" ]; then + SERVE_DIR="$SLIDES_DIR/$COURSE" + echo -e "${GREEN}Marp dev server${NC} · ${BLUE}$COURSE${NC}" +else + SERVE_DIR="$SLIDES_DIR" + echo -e "${GREEN}Marp dev server${NC} · ${BLUE}all courses${NC}" +fi + +echo -e " ${BLUE}http://localhost:$DEV_PORT${NC}" +echo -e " ${BLUE}$SERVE_DIR/${NC}" echo "" -# Start single Marp server for all slides -PORT=$DEV_PORT npx @marp-team/marp-cli --server "$SLIDES_DIR/" - -# Wait for process to exit -wait \ No newline at end of file +PORT=$DEV_PORT exec npx @marp-team/marp-cli --server "$SERVE_DIR/" diff --git a/scripts/generate-root-index.sh b/scripts/generate-root-index.sh new file mode 100755 index 0000000..95dc977 --- /dev/null +++ b/scripts/generate-root-index.sh @@ -0,0 +1,158 @@ +#!/usr/bin/env bash +# Generate root index.html for HdM slides overview +# Usage: ./generate-root-index.sh + +BUILD_DIR="${1:-build}" + +cat > "$BUILD_DIR/index.html" << 'HEADER' + + + + + + HdM Vorlesungen + + + +

HdM Vorlesungen

+

Sommersemester 2026 · Michael Czechowski

+
+
+ + 223015b +
Dateiformate, Schnittstellen, Speichermedien & Distributionswege
+ 6 Kapitel · Modul "Technik 1" +
+
+
+ + 223015c +
Grundlagen IT- und Internettechnik
+ 3 Kapitel · Modul "Technik 1" +
+
+
+

Referenzen

+
+
+ + Plattform +
Code Crispies
+ Selbstlernplattform +
+
+
+
+ QR Code +

https://librete.ch/hdm/

+
+ + + +HEADER + +echo "Generated $BUILD_DIR/index.html"