feat(blog): Craft blog section with flow.compound article #1

Closed
Phil wants to merge 0 commits from feat/blog-flow-compound into main
Owner

Summary

Vollwertige Blog-Section auf philflow.io (Channel blog + Single blogIndex), plus Erst-Artikel zu Compound Engineering.

Was steht

Schema (Project-Config-YAML, reproduzierbar via docker compose up):

  • Section blog (channel, URI blog/{slug}) + blogIndex (single, URI blog)
  • Entry-Type blogArtikel mit 10 Feldern + reused seo
  • Categories-Group blogKategorien + Tags-Group blogTags
  • CKEditor-Config „Article" mit Editorial-Tag-Whitelist
  • Route blog/feed.xml → RSS

Templates (templates/_pages/blog/, templates/_components/blog/):

  • Listing mit Auto-Fit-Grid (Featured-Card bei 1 Artikel)
  • Editorial Article-Layout: CSS-Grid 680px Reading + 240px Sticky-TOC
  • Vertikaler Reading-Progress-Bar links (Accent-Gradient)
  • Drop-Cap, Wide-Figures (breakout aus Reading-Spalte), Pull-Quote-Variante
  • Sticky-Side-TOC mit Scroll-Spy (IntersectionObserver), kollabiert zu <details>-Accordion auf Mobile
  • Footnotes-Block mit Backlinks, Related-Articles-Markup, Category-Nav-Chips
  • RSS-Feed

Erst-Artikel: „Warum mein Code-Agent jeden Montag wieder bei Null anfängt" — 3076 Wörter, 9 Hand-Skizzen, 13 Footnotes, importiert via Craft-MCP. Category „Compound Engineering" angelegt.

Bonus-Fix: Asset-Cache-Buster in base.twig (vorher ?v=1.0.1 hardcoded → Browser cachte CSS+JS für 1 Woche, jeder Rebuild musste manuell durchgereicht werden).

Branch-History

Local + Remote main haben keinen gemeinsamen Vorfahren — Remote-main enthält Legacy GitHub-Activity-SVGs, Local ist der echte Craft-Setup ab chore: initial import from prod 2026-05-19. Diese PR ist informational; ein Merge wird Force-Push auf main erfordern (separate Entscheidung).

Was offen ist

  • Phase E: docker compose down -v && up Cold-Start-Test
  • Design-Iteration: Werkstatt+Glasarchiv-Hybrid (Marginalia + Serif-Body + Kapitel-Akte) — kommt in separater PR

Test plan

  • php craft project-config/apply → grün
  • /blog rendert Listing
  • /blog/{slug} rendert Article mit allen Skizzen + Footnote-Anchors
  • /blog/feed.xml liefert RSS
  • Mobile (375px): TOC kollabiert in Accordion, Progress-Bar bleibt
  • Tablet (768px): Single-Column-Reading

🤖 Generated with Claude Code

## Summary Vollwertige Blog-Section auf philflow.io (Channel `blog` + Single `blogIndex`), plus Erst-Artikel zu Compound Engineering. ## Was steht **Schema (Project-Config-YAML, reproduzierbar via `docker compose up`):** - Section `blog` (channel, URI `blog/{slug}`) + `blogIndex` (single, URI `blog`) - Entry-Type `blogArtikel` mit 10 Feldern + reused `seo` - Categories-Group `blogKategorien` + Tags-Group `blogTags` - CKEditor-Config „Article" mit Editorial-Tag-Whitelist - Route `blog/feed.xml` → RSS **Templates (`templates/_pages/blog/`, `templates/_components/blog/`):** - Listing mit Auto-Fit-Grid (Featured-Card bei 1 Artikel) - Editorial Article-Layout: CSS-Grid 680px Reading + 240px Sticky-TOC - Vertikaler Reading-Progress-Bar links (Accent-Gradient) - Drop-Cap, Wide-Figures (breakout aus Reading-Spalte), Pull-Quote-Variante - Sticky-Side-TOC mit Scroll-Spy (IntersectionObserver), kollabiert zu `<details>`-Accordion auf Mobile - Footnotes-Block mit Backlinks, Related-Articles-Markup, Category-Nav-Chips - RSS-Feed **Erst-Artikel:** „Warum mein Code-Agent jeden Montag wieder bei Null anfängt" — 3076 Wörter, 9 Hand-Skizzen, 13 Footnotes, importiert via Craft-MCP. Category „Compound Engineering" angelegt. **Bonus-Fix:** Asset-Cache-Buster in `base.twig` (vorher `?v=1.0.1` hardcoded → Browser cachte CSS+JS für 1 Woche, jeder Rebuild musste manuell durchgereicht werden). ## Branch-History Local + Remote `main` haben **keinen gemeinsamen Vorfahren** — Remote-`main` enthält Legacy GitHub-Activity-SVGs, Local ist der echte Craft-Setup ab `chore: initial import from prod 2026-05-19`. Diese PR ist informational; ein Merge wird Force-Push auf `main` erfordern (separate Entscheidung). ## Was offen ist - Phase E: `docker compose down -v && up` Cold-Start-Test - Design-Iteration: Werkstatt+Glasarchiv-Hybrid (Marginalia + Serif-Body + Kapitel-Akte) — kommt in separater PR ## Test plan - [ ] `php craft project-config/apply` → grün - [ ] `/blog` rendert Listing - [ ] `/blog/{slug}` rendert Article mit allen Skizzen + Footnote-Anchors - [ ] `/blog/feed.xml` liefert RSS - [ ] Mobile (375px): TOC kollabiert in Accordion, Progress-Bar bleibt - [ ] Tablet (768px): Single-Column-Reading 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Phil closed this pull request 2026-05-19 18:30:12 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Phil/PhilflowIO!1
No description provided.