0
mirror of https://github.com/valentineus/popov.link.git synced 2025-07-03 16:10:26 +03:00

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.
This commit is contained in:
2025-06-14 11:09:34 +00:00
parent 9777d996d1
commit 3df02c5304
2 changed files with 14 additions and 5 deletions

View File

@ -33,9 +33,11 @@ const data = post.data.pubDate.toISOString();
const schema = blogPostSchema({ const schema = blogPostSchema({
siteUrl: new URL("/", Astro.site).toString(), siteUrl: new URL("/", Astro.site).toString(),
title, title,
description,
slug: post.slug, slug: post.slug,
datePublished: data, datePublished: data,
author, author,
lang,
}); });
--- ---
@ -49,11 +51,9 @@ const schema = blogPostSchema({
<Layout title={title} description={description} lang={lang} schema={schema}> <Layout title={title} description={description} lang={lang} schema={schema}>
<article> <article>
<section> <header>
<h1>{title}</h1> <h1>{title}</h1>
</section>
<section>
<p> <p>
<small> <small>
Posted Posted
@ -63,7 +63,7 @@ const schema = blogPostSchema({
<span>{remarkPluginFrontmatter.minutesRead}</span> <span>{remarkPluginFrontmatter.minutesRead}</span>
</small> </small>
</p> </p>
</section> </header>
<section> <section>
<Content /> <Content />

View File

@ -3,19 +3,28 @@ import type { WithContext, BlogPosting } from "schema-dts";
export type BlogPostSchemaParams = { export type BlogPostSchemaParams = {
readonly siteUrl: string; readonly siteUrl: string;
readonly title: string; readonly title: string;
readonly description: string;
readonly slug: string; readonly slug: string;
readonly datePublished: string; readonly datePublished: string;
readonly author: string; readonly author: string;
readonly lang: string;
}; };
export default ({ siteUrl, title, slug, datePublished, author }: BlogPostSchemaParams): WithContext<BlogPosting> => ({ export default ({ siteUrl, title, description, slug, datePublished, author, lang }: BlogPostSchemaParams): WithContext<BlogPosting> => ({
"@context": "https://schema.org", "@context": "https://schema.org",
"@type": "BlogPosting", "@type": "BlogPosting",
"url": new URL(`/blog/${slug}`, siteUrl).toString(), "url": new URL(`/blog/${slug}`, siteUrl).toString(),
"headline": title, "headline": title,
"description": description,
"datePublished": datePublished, "datePublished": datePublished,
"dateModified": datePublished,
"inLanguage": lang,
"author": { "author": {
"@type": "Person", "@type": "Person",
"name": author, "name": author,
}, },
"mainEntityOfPage": {
"@type": "WebPage",
"@id": new URL(`/blog/${slug}`, siteUrl).toString(),
},
}); });