From e17faae5d755ac279c32ab695c40b156d44b449b Mon Sep 17 00:00:00 2001 From: kayjaydee Date: Wed, 22 Apr 2026 11:19:58 +0200 Subject: [PATCH] feat(07-02): enrich blog article page with full SEO meta + Article/Breadcrumb JSON-LD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - D-15: useSeoMeta extended with ogImage (absolute via resolveOgImage), ogUrl (canonical), ogLocale + ogLocaleAlternate (emitted only when bilingual pair exists), twitterCard + twitterImage, article:published_time, article:modified_time (fallback to date when updated absent — D-13), articleAuthor - SEO-11/SEO-15: useSchemaOrg([defineArticle, defineBreadcrumb]) — Article author/publisher reference global Person via @id=#killian (from app/utils/seo-person.ts KILLIAN_PERSON_ID), image mirrors ogImage, mainEntityOfPage = canonical; BreadcrumbList emits Accueil → Blog → title - Pitfall 7: altExists query via queryCollection('blog_en'|'blog_fr') with literal collection names (Vite extractor constraint) - inLanguageTag computed cast to satisfy overly narrow defineArticle typings without changing runtime emission - Validated SSR: curl /fr/blog/test-kotlin-syntax returns og:image absolute, article:published_time, Article JSON-LD (author @id=#killian), BreadcrumbList 3 items --- app/pages/blog/[slug].vue | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/app/pages/blog/[slug].vue b/app/pages/blog/[slug].vue index fb3799d..c20ad47 100644 --- a/app/pages/blog/[slug].vue +++ b/app/pages/blog/[slug].vue @@ -1,4 +1,7 @@