102 lines
2.7 KiB
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
|