feat(seo): site meta composable + Open Graph image generation

Adds `useSiteMeta()` composable that wraps useSeoMeta with site defaults
(title template, canonical URL, og/twitter image, og:site_name) and
absolute-URL handling via runtimeConfig.public.appUrl.

Adds /og/events/[slug].png route that renders per-event OG images via
satori + @resvg/resvg-js, cached on disk by slug + updatedAt. Bundles
Brygada 1918 + Commit Mono fonts as server assets, ships a fallback
default.png, and patches @shuding/opentype.js via patch-package.

Converts ~25 pages from useHead to useSiteMeta and adds noindex on
private/auth/admin pages.
This commit is contained in:
Jennie Robinson Faber 2026-05-21 17:50:34 +01:00
parent 877ef1a220
commit 31144617d7
36 changed files with 1182 additions and 53 deletions

View file

@ -72,15 +72,10 @@
</template>
<script setup>
useHead({
title: "Event Series - Ghost Guild",
meta: [
{
name: "description",
content:
"Multi-session events on cooperative topics for game developers.",
},
],
useSiteMeta({
title: "Event Series",
description:
"Multi-session event series on cooperative topics — from foundations courses to practitioner cohorts.",
});
const { data: seriesData, pending } = await useFetch("/api/series", {