--- import "@fontsource/geist-sans"; import "@fontsource/geist-sans/500.css"; import "@fontsource/geist-sans/600.css"; import "@fontsource/geist-sans/700.css"; import "@fontsource/geist-sans/800.css"; import "@fontsource/geist-sans/900.css"; import "@fontsource/roboto-condensed/600.css"; import "@fontsource/roboto-condensed/400.css"; import "@fontsource/jetbrains-mono/400.css"; import { ClientRouter } from "astro:transitions"; import Analytics from "@vercel/analytics/astro"; import { SITE } from "@/lib/config"; import "@/styles/global.css"; import BackToTop from "@/components/back-to-top.astro"; export interface Props { title?: string; author?: string; profile?: string; description?: string; ogImage?: string; pageType?: string; canonicalURL?: string; } const { title = SITE.title, author = SITE.author, profile = SITE.profile, description = SITE.desc, ogImage = SITE.ogImage, pageType = SITE.pageType, canonicalURL = new URL(Astro.url.pathname, Astro.url), } = Astro.props; const socialImageURL = new URL(ogImage ?? SITE.ogImage, Astro.site).toString(); const structuredData = { "@context": "https://schema.org", "@type": "BlogPosting", headline: `${title}`, image: `${socialImageURL}`, author: [ { "@type": "Person", name: `${author}`, ...(profile && { url: profile }), }, ], }; --- {title}