Files
guides/templates/Format/ExtendedGuide.md
2026-05-25 19:33:48 +02:00

171 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
```
EXTENDED-GUIDE-STIL (HTML/CSS → PDF via WeasyPrint)
FORMAT
- A4 Hochformat, mehrseitig
- @page { size: A4; margin: 22mm 20mm 20mm 20mm; }
- @page :first { margin: 0; } für Cover
- Footer: Seitenzahl Mitte, Guide-Titel rechts (außer Cover)
UMFANG
- 15-20 Kapitel à ~15 Min Lesezeit
- ~1500 Wörter Fließtext pro Kapitel (gleich wie alle anderen Stufen)
- 2-3 Code-Beispiele pro Kapitel (gleich wie alle anderen, 5-15 Zeilen)
- 50-70 Seiten gesamt
- ~4-5h Lesezeit gesamt
EINSTIEGSNIVEAU
- Setzt Anfänger- UND Fortgeschritten-Guide voraus
- Grundbegriffe und fortgeschrittene Patterns werden NICHT mehr erklärt
- Verweist bei Bedarf auf vorherige Guides
- Geht direkt in Internals, Spezial-Themen und Edge-Cases
UNTERSCHIED ZU FORTGESCHRITTEN-GUIDE
- Kapitel-Größe IDENTISCH (1500 Wörter, 2-3 Code-Beispiele, 15 Min)
- Unterschied liegt nur in:
- THEMEN (Experten/Nischen, Internals, Sprach-Mechanismen)
- VORAUSGESETZTEM WISSEN (alle Patterns aus Fortgeschritten)
- KAPITEL-ANZAHL (15-20 statt 12-15)
- "WARUM" über "WIE" (mehr Trade-Offs, mehr Design-Entscheidungen)
KAPITEL-PROGRESSION
- Aufgeteilt in 3 Teile mit eigenen TOC-Sektionen
- Beispiele für PHP:
- Teil 1: Sprach-Internals — Reflection, SPL, Stream-Wrapper, GC, FFI
- Teil 2: Performance & Async — OpCache, Fibers, ReactPHP, Profiling, Caching
- Teil 3: Architektur & Patterns — DI-Container, Event-Dispatcher, CQRS, DDD, Hexagonal, Event Sourcing
- Jedes Kapitel geht in Bereiche, wo die meisten Entwickler nicht hingehen
- Bewusst dort, wo Mainstream-Tutorials aufhören
STRUKTUR
1. Cover: vollflächiger Hintergrund, Hero-Aussage mit "an der Grenze" oder ähnlichem Tone
2. Inhaltsverzeichnis: 3 Teile, nummeriert, Zeit-Marker (15 Min) - kann auf zwei Seiten brechen
3. Kapitel 1-N
4. Ending: Spaced-Repetition-Plan, nächste Schritte (außerhalb des offiziellen Lernpfads), Begleitmaterial
KAPITEL-AUFBAU
1. Kapitel-Head: große Nummer + Titel + Subtitle, Trennlinie
2. Gap-Opener: kursiv eingerahmt, anspruchsvolles Problem oder Tief-Frage
3. 3-5 H2-Sektionen (mehr als im Fortgeschritten-Guide)
4. Pro Sektion: Erklärtext + Code-Beispiel + ggf. Callout
5. Recall-Box am Ende (3 Fragen, anspruchsvoller als alle Stufen davor)
CODE-BEISPIELE
- Production-Code-Niveau, keine Demos
- Echte Library-Namen (Symfony, Doctrine, ReactPHP, EventSauce)
- Internals-Code zur Erklärung von PHP-Mechanismen
- Vereinfachte Implementierungen echter Frameworks
- Länge bleibt 5-15 Zeilen (wie alle anderen Stufen)
ELEMENTE
- Fließtext: justify mit Silbentrennung
- Codeblöcke: dunkler Hintergrund, syntax highlighting
- Inline-Code: heller Hintergrund, Hauptfarbe
- Tabellen: Header farbig (Hauptfarbe-Dunkel), Vergleichstabellen mit Trade-Offs
- Callouts in 3 Varianten: tip (grün), warn (rot), note (Hauptfarbe)
- Recall-Box: dunkler Hintergrund mit Akzentfarbe
TYPOGRAFIE
- Body: 10.5pt Serif (Charter), line-height 1.55
- H1 Kapitel: 22pt Sans-Serif bold, Hauptfarbe-Dunkel
- H2 Sektion: 14pt Sans-Serif bold
- H3 Subsektion: 11pt Sans-Serif bold
- Code: 8.5pt Monospace, line-height 1.5
- Inline-Code: 9pt Monospace
- Recall/Callout-Labels: 8pt uppercase, letter-spacing 1pt
- Cover-H1: 56pt Sans-Serif bold, letter-spacing -2pt
FARBEN (max 3 + Neutrals)
- Hauptfarbe: kräftig, an offizielle Farbe des Themas anlehnen
- Hauptfarbe-Dunkel: dunklere Variante für Headings und Akzente
- Hauptfarbe-Darker: noch dunkler für Cover-Verlauf und Recall-Box
- Hintergrund-Soft: helle Variante der Hauptfarbe
- Code-Hintergrund: #1e2a3a (dunkel)
- Text: #1a1a1a / muted #5a6470 / Linie #d8dde3
- Callout-Farben: grün/rot/Hauptfarbe
INFORMATION-GAP-OPENER (PFLICHT pro Kapitel)
- Kursiv, eingerahmt mit Hauptfarbe-Border
- Anspruchsvolles Problem oder Internals-Frage als Aufhänger
- Niveau: setzt fortgeschrittene Praxis voraus
- Beispiele:
- "Wie weiß Symfony zur Laufzeit, welche Routen in deinem Controller stecken?"
- "PHP räumt Speicher automatisch auf meistens. Aber in Long-Running-Prozessen..."
- "Anämische Entities sind in PHP weit verbreitet..."
RECALL-BOX (PFLICHT pro Kapitel)
- Am Kapitel-Ende
- 3 Fragen, anspruchsvoller als Fortgeschritten
- Fragen nach Warum/Wofür/Wann genau statt Was/Wie
- Code-Snippets in Fragen mit Akzentfarbe hervorgehoben
ENDING (PFLICHT)
- Spaced-Repetition-Plan: 4 Karten (Heute, +7 Tage, +30 Tage, +90 Tage)
- Sehr langfristige Spacing-Abstände
- Aufgaben anspruchsvoll (eigenes Spezialprojekt, Source-Code lesen)
- "Was als nächstes lernen" — bewusst außerhalb offizieller Lernpfade
(Source-Code, eigene Extensions, Sprach-Design, RFCs)
- Verweis auf ALLE Begleitmaterialien (komplette Reihe)
CALLOUT-NUTZUNG
- tip (grün): Best Practice für Spezial-Cases, Library-Empfehlung
- warn (rot): subtile Fallen, Architektur-Anti-Patterns, Komplexitäts-Warnungen
- note (Hauptfarbe): Hintergrund-Info, alternative Lösung, "wann lohnt sich das"
CALLOUT-CSS WICHTIG
- .callout-body > b:first-child mit display:block für Label
- NICHT .callout-body b global mit display:block (zerstört Inline-Bold)
- Mehrzeiliger Body-Text in <p style="margin:0;"> wrappen wenn Inline-Bolds drin sind
GAP-CSS WICHTIG
- .gap > b:first-child mit display:block für "FRAGE ZUM EINSTIEG"-Label
- NICHT .gap b global mit display:block (zerstört Inline-Bold im Frage-Text)
- Bei Inline-Bolds im Gap-Text wird sonst jedes <b> zum Block
THEMENSPEZIFISCHE ANPASSUNGEN (vor Generierung wählen)
- Hauptfarbe: offizielle Farbe des Themas
- Logo-Buchstabe(n) oder Kürzel
- Version + Stand-Datum
- 15-20 Kapitel-Titel: Internals, Spezial-Themen, Production-Edge
- Themen, die der Mainstream-Entwickler nicht täglich braucht
PFLICHT-ELEMENTE PRO KAPITEL
- 1 Gap-Opener am Anfang
- 2-3 Code-Beispiele (5-15 Zeilen, gleich wie alle anderen Stufen)
- Mindestens 1 Callout
- 1 Recall-Box am Ende
VERMEIDEN
- Wiederholung von Anfänger- und Fortgeschritten-Themen
- Einleitungs-Floskeln ("In diesem Kapitel lernen wir...")
- Übersichts-Inhalt (steht im OnePager)
- Reine Referenz-Tabellen (stehen im Cheatsheet)
- Toy-Beispiele (Production-Niveau zeigen)
- Themen, die der Mainstream-Entwickler täglich braucht
(gehören in Anfänger oder Fortgeschritten)
- page-break mitten in Codeblock oder Callout (page-break-inside: avoid)
- Mehr als 3 Schriftgrößen pro Sektion
- Floats oder absolute positioning (bricht in WeasyPrint)
GENERIERUNG MIT FEEDBACK-LOOP (max 3 Iterationen)
1. HTML schreiben (sehr langes Dokument, ~3500-5000 Zeilen typisch)
2. weasyprint file.html file.pdf (Timeout 300s, große Datei)
3. PDF zu PNGs: alle Seiten konvertieren (dpi=90 für Memory-Effizienz)
4. Schlüsselseiten ansehen: Cover, TOC, Kapitel 1, mittlere Seite, Ending
5. Prüfen:
- Cover randlos und ohne Footer?
- TOC zeigt alle 3 Teile? (kann auf 2 Seiten brechen bei 15+ Kapiteln, OK)
- Kapitel beginnen auf neuer Seite?
- Code-Blöcke nicht über Seitenumbruch zerrissen?
- Recall-Boxen vollständig sichtbar?
- Footer mit Seitenzahl korrekt?
- Setzt der Guide spürbar Anfänger+Fortgeschritten-Wissen voraus?
- Sind Themen wirklich Experten-/Nischen-Niveau?
- Inline-Bolds in Gap-Openers und Callouts korrekt (nicht als Blöcke)?
6. Bei Problemen: fixen, ab Schritt 2 wiederholen
7. Nach max 3 Iterationen ausgeben
INSTALLATION
- pip install weasyprint pdf2image
- apt install poppler-utils
```