From cae460dfc9b796f7068d6d195174d53c00c55d4d Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Fri, 19 Dec 2025 16:45:59 +0100 Subject: [PATCH] add index.html generator for slide overview --- Makefile | 1 + scripts/generate-index.sh | 93 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100755 scripts/generate-index.sh diff --git a/Makefile b/Makefile index 7aa6e69..5d0dd72 100644 --- a/Makefile +++ b/Makefile @@ -83,6 +83,7 @@ html: copy-assets echo " $$f.html"; \ npx @marp-team/marp-cli $(SLIDES_DIR)/$$f.md -o $(BUILD_DIR)/$$f.html; \ done + @./scripts/generate-index.sh $(BUILD_DIR) @echo "Done! HTML files in $(BUILD_DIR)/" # Clean generated files diff --git a/scripts/generate-index.sh b/scripts/generate-index.sh new file mode 100755 index 0000000..1f5b5b4 --- /dev/null +++ b/scripts/generate-index.sh @@ -0,0 +1,93 @@ +#!/usr/bin/env bash +# Generate index.html for slide overview + +BUILD_DIR="${1:-build}" + +cat > "$BUILD_DIR/index.html" << 'HEADER' + + + + + + 223015b - Dateiformate, Schnittstellen, Speichermedien + + + +

223015b

+

Dateiformate, Schnittstellen, Speichermedien & Distributionswege
+ HdM Stuttgart - WS 2025/26 - Michael Czechowski

+HEADER + +# Generate links for each termin (sorted) +for html in $(ls "$BUILD_DIR"/2*.html 2>/dev/null | sort); do + filename=$(basename "$html") + + # Extract components from filename + # Format: 2025-12-19-termin-1-grundlagen-text-audio.html + date=$(echo "$filename" | grep -oE '^[0-9]{4}-[0-9]{2}-[0-9]{2}') + termin_num=$(echo "$filename" | grep -oE 'termin-[0-9]+' | grep -oE '[0-9]+') + topic_raw=$(echo "$filename" | sed -E 's/^[0-9]{4}-[0-9]{2}-[0-9]{2}-termin-[0-9]+-//' | sed 's/\.html$//') + + # Format topic: replace - with space, capitalize + topic=$(echo "$topic_raw" | sed 's/-/ /g' | sed 's/.*/\u&/') + + # Format date + if [[ "$date" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then + formatted_date=$(date -d "$date" "+%d.%m.%Y" 2>/dev/null || echo "$date") + else + formatted_date="TBA" + fi + + # Handle termin number + if [[ "$termin_num" == "0" ]]; then + termin_label="Einfuhrung" + else + termin_label="Termin $termin_num" + fi + + cat >> "$BUILD_DIR/index.html" << LINK + +

$termin_label

+ $formatted_date + $topic +
+LINK +done + +cat >> "$BUILD_DIR/index.html" << 'FOOTER' + + + +FOOTER + +echo "Generated $BUILD_DIR/index.html"