Nauauflage mit Zielgruppe Ahnungsloser
This commit is contained in:
76
rebuild-all.sh
Normal file
76
rebuild-all.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
|
||||
MKDOCS_DIR="mkdocs/docs"
|
||||
|
||||
# Funktion für die Verarbeitung (DRY-Prinzip)
|
||||
process_file() {
|
||||
local md_file="$1"
|
||||
echo "Verarbeite: $md_file"
|
||||
|
||||
local base_name=$(basename "$md_file" .md | tr ' ' '_')
|
||||
local dir_name=$(dirname "$md_file")
|
||||
local pdf_path="${dir_name}/${base_name}.pdf"
|
||||
local pdf_link="\n\n[PDF herunterladen](${base_name}.pdf){ .md-button }"
|
||||
|
||||
# PDF neu erzeugen
|
||||
rm -f "$pdf_path"
|
||||
|
||||
# Temp MD nur für MkDocs-Syntax bereinigen (LaTeX behalten)
|
||||
local temp_md="${dir_name}/temp_${base_name}.md"
|
||||
sed 's/{[^}]*}//g; s/^[ \t]*{[^}]*}$//gm' "$md_file" > "$temp_md"
|
||||
|
||||
local md_dir=$(dirname "$md_file")
|
||||
|
||||
docker run --rm \
|
||||
--volume "$(pwd)":/data \
|
||||
--user $(id -u):$(id -g) \
|
||||
--workdir "/data/$md_dir" \
|
||||
pandoc/extra \
|
||||
"./temp_${base_name}.md" \
|
||||
-o "./${base_name}.pdf" \
|
||||
--template /data/eisvogel.latex \
|
||||
--syntax-highlighting=idiomatic
|
||||
|
||||
# Temp Datei löschen
|
||||
rm -f "$temp_md"
|
||||
|
||||
echo " → PDF erstellt: $pdf_path"
|
||||
|
||||
# PDF-Link nur einmal hinzufügen (ändert Markdown!)
|
||||
if ! tail -n 10 "$md_file" | grep -q "PDF herunterladen"; then
|
||||
echo -e "$pdf_link" >> "$md_file"
|
||||
echo " → PDF-Link hinzugefügt"
|
||||
else
|
||||
echo " → PDF-Link bereits vorhanden"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Wenn keine Parameter → alle Dateien verarbeiten
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Keine Dateien angegeben → Verarbeite ALLE Markdown-Dateien"
|
||||
find "$MKDOCS_DIR" -name "*.md" | while read -r md_file; do
|
||||
# Überspringe index.md
|
||||
if [[ "$(basename "$md_file")" == "index.md" ]]; then
|
||||
echo "Überspringe: $md_file"
|
||||
continue
|
||||
fi
|
||||
process_file "$md_file"
|
||||
done
|
||||
else
|
||||
# Einzelne Dateien verarbeiten
|
||||
for param in "$@"; do
|
||||
md_file="$MKDOCS_DIR/$param"
|
||||
if [[ ! -f "$md_file" ]]; then
|
||||
echo "Fehler: $md_file nicht gefunden!"
|
||||
continue
|
||||
fi
|
||||
process_file "$md_file"
|
||||
done
|
||||
fi
|
||||
|
||||
# **IMMER MkDocs neu bauen** (Markdown + PDF-Links ändern sich)
|
||||
echo "MkDocs wird neu gebaut (wegen Markdown-Änderungen)..."
|
||||
docker compose -f ./docker-compose.yml run --rm mkdocs build
|
||||
docker compose -f ./docker-compose.yml restart mkdocs
|
||||
echo "Fertig: mkdocs neu gebaut."
|
||||
Reference in New Issue
Block a user