654842ba44
- 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)
19 lines
568 B
TypeScript
19 lines
568 B
TypeScript
/**
|
|
* 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
|