From 3df02c5304b8faee540694b15041ad2ee43bc1b2 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 14 Jun 2025 11:09:34 +0000 Subject: feat: enhance blog post schema and structure - Added description and lang parameters to the blogPostSchema for improved structured data. - Updated the blog post layout to include a header section for better semantic structure and accessibility. --- src/pages/blog/[...slug].astro | 8 ++++---- src/utils/schemas/blogPostSchema.ts | 11 ++++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro index 8d5169a..3cfdf31 100644 --- a/src/pages/blog/[...slug].astro +++ b/src/pages/blog/[...slug].astro @@ -33,9 +33,11 @@ const data = post.data.pubDate.toISOString(); const schema = blogPostSchema({ siteUrl: new URL("/", Astro.site).toString(), title, + description, slug: post.slug, datePublished: data, author, + lang, }); --- @@ -49,11 +51,9 @@ const schema = blogPostSchema({
-
+

{title}

-
-

Posted @@ -63,7 +63,7 @@ const schema = blogPostSchema({ {remarkPluginFrontmatter.minutesRead}

-
+
diff --git a/src/utils/schemas/blogPostSchema.ts b/src/utils/schemas/blogPostSchema.ts index b20f248..5393cb1 100644 --- a/src/utils/schemas/blogPostSchema.ts +++ b/src/utils/schemas/blogPostSchema.ts @@ -3,19 +3,28 @@ import type { WithContext, BlogPosting } from "schema-dts"; export type BlogPostSchemaParams = { readonly siteUrl: string; readonly title: string; + readonly description: string; readonly slug: string; readonly datePublished: string; readonly author: string; + readonly lang: string; }; -export default ({ siteUrl, title, slug, datePublished, author }: BlogPostSchemaParams): WithContext => ({ +export default ({ siteUrl, title, description, slug, datePublished, author, lang }: BlogPostSchemaParams): WithContext => ({ "@context": "https://schema.org", "@type": "BlogPosting", "url": new URL(`/blog/${slug}`, siteUrl).toString(), "headline": title, + "description": description, "datePublished": datePublished, + "dateModified": datePublished, + "inLanguage": lang, "author": { "@type": "Person", "name": author, }, + "mainEntityOfPage": { + "@type": "WebPage", + "@id": new URL(`/blog/${slug}`, siteUrl).toString(), + }, }); -- cgit v1.2.3