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/docsVerzeichnis - Nutzung von
pandocin einem Docker-Container für Konsistenz und Portabilität - Unterstützung von LaTeX-Vorlage
eisvogel.latexfü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
Alle Markdown-Dateien in mkdocs/docs pdfen:
./mkdocs-complete.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/extraDocker Image- LaTeX Template Datei
eisvogel.latexim 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.
Für mkdocs highlighiting und so: https://github.com/domWalters/mkdocs-to-pdf/tree/develop/docs/examples
Description
Alle meine Dokumenter für den Linux-Kurs als Markdown und PDF fürs hosting im Kurs
Languages
Shell
90%
Dockerfile
10%