diff --git a/.gitignore b/.gitignore index cfb4871..263015d 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,8 @@ next-env.d.ts .claude .mcp.json -/archive/* \ No newline at end of file +# documentation +/archive/* +/docs/archive/* +/docs/specs/archive/* +/docs/reports/archive/* \ No newline at end of file diff --git a/app/(marketing)/documentatie/[category]/page.tsx b/app/(marketing)/documentatie/[category]/page.tsx index e678b82..af80399 100644 --- a/app/(marketing)/documentatie/[category]/page.tsx +++ b/app/(marketing)/documentatie/[category]/page.tsx @@ -41,6 +41,72 @@ export async function generateMetadata({ params }: ReleasePageProps) { } } +function ArticleJsonLd({ + title, + description, + releaseDate, + slug, +}: { + title: string + description: string + releaseDate: string + slug: string +}) { + const siteUrl = process.env.NEXT_PUBLIC_APP_URL || 'https://aispeedrun.vercel.app' + + const jsonLd = { + '@context': 'https://schema.org', + '@graph': [ + { + '@type': 'Article', + '@id': `${siteUrl}/documentatie/${slug}#article`, + headline: title, + description: description, + datePublished: releaseDate, + dateModified: releaseDate, + author: { + '@type': 'Person', + name: 'Colin van der Heijden', + url: 'https://ikbenlit.nl', + }, + publisher: { '@id': `${siteUrl}/#organization` }, + mainEntityOfPage: `${siteUrl}/documentatie/${slug}`, + inLanguage: 'nl-NL', + }, + { + '@type': 'BreadcrumbList', + '@id': `${siteUrl}/documentatie/${slug}#breadcrumb`, + itemListElement: [ + { + '@type': 'ListItem', + position: 1, + name: 'Home', + item: siteUrl, + }, + { + '@type': 'ListItem', + position: 2, + name: 'Documentatie', + item: `${siteUrl}/documentatie`, + }, + { + '@type': 'ListItem', + position: 3, + name: title, + }, + ], + }, + ], + } + + return ( +