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:
parent
877ef1a220
commit
31144617d7
36 changed files with 1182 additions and 53 deletions
|
|
@ -192,14 +192,10 @@ const loadTags = async () => {
|
|||
cooperativeTags.value = (data.tags || []).filter((t) => t.pool === 'cooperative')
|
||||
}
|
||||
|
||||
useHead({
|
||||
title: 'Board - Ghost Guild',
|
||||
meta: [
|
||||
{
|
||||
name: 'description',
|
||||
content: 'Share what you are seeking and offering with the Ghost Guild community.',
|
||||
},
|
||||
],
|
||||
useSiteMeta({
|
||||
title: 'Bulletin Board',
|
||||
description:
|
||||
'The Ghost Guild bulletin board. Members post offers and requests around shared interests and cooperative topics.',
|
||||
})
|
||||
|
||||
onMounted(async () => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue