From bca25d1eb23c7feef8d6b201635942d649f69ec1 Mon Sep 17 00:00:00 2001 From: Arghya Ghosh <71373838+uiuxarghya@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:35:13 +0530 Subject: [PATCH 1/5] feat(programs): Enhance page with structured data and improve metadata generation --- src/app/programs/[[...slug]]/page.tsx | 46 ++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/src/app/programs/[[...slug]]/page.tsx b/src/app/programs/[[...slug]]/page.tsx index 8b5dbcb4..cd612646 100644 --- a/src/app/programs/[[...slug]]/page.tsx +++ b/src/app/programs/[[...slug]]/page.tsx @@ -1,13 +1,15 @@ import { programsSource } from "@/lib/source"; +import { getMDXComponents } from "@/mdx-components"; +import { createRelativeLink } from "fumadocs-ui/mdx"; import { - DocsPage, DocsBody, DocsDescription, + DocsPage, DocsTitle, } from "fumadocs-ui/page"; +import type { Metadata, ResolvingMetadata } from "next"; import { notFound } from "next/navigation"; -import { createRelativeLink } from "fumadocs-ui/mdx"; -import { getMDXComponents } from "@/mdx-components"; +import { HowTo, WithContext } from "schema-dts"; export default async function Page(props: { params: Promise<{ slug?: string[] }>; @@ -18,6 +20,21 @@ export default async function Page(props: { const MDXContent = page.data.body; + const jsonLd: WithContext = { + "@context": "https://schema.org", + "@type": "HowTo", + name: page.data.title, + description: page.data.description, + provider: { + "@type": "Organization", + name: "Javaistic", + }, + mainEntityOfPage: { + "@type": "WebPage", + "@id": `https://javaistic.vercel.app/programs/${page.path}`, + }, + }; + return ( +