Commit Graph

9 Commits

Author SHA1 Message Date
valknar 364cc249dc Remove finale page from book interior
The cover PDF serves this purpose. Removes the page--finale template
block, the finale data loading path in build.js, and all finale CSS.
Page count: 100 → 99 (imprint + title + TOC + 96 scene pages).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 19:55:52 +02:00
valknar 07f1b9d3a6 Add Ghostscript post-processing to cover.js (CMYK + font embed + metadata)
Puppeteer writes cover-raw.pdf, Ghostscript converts RGB→CMYK via
-sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK,
fully embeds fonts (-dPDFSETTINGS=/prepress), and injects title/author
metadata via UTF-16BE pdfmarks. Temp files are cleaned up on success.
Mirrors the same GS pipeline already used in pdf.js for the interior.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 19:21:36 +02:00
valknar 6b61cf206a Fix page parity: images on even (left) pages, text on odd (right) pages
Add a section-title page ("Die Geschichten") as page 3 so all stories
begin on page 4. Image and text for each scene now land on the same
facing spread (even=left image, odd=right text). Page count: 99 → 100.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 19:14:43 +02:00
valknar 2abcda73e8 Add Ghostscript post-processing to pdf.js for KDP compliance
- Puppeteer writes to a temp kaleidoskop-raw.pdf
- Ghostscript re-processes with -dPDFSETTINGS=/prepress to fully embed
  all fonts and prevent subsetting (KDP checklist item 6)
- PDF info dict is written via PostScript pdfmarks, with title/author/
  subject encoded as UTF-16BE hex to support German umlauts (item 13)
- File size drops from ~108 MB to ~9 MB (placeholder art; will grow with
  real 300 DPI illustrations but stays well under KDP's 650 MB limit)
- GS failure falls back gracefully to the raw Puppeteer PDF

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 19:08:35 +02:00
valknar 90b35f9d0c Remove interior title page — cover replaces it
The title page is redundant since the KDP cover (cover.pdf) already
establishes title and author. Interior now opens directly on the
copyright page, followed by the TOC and stories (99 pages total).
Removed unused .page--title CSS from layout and typography.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:56:59 +02:00
valknar 96ba26559b Apply Illuminated Nocturne style to cover template
Replaces Georgia with Cormorant Garamond (display, 300 italic) + Lora
(body) across all cover text. Adds @font-face declarations pointing to
fonts/ (same as interior). Updates gold tokens to match interior palette.

Visual changes: front title in Cormorant light italic with gold gradient
rule below, ❧ ornament replacing ✦, synopsis body in Lora.
cover.js now reads 00-front-matter.md to inject author name into spine,
front, and removes the [AUTOR] placeholder.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:44:19 +02:00
valknar 87a3925c3e Redesign book interior: Illuminated Nocturne aesthetic
Replaces Georgia + per-story color theming with a unified premium
fairytale look: Cormorant Garamond (display/titles) + Lora (body),
warm cream text pages (#faf8f2 with paper noise texture), deep ink
typography (#1e1b18) throughout — no per-story text color variation.

- fonts/: committed WOFF2 files via @fontsource packages; auto-copied
  by scripts/setup-fonts.js (runs as postinstall)
- Typography: story number in small caps, hairline rule, ❧ ornament
- Layout: cream background replaces per-story bg, radial glow on title
- build.js: passes frontMatter (author, year) to templates
- Templates: author byline on title page, cleaner imprint page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:39:42 +02:00
valknar 1037b84eaa Add KDP cover PDF generator
scripts/cover.js computes the exact cover canvas dimensions from the
page count in book-meta.json (written by build.js), using the KDP
Premium Color spine formula (0.002347 in/page), and renders a
Nunjucks template to a single PDF containing back cover, spine, and
front cover with bleed (0.125 in) and safe-zone overlay guides.

- `pnpm cover`  — generate output/cover.pdf
- `pnpm all`    — build interior + both PDFs in one command
- Cover artwork slots: images/cover/front.png, images/cover/back.png

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 17:29:10 +02:00
valknar a8ade90ffb Set up book project: Markdown→CSS→PDF pipeline for KDP
Adds the full authoring and build toolchain for "Das Kaleidoskop der
Schlummerwelten" — all 12 story content files in Markdown, Nunjucks
HTML templates, CSS print layout, and Puppeteer-based PDF generation
targeting Amazon KDP (8.5×8.5 in, 0.125in bleed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 15:38:07 +02:00