import { env } from "../lib/env"; import { JsonLd } from "react-schemaorg"; import { Analytics } from "@vercel/analytics/next"; import { ThemeProvider, ThemeScript } from "../contexts/ThemeContext"; import Header from "../components/Header"; import Footer from "../components/Footer"; import { SkipNavLink, SkipNavTarget } from "../components/SkipNav"; import cn from "../lib/helpers/classnames"; import { defaultMetadata } from "../lib/helpers/metadata"; import * as config from "../lib/config"; import type { Person, WebSite } from "schema-dts"; import { GeistMono, GeistSans } from "./fonts"; import "./globals.css"; export const metadata = defaultMetadata; const RootLayout = ({ children }: Readonly<{ children: React.ReactNode }>) => { return ( item={{ "@context": "https://schema.org", "@type": "Person", "@id": `${env.NEXT_PUBLIC_BASE_URL}/#person`, name: config.authorName, url: env.NEXT_PUBLIC_BASE_URL, image: [`${env.NEXT_PUBLIC_BASE_URL}/opengraph-image.jpg`], sameAs: [ env.NEXT_PUBLIC_BASE_URL, `https://${config.authorSocial?.mastodon}`, `https://github.com/${config.authorSocial?.github}`, `https://bsky.app/profile/${config.authorSocial?.bluesky}`, `https://twitter.com/${config.authorSocial?.twitter}`, `https://medium.com/@${config.authorSocial?.medium}`, `https://www.linkedin.com/in/${config.authorSocial?.linkedin}/`, `https://www.facebook.com/${config.authorSocial?.facebook}`, `https://www.instagram.com/${config.authorSocial?.instagram}/`, ], }} /> item={{ "@context": "https://schema.org", "@type": "WebSite", "@id": `${env.NEXT_PUBLIC_BASE_URL}/#website`, name: config.siteName, url: env.NEXT_PUBLIC_BASE_URL, author: config.authorName, description: config.description, inLanguage: env.NEXT_PUBLIC_SITE_LOCALE, license: config.licenseUrl, }} />
{children}
); }; export default RootLayout;