template-ebook/Makefile

102 lines
2.7 KiB
Makefile

# 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