feat(07-01): wire global schema.org Person + WebSite and sitemap sources

- nuxt.config.ts: register 'nuxt-schema-org' module + sitemap.sources=['/api/__sitemap__/urls']
- app/utils/seo-person.ts: KILLIAN_PERSON_ID + killianPerson (derived from siteConfig, email excluded)
- app/app.vue: useSchemaOrg([definePerson(killianPerson), defineWebSite({name, inLanguage})]) appended (D-12)
- Verified SSR: /fr emits JSON-LD Person @id=#killian + WebSite (curl, pas d'hydratation)
This commit is contained in:
2026-04-22 11:13:51 +02:00
parent 2ec6a213f0
commit 1a2cfc360b
3 changed files with 32 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
/**
* Global Person identity for schema.org (Killian Dal-Cin).
* Consumed by: app/app.vue (definePerson global) and app/pages/blog/[slug].vue (author/publisher @id ref).
* Derives URLs from siteConfig — single source of truth.
*/
import { siteConfig } from '~/data/site'
export const KILLIAN_PERSON_ID = '#killian'
export const killianPerson = {
'@id': KILLIAN_PERSON_ID,
name: "Killian' Dal-Cin",
url: siteConfig.url,
jobTitle: siteConfig.jobTitle,
sameAs: siteConfig.social
.filter((s) => s.name !== 'Email')
.map((s) => s.url),
} as const