Zusammenfassung
Vor jeder Generationssektion im Pokédex-PDF soll eine neue Art von Trenn-/Frontpage eingefügt werden: Eine A4-Seite, die ein großes Bild der drei Starter-Pokémon der jeweiligen Generation zeigt – aufgeteilt in ein 3×3-Raster (Kartengröße 63,5 × 88,9 mm), sodass die 9 Felder direkt in die 9 Hüllen einer 9-Pocket-Binder-Seite passen und zusammen ein zusammenhängendes Bild ergeben.
Motivation / Kontext
Aktuell zeigt jede Generationssektion eine Cover-Seite mit Farbstreifen, Regionname, ID-Range und drei einzelnen Feature-Pokémon-Bildern (nebeneinander unten). Diese Cover-Seite ist informativ, aber der Nutzer legt sie nicht in den Binder ein.
Die neue „Starter-Poster-Seite" dient als visuell ansprechende Trennseite innerhalb des Binders, die man ausschneidet und direkt in die 9 Hüllen steckt – ähnlich einem Puzzle-Poster in Kartengröße.
Gewünschtes Verhalten
- Pro Generation eine zusätzliche A4-Seite, die vor oder anstelle der aktuellen Cover-Seite eingefügt wird (konfigurierbar).
- Die Seite ist als 3×3-Raster aufgebaut, jede Zelle exakt 63,5 × 88,9 mm (Standard-Pokémon-Kartengröße).
- Das Raster zeigt die drei Starter der Generation als Artwork, verteilt über die gesamte Fläche (z. B. Querformat-Panorama oder zentriertes Komposit).
- Schneidemarken an den Zellgrenzen (wie bereits im
grid_3x3.svg-Template vorhanden: config/templates/pages/grid_3x3.svg), damit man die 9 Teile sauber trennen kann – mit Schere oder Schneidemaschine.
- Optionales Overlay: kleiner Generationsname / Regionsname in einer Ecke (dezent, nicht auf dem Hauptbild störend).
Aktueller Projektstand (technische Einordnung)
Vorhandene Infrastruktur
| Komponente |
Datei |
Relevanz |
| Cover-Renderer |
scripts/pdf/lib/rendering/cover_renderer.py |
Zeichnet aktuell die Generationscover mit render_cover() |
| Page-Renderer |
scripts/pdf/lib/rendering/page_renderer.py |
Zuständig für 3×3-Raster, Schneidemarken, Footer |
| Variant-PDF-Generator |
scripts/pdf/lib/variant_pdf_generator.py |
Iteriert über sections, ruft _draw_section_cover() auf |
| PDF-Generator (Pokédex) |
scripts/pdf/lib/pdf_generator.py |
Ruft _draw_cover_page() für jede Generation |
| Seitentemplate |
config/templates/pages/grid_3x3.svg |
Enthält bereits Schneidemarken (<g id="cropMarks">) |
| Generationsdaten (JSON) |
data/output/Pokedex.json |
Pro Section: featured_elements mit den 3 Starter-Pokémon, local_image_path, image_url, color_hex |
| Bild-Cache |
data/pokemon_images_cache/pokemon_#NNN/ |
Official-Artwork PNGs bereits gecacht (aus cache_pokemon_images-Step) |
Datenstruktur featured_elements (Beispiel Gen 1)
"featured_elements": [
{ "pokemon_id": 1, "pokemon_name": "Bulbasaur", "local_image_path": "data/section_artwork/pokemon_1_pokedex.png", "image_url": "..." },
{ "pokemon_id": 4, "pokemon_name": "Charmander", "local_image_path": "data/section_artwork/pokemon_4_pokedex.png", "image_url": "..." },
{ "pokemon_id": 7, "pokemon_name": "Squirtle", "local_image_path": "data/section_artwork/pokemon_7_pokedex.png", "image_url": "..." }
]
Die Starter-Pokémon sind also bereits als featured_elements in den Sektionen vorhanden und haben lokale Image-Caches.
Technische Umsetzungsidee
Option A – Neue Render-Methode im CoverRenderer (empfohlen)
Neue Methode render_starter_poster(canvas_obj, section_data, color) im CoverRenderer:
- Weißer Hintergrund + optionaler farbiger Rand/Akzent in
section.color_hex.
- Die drei
featured_elements-Bilder werden auf das A4-Blatt verteilt, sodass zusammen alle 9 Kartenpositionen (3×3) belegt werden – z. B.:
- Linke 3 Zellen: Starter 1 (aufgeteilt)
- Mittlere 3 Zellen: Starter 2
- Rechte 3 Zellen: Starter 3
- Alternativ: Ein großes Panoramabild über alle 9 Zellen (wenn ein zusammengesetztes Artwork vorhanden ist)
- Schneidemarken aus
page_renderer.draw_cutting_guides() werden auf diese Seite angewendet.
- Dezenter Text (Generationsname, Region) am Rand oder in einer Zelle.
Option B – Neuer StarterPosterRenderer
Eigene Renderer-Klasse analog zu CoverRenderer, ausschließlich für diesen Seitentyp.
Integration in den Workflow
- In
variant_pdf_generator._generate_with_sections(): Pro Section nach dem _draw_section_cover()-Aufruf (oder als Ersatz) die neue Starter-Poster-Seite einzufügen.
- In
pdf_generator.PDFGenerator.generate(): Analog für den klassischen Pokédex-Flow.
- Steuerbar über einen Scope-Parameter in
Pokedex.yaml, z. B.:
section_frontpage: starter_poster # statt: cover (Standard)
Offene Fragen / Designentscheidungen
- Bildkomposition: Wie werden die 3 Starter-Bilder auf 9 Kartenzellen verteilt?
- Je Starter 3 Zellen (eine Spalte)?
- Panorama-Montage mit KI-generiertem Bild?
- Jeder Starter in 1 Zelle (Mitte), die anderen 6 mit Hintergrundfarbe/Pattern?
- Bestehende Cover-Seite beibehalten? Starter-Poster zusätzlich oder als Ersatz?
- Konfigurierbarkeit: Soll das Feature per Scope-YAML an/ausschaltbar sein?
Ursprüngliche Idee: Nutzer-Feedback (WhatsApp, 14. Mai 2026)
Zusammenfassung
Vor jeder Generationssektion im Pokédex-PDF soll eine neue Art von Trenn-/Frontpage eingefügt werden: Eine A4-Seite, die ein großes Bild der drei Starter-Pokémon der jeweiligen Generation zeigt – aufgeteilt in ein 3×3-Raster (Kartengröße 63,5 × 88,9 mm), sodass die 9 Felder direkt in die 9 Hüllen einer 9-Pocket-Binder-Seite passen und zusammen ein zusammenhängendes Bild ergeben.
Motivation / Kontext
Aktuell zeigt jede Generationssektion eine Cover-Seite mit Farbstreifen, Regionname, ID-Range und drei einzelnen Feature-Pokémon-Bildern (nebeneinander unten). Diese Cover-Seite ist informativ, aber der Nutzer legt sie nicht in den Binder ein.
Die neue „Starter-Poster-Seite" dient als visuell ansprechende Trennseite innerhalb des Binders, die man ausschneidet und direkt in die 9 Hüllen steckt – ähnlich einem Puzzle-Poster in Kartengröße.
Gewünschtes Verhalten
grid_3x3.svg-Template vorhanden:config/templates/pages/grid_3x3.svg), damit man die 9 Teile sauber trennen kann – mit Schere oder Schneidemaschine.Aktueller Projektstand (technische Einordnung)
Vorhandene Infrastruktur
scripts/pdf/lib/rendering/cover_renderer.pyrender_cover()scripts/pdf/lib/rendering/page_renderer.pyscripts/pdf/lib/variant_pdf_generator.pysections, ruft_draw_section_cover()aufscripts/pdf/lib/pdf_generator.py_draw_cover_page()für jede Generationconfig/templates/pages/grid_3x3.svg<g id="cropMarks">)data/output/Pokedex.jsonfeatured_elementsmit den 3 Starter-Pokémon,local_image_path,image_url,color_hexdata/pokemon_images_cache/pokemon_#NNN/cache_pokemon_images-Step)Datenstruktur
featured_elements(Beispiel Gen 1)Die Starter-Pokémon sind also bereits als
featured_elementsin den Sektionen vorhanden und haben lokale Image-Caches.Technische Umsetzungsidee
Option A – Neue Render-Methode im
CoverRenderer(empfohlen)Neue Methode
render_starter_poster(canvas_obj, section_data, color)imCoverRenderer:section.color_hex.featured_elements-Bilder werden auf das A4-Blatt verteilt, sodass zusammen alle 9 Kartenpositionen (3×3) belegt werden – z. B.:page_renderer.draw_cutting_guides()werden auf diese Seite angewendet.Option B – Neuer
StarterPosterRendererEigene Renderer-Klasse analog zu
CoverRenderer, ausschließlich für diesen Seitentyp.Integration in den Workflow
variant_pdf_generator._generate_with_sections(): Pro Section nach dem_draw_section_cover()-Aufruf (oder als Ersatz) die neue Starter-Poster-Seite einzufügen.pdf_generator.PDFGenerator.generate(): Analog für den klassischen Pokédex-Flow.Pokedex.yaml, z. B.:Offene Fragen / Designentscheidungen
Ursprüngliche Idee: Nutzer-Feedback (WhatsApp, 14. Mai 2026)