# Justfile — PDF-Pipeline für „Grok Build – Der umfassende Praxisleitfaden“
#
# pandoc + lualatex + KOMA-Template.
# TeX Live (KOMA-Script / scrbook) kommt vom Host.
#
# Outputs:
#   just pdf        → dist/grok-build-praxisleitfaden.pdf       (A4 eBook)
#   just pdf-print  → dist/grok-build-praxisleitfaden-print.pdf (KDP 6×9 B/W)

default: pdf

# resource-path: illustrations + cover (+ content roots)
_resource_path := ".:beispiele:vorlagen:assets:assets/illustrations:assets/cover"

# Print: grayscale stage mirrors MD paths (assets/illustrations/… under
# build/print-assets/). First path wins → gray before RGB originals.
_print_resource_path := "build/print-assets:.:beispiele:vorlagen:assets:assets/illustrations:assets/cover"

assemble:
    @python3 scripts/assemble_book.py

# Gestyltes PDF (Titelseite, Impressum, TOC, nexttoken-Farbpalette)
pdf-styled: assemble
    @mkdir -p dist
    pandoc build/book.md \
        --pdf-engine=lualatex \
        --template=pdf/templates/guide.tex \
        -H pdf/styles/guide-colors.tex \
        --metadata-file=pdf/metadata.yaml \
        --lua-filter=pdf/filters/tables.lua \
        --resource-path={{_resource_path}} \
        -V lang=de-DE \
        -V papersize=a4 \
        -V colorlinks \
        --toc \
        -o dist/grok-build-praxisleitfaden.pdf

pdf: pdf-styled

pdf-draft: assemble
    @mkdir -p dist
    pandoc build/book.md \
        --pdf-engine=lualatex \
        --template=pdf/templates/guide.tex \
        -H pdf/styles/guide-colors.tex \
        --metadata-file=pdf/metadata.yaml \
        --lua-filter=pdf/filters/tables.lua \
        --resource-path={{_resource_path}} \
        -V lang=de-DE \
        -V papersize=a4 \
        -V colorlinks \
        -V draft=true \
        --toc \
        -o dist/grok-build-praxisleitfaden-draft.pdf

pdf-plain: assemble
    @mkdir -p dist
    pandoc build/book.md \
        --pdf-engine=lualatex \
        -V documentclass=scrbook \
        -V lang=de-DE \
        -V papersize=a4 \
        --lua-filter=pdf/filters/tables.lua \
        --resource-path={{_resource_path}} \
        --toc \
        -o dist/grok-build-praxisleitfaden-plain.pdf

# --- KDP Paperback Interior (6×9, grayscale) --------------------------------

print-assets:
    @python3 scripts/prepare_print_assets.py

pdf-print: assemble print-assets
    @mkdir -p dist
    pandoc build/book.md \
        --pdf-engine=lualatex \
        --template=pdf/templates/guide.tex \
        -H pdf/print/print-colors.tex \
        --metadata-file=pdf/print/metadata.yaml \
        --lua-filter=pdf/filters/tables.lua \
        --resource-path={{_print_resource_path}} \
        --syntax-highlighting=monochrome \
        -V lang=de-DE \
        -V printmode=true \
        --toc \
        -o dist/grok-build-praxisleitfaden-print.pdf

# Optional: Ghostscript grayscale/prepress pass (KDP-freundlicher, best-effort)
pdf-print-optimize:
    @test -f dist/grok-build-praxisleitfaden-print.pdf || (echo "Run just pdf-print first" && exit 1)
    @command -v gs >/dev/null || (echo "Ghostscript (gs) not found" && exit 1)
    gs -dBATCH -dNOPAUSE -dSAFER -sDEVICE=pdfwrite \
        -dCompatibilityLevel=1.5 \
        -dPDFSETTINGS=/prepress \
        -dColorConversionStrategy=/Gray \
        -dProcessColorModel=/DeviceGray \
        -dEmbedAllFonts=true \
        -dSubsetFonts=true \
        -sOutputFile=dist/grok-build-praxisleitfaden-print-opt.pdf \
        dist/grok-build-praxisleitfaden-print.pdf
    @mv dist/grok-build-praxisleitfaden-print-opt.pdf dist/grok-build-praxisleitfaden-print.pdf
    @echo "optimized → dist/grok-build-praxisleitfaden-print.pdf"

qa:
    @python3 scripts/check_pdf.py

qa-print:
    @python3 scripts/check_pdf.py --pdf dist/grok-build-praxisleitfaden-print.pdf --mode print

all: pdf qa

all-print: pdf-print qa-print

clean:
    @rm -rf build
    @rm -f dist/*.pdf dist/*.aux dist/*.log dist/*.out dist/*.toc
    @echo "cleaned build/ and dist/*.pdf"
