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:
@ -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 />
|
||||||
|
@ -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(),
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user