# MkDocs to PDF Workflow mit Pandoc & Docker

Dieses Projekt enthält ein Bash-Skript und eine Umgebung zum automatischen Konvertieren von MkDocs-Markdown-Dateien in PDF-Dateien mit individuellen Templates.

## Features

- Automatische Erstellung von PDFs aus Markdown-Dateien im `mkdocs/docs` Verzeichnis
- Nutzung von `pandoc` in einem Docker-Container für Konsistenz und Portabilität
- Unterstützung von LaTeX-Vorlage `eisvogel.latex` für ansprechendes PDF-Layout
- Automatisches Ergänzen von Download-Links (`[PDF herunterladen]`) in Markdown-Dateien
- Vermeidung von doppelten Links durch Prüfung vor dem Anhängen
- Richtige Einbindung lokaler Bilder mit relativen Pfaden
- Neu bauen und Neustarten von MkDocs via Docker Compose
- Optionales Konvertieren einzelner oder mehrerer ausgewählter Markdown-Dateien

## Nutzung
````bash
Alle Markdown-Dateien in mkdocs/docs pdfen:
./mkdocs-to-pdf.sh

Einzelne Datei konvertieren:
./mkdocs-to-pdf.sh Linux_Unternehmen/nextcloud-ldap.md

Mehrere Dateien gleichzeitig
./mkdocs-to-pdf.sh basics/Einstieg_in_Linux-Desktop.md Linux_Unternehmen/linux-als-ad-client.md
````

## Voraussetzungen

- Docker mit Zugriff auf lokale Dateien
- Docker Compose (für MkDocs Build & Restart)
- Bash als Shell Umgebung
- `pandoc/extra` Docker Image
- LaTeX Template Datei `eisvogel.latex` im Projektverzeichnis

## Verzeichnisstruktur

mkdocs/
├── docs/ <- Markdown Quelldateien und Medien
│ ├── Linux_Unternehmen/
│ │ ├── nextcloud-ldap.md
│ │ └── nextcloud-ldap-media/ <- Bilder für Markdown
│ └── basics/
├── mkdocs.yml <- MkDocs Konfigurationsdatei
└── site/ <- Ergebnis von MkDocs Build (HTML, PDF)

mkdocs-to-pdf.sh <- Bash Skript zur automatischen PDF-Erstellung
eisvogel.latex <- LaTeX Vorlage für Pandoc PDF Export
docker-compose.yml <- Containerdefintionen für MkDocs Umgebung

text

## Hinweise

- Bildpfade in Markdown müssen relativ zum Markdown-Dokument korrekt sein (z.B. `./nextcloud-ldap-media/image1.png`)
- Änderungen an Markdown führen bei Ausführung des Skripts zur Neugenerierung der PDFs
- Vor dem Commit werden automatisch PDF-Download-Links hinzugefügt, wenn noch nicht vorhanden

---

Bei Fragen oder Problemen gerne Issues öffnen oder direkt kontaktieren.
Diese README.md beschreibt übersichtlich Zweck, Nutzung, Voraussetzungen, Verzeichnisstruktur und wichtige Hinweise zum Projekt. Gerne kann sie noch projektspezifisch erweitert werden.