From a65e9c845543abcda641f51f4dd8cd77ab50b60d Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 14 Jun 2025 11:47:17 +0000 Subject: feat: enhance blog post and page schema with new properties - Added optional `basedOn` field to blog post schema for better content attribution. - Updated blog post markdown to include `basedOn` reference for improved context. - Refactored page schema to replace deprecated website schema, enhancing structured data representation. - Adjusted 404 and index pages to utilize the new page schema for consistency and SEO improvements. --- src/pages/404.astro | 6 ++++-- src/pages/blog/[...slug].astro | 13 +++++++------ src/pages/index.astro | 6 ++++-- 3 files changed, 15 insertions(+), 10 deletions(-) (limited to 'src/pages') diff --git a/src/pages/404.astro b/src/pages/404.astro index 072c6e7..cb3fca1 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -1,15 +1,17 @@ --- import Layout from "../layouts/BaseLayout.astro"; -import websiteSchema from "../utils/schemas/websiteSchema"; +import pageSchema from "../utils/schemas/pageSchema"; const title = "404 — Page Not Found | Valentin Popov"; const description = "The page you're looking for doesn't exist!"; const lang = "en"; -const schema = websiteSchema({ +const schema = pageSchema({ siteUrl: new URL("/", Astro.site).toString(), + page: "/404", title, description, + lang, }); --- diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index deb98ac..39207dd 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -22,15 +22,16 @@ const post = Astro.props; const { Content, remarkPluginFrontmatter } = await post.render(); -const title = post.data.title; -const description = post.data.description; const author = post.data.author; +const description = post.data.description; +const isBasedOn = post.data.basedOn; const lang = post.data.lang; +const slug = post.slug; +const title = post.data.title; -const formattedDate = dayjs(post.data.datePublished.toString()).format("MMMM DD, YYYY"); -const datePublished = post.data.datePublished.toISOString(); const dateModified = post.data.dateModified?.toISOString(); -const slug = post.slug; +const datePublished = post.data.datePublished.toISOString(); +const formattedDate = dayjs(post.data.datePublished.toString()).format("MMMM DD, YYYY"); const schema = blogPostSchema({ siteUrl: new URL("/", Astro.site).toString(), @@ -41,6 +42,7 @@ const schema = blogPostSchema({ dateModified, author, lang, + isBasedOn, }); --- @@ -61,7 +63,6 @@ const schema = blogPostSchema({ Posted - by {author}  •  {remarkPluginFrontmatter.minutesRead} diff --git a/src/pages/index.astro b/src/pages/index.astro index eaa5298..b72c55a 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,16 +3,18 @@ import Layout from "../layouts/BaseLayout.astro"; import LatestPostsSection from "../components/Sections/LatestPosts.astro"; import SocialLinksSection from "../components/Sections/SocialLinks.astro"; import WelcomeSection from "../components/Sections/Welcome.astro"; -import websiteSchema from "../utils/schemas/websiteSchema"; +import pageSchema from "../utils/schemas/pageSchema"; const title = "Valentin Popov – Software Developer & Team Lead | Tech Insights"; const description = "Blog by Valentin Popov — software developer and team lead writing about code, side projects, digital tools, and fun experiments."; const lang = "en"; -const schema = websiteSchema({ +const schema = pageSchema({ siteUrl: new URL("/", Astro.site).toString(), + page: "/", title, description, + lang, }); --- -- cgit v1.2.3