58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
|
|
#!/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."
|