--- import '@/styles/global.css'; import SEO from '@/components/seo/SEO.astro'; import JsonLd from '@/components/seo/JsonLd.astro'; import Analytics from '@/components/layout/Analytics.astro'; import ConsentBanner from '@/components/ui/overlay/ConsentBanner'; import { ClientRouter } from 'astro:transitions'; import { createWebsiteSchema, createOrganizationSchema, createPersonSchema, createProfessionalServiceSchema } from '@/lib/schema'; import type { WebSite, Organization, Person, WithContext } from 'schema-dts'; import siteConfig from '@/config/site.config'; interface Props { title?: string; description?: string; image?: string; imageAlt?: string; article?: { publishedTime?: Date; modifiedTime?: Date; authors?: string[]; tags?: string[]; }; noindex?: boolean; nofollow?: boolean; includeOrgSchema?: boolean; includePersonSchema?: boolean; includeProfessionalServiceSchema?: boolean; } const { title, description, image, imageAlt, article, noindex = false, nofollow = false, includeOrgSchema = false, includePersonSchema = false, includeProfessionalServiceSchema = false, } = Astro.props; // Build JSON-LD schemas const schemas: Array | WithContext | WithContext> = [createWebsiteSchema()]; if (includeOrgSchema) { schemas.push(createOrganizationSchema()); } if (includePersonSchema) { schemas.push(createPersonSchema()); } if (includeProfessionalServiceSchema) { schemas.push(createProfessionalServiceSchema()); } --- Skip to content