Add complete Open Graph metadata layer across all 20 pages

- Add og:title, og:description, og:image, og:url, og:type, og:site_name to BaseLayout
- Add og:locale (en_GB) + og:locale:alternate (fr_FR, nb_NO) multilingual signals
- Add article:published_time, article:section, article:author on all 5 article pages
- Add Twitter/X summary_large_image card and canonical link on every page
- Generate 13 Jazz Noir branded 1200x630 PNG OG images (satori + resvg-js)
- Add scripts/generate-og-images.mjs + Special Elite font for future regeneration
- Add public/images/articles/ and public/assets/ which were previously untracked

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 01:38:51 +02:00
parent e38e2bb68e
commit 6b509fe052
57 changed files with 919 additions and 1 deletions
+27
View File
@@ -0,0 +1,27 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" fill="none">
<defs>
<path id="rim-top" d="M 100 100 m -82 0 a 82 82 0 0 1 164 0"></path>
<path id="rim-bot" d="M 100 100 m 82 0 a 82 82 0 0 1 -164 0"></path>
</defs>
<circle cx="100" cy="100" r="92" stroke="#8f2218" stroke-width="1.4"></circle>
<circle cx="100" cy="100" r="84" stroke="#8f2218" stroke-width="0.6"></circle>
<g fill="#8f2218" font-family="Special Elite, Courier, monospace" font-size="11" letter-spacing="3">
<text><textPath href="#rim-top" startOffset="50%" text-anchor="middle">DAVE · GILLIGAN</textPath></text>
<text><textPath href="#rim-bot" startOffset="50%" text-anchor="middle">· KONGSBERG · EDITION ·</textPath></text>
</g>
<path d="M 100 70&#xA; C 120 70 130 88 120 102&#xA; C 112 113 96 113 91 102&#xA; C 87 92 96 84 105 86&#xA; C 113 89 113 99 106 102&#xA; C 100 105 95 100 97 95" stroke="#8f2218" stroke-width="1.6" stroke-linecap="round"></path>
<g font-family="Instrument Serif, serif" fill="#0e0c08">
<text x="100" y="142" font-size="32" text-anchor="middle" letter-spacing="-1">DG</text>
</g>
<g fill="#8f2218">
<circle cx="100" cy="20" r="1.8"></circle>
<circle cx="180" cy="100" r="1.8"></circle>
<circle cx="100" cy="180" r="1.8"></circle>
<circle cx="20" cy="100" r="1.8"></circle>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB