Files
mkdocs-etz/mkdoks-complete.sh

58 lines
1.5 KiB
Bash
Raw Normal View History

2025-12-07 13:56:14 +01:00
#!/bin/bash
MKDOCS_DIR="mkdocs/docs"
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
echo "Verarbeite: $md_file"
base_name=$(basename "$md_file" .md | tr ' ' '_')
dir_name=$(dirname "$md_file")
pdf_path="${dir_name}/${base_name}.pdf"
pdf_link="\n\n[PDF herunterladen](${base_name}.pdf){ .md-button }"
# PDF immer neu erzeugen
rm -f "$pdf_path"
# Temp MD nur für MkDocs-Syntax bereinigen
temp_md="${dir_name}/temp_${base_name}.md"
sed 's/{[^}]*}//g; s/^[ \t]*{[^}]*}$//gm' "$md_file" > "$temp_md"
# **Working directory = Markdown-Verzeichnis** für korrekte Bildpfade!
md_dir=$(dirname "$md_file")
docker run --rm \
--volume "$(pwd)":/data \
--user $(id -u):$(id -g) \
--workdir "/data/$md_dir" \
pandoc/extra \
"./$(basename "$md_file")" \
-o "./${base_name}.pdf" \
--template /data/eisvogel.latex \
--syntax-highlighting=idiomatic
# Temp Dateien löschen
rm -f "$temp_md"
echo " → PDF erstellt: $pdf_path"
# PDF-Link nur einmal hinzufügen
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
done
# MkDocs neu bauen
docker compose -f ./docker-compose.yml run --rm mkdocs build
docker compose -f ./docker-compose.yml restart mkdocs
echo "Fertig: mkdocs neu gebaut."