From 861263437cb2eb5f38e074d8023a41eaac0b7ee5 Mon Sep 17 00:00:00 2001 From: Nicholai Date: Sun, 21 Dec 2025 01:46:53 -0700 Subject: [PATCH] Add canonical Person schema and social links to layouts - Add SOCIAL_LINKS import to BaseLayout and BlogPost - Add Master Person schema to BaseLayout - Reference Person @id in BlogPost article schema Hubert The Eunuch --- src/layouts/BaseLayout.astro | 52 +++++++++++++++++++++++++++++++----- src/layouts/BlogPost.astro | 10 +++---- 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 4b18c25..c13848c 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -5,7 +5,7 @@ import Footer from '../components/Footer.astro'; import GridOverlay from '../components/GridOverlay.astro'; import Navigation from '../components/Navigation.astro'; import CustomCursor from '../components/CustomCursor'; -import { HTML_MARKER, SITE_TITLE, SITE_DESCRIPTION } from '../consts'; +import { HTML_MARKER, SITE_TITLE, SITE_DESCRIPTION, SOCIAL_LINKS } from '../consts'; interface Props { title?: string; @@ -17,15 +17,49 @@ interface Props { modifiedTime?: Date; } -const { - title = SITE_TITLE, - description = SITE_DESCRIPTION, +const { + title = SITE_TITLE, + description = SITE_DESCRIPTION, usePadding = true, image, type = 'website', publishedTime, modifiedTime, } = Astro.props; + +// Master Person schema - establishes canonical identity across all pages +const personSchema = { + "@context": "https://schema.org", + "@type": "Person", + "@id": `${SOCIAL_LINKS.website}/#person`, + "name": "Nicholai Vogel", + "url": SOCIAL_LINKS.website, + "email": SOCIAL_LINKS.email, + "jobTitle": "VFX Supervisor & Technical Artist", + "description": "VFX Supervisor specializing in both 2D and 3D VFX, AI and high-end technical visualization.", + "knowsAbout": [ + "Houdini", + "Nuke", + "ComfyUI", + "Python", + "VFX Pipeline", + "Real-time VFX", + "Motion Graphics", + "Technical Art" + ], + "sameAs": [ + SOCIAL_LINKS.linkedin, + "https://www.instagram.com/nicholai.exe" + ], + "affiliation": { + "@type": "Organization", + "name": "Biohazard VFX", + "url": "https://biohazardvfx.com", + "founder": { + "@id": `${SOCIAL_LINKS.website}/#person` + } + } +}; --- @@ -40,14 +74,18 @@ const { document.documentElement.setAttribute('data-theme', theme); })(); - + + +