Social Cards / Open-Graph-Bilder pro Antrag (post-v2) #141
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#141
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Aus Redesign-Brief §11.2. Serverseitig gerenderte 1200×630-px-Bilder mit Score-Hero, Antrags-Titel und ECOnGOOD-Wortmarke, dynamisch pro Antrag unter
/api/og/<antrag-id>.png.Abhängigkeit: v2-Frontend (#139) stabil, ScoreHero-Komponente final.
Renderer-Optionen
Das Projekt ist Python-only ohne Node-Runtime.
@vercel/ogscheidet aus. Zwei Alternativen:ImageFont.truetype. Nachteil: kein automatisches Line-Breaking für lange Titel (manuell).reference_playwright_chromium). Rendert/v2/og-template?antrag=Xals Bild. Vorteil: identisches CSS mit v2. Nachteil: Chromium-Startup teuer (~300 ms pro Request).Empfehlung: Playwright, mit aggressivem Caching. Die wenigen ms Startup sind durch Cache-Hits amortisiert. Option Pillow als Folge-Issue, falls Playwright-Cold-Start zu teuer.
Scope
GET /api/og/{drucksache}.png, 1200×630 px, PNGapp/templates/v2/og-template.htmlcache/og/{drucksache}-{assessment_version}.pngog:updated_time<meta property="og:image">+<meta name="twitter:card" content="summary_large_image">im Antragsdetail-HeadCache-Strategie
data/og-cache/(Volume, nicht ins Repo)Tests
Akzeptanzkriterien
Labels
frontend,seo,post-v2Bereits implementiert in app/og_card.py + Endpoint GET /api/og/.png in app/main.py. Pillow-basiert, mit Cache. Schließen als done.