# Makefile für Markdown-eBook-Projekt mit Pandoc # === Allgemeine Konfiguration === TITLE := dateiname_aus_makefile MANUSCRIPT := manuscript OUTPUT := build METADATA := metadata/ebook.yaml CSS := styles/ebook.css TEX_EBOOK := styles/ebook-template.tex TEX_PRINT := styles/print-template.tex LOGO := media/logo/logo_256x256.png # === Nur wsl oder Linux === # ifeq ($(OS),Windows_NT) set_codepage: @if [ "$(OS)" = "Windows_NT" ]; then chcp 65001 >nul; fi $(error [⚠] Windows wird nicht unterstützt. Bitte WSL oder Linux verwenden.) endif # === Quelldateien (geordnet nach Nummerierung) === MD_FILES := $(wildcard $(MANUSCRIPT)/*.md) MD_SORTED := $(sort $(MD_FILES)) # === Standardziel: Alles bauen === all: epub pdf html docx # === EPUB-Ausgabe === epub: $(OUTPUT) pandoc $(MD_SORTED) \ --metadata-file=$(METADATA) \ --resource-path=media \ --toc --toc-depth=2 \ --css=$(CSS) \ --epub-chapter-level=1 \ --epub-cover-image=$(LOGO) \ -o $(OUTPUT)/$(TITLE).epub # === PDF über LaTeX (Print-Version) === # --highlight-style= #| Stilname | Beschreibung / Anmutung | #| ------------ | --------------------------------------------- | #| `pygments` | Klassischer Stil, angelehnt an Pygments | #| `tango` | Kontrastreich, an das Tango-Theme angelehnt | #| `kate` | Stil des Kate-Editors (KDE) | #| `monochrome` | Schwarzweiß, ohne Farben (druckfreundlich) | #| `espresso` | Dunkler Hintergrund, helles Code-Highlighting | #| `zenburn` | Weicher, augenfreundlicher Dunkelstil | #| `haddock` | Stil von Haddock-Dokumentation | #| `breezedark` | KDE-Breeze-Dark-inspiriert (dunkel, modern) | pdf: pandoc $(MD_SORTED) \ --columns=1000 \ --metadata-file=$(METADATA) \ --resource-path=media \ --toc --number-sections \ --template=$(TEX_PRINT) \ --pdf-engine=xelatex \ --highlight-style=tango \ -o $(OUTPUT)/$(TITLE).pdf # === HTML-Vorschau oder Export === html: $(OUTPUT) pandoc $(MD_SORTED) \ --metadata-file=$(METADATA) \ --resource-path=media \ --toc --number-sections \ --css=$(CSS) \ -o $(OUTPUT)/$(TITLE).html # === Word-Version (Lektorat etc.) === docx: $(OUTPUT) pandoc $(MD_SORTED) \ --metadata-file=$(METADATA) \ --resource-path=media \ --toc --number-sections \ -o $(OUTPUT)/$(TITLE).docx plain: $(OUTPUT) pandoc $(MD_SORTED) \ --metadata-file=$(METADATA) \ --resource-path=media \ --wrap=none \ -t plain \ -o $(OUTPUT)/$(TITLE)_reintext.txt # === Vorschau im Terminal (reines Markdown) === preview: cat $(MD_SORTED) | less # === Sicherstellen, dass der Ausgabeordner existiert === $(OUTPUT): mkdir -p $(OUTPUT) # === Bereinigen der Ausgaben === clean: rm -rf $(OUTPUT)/* .PHONY: all epub pdf html docx preview clean