mirror of
				https://github.com/valentineus/popov.link.git
				synced 2025-11-04 06:49:45 +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({
 | 
			
		||||
	siteUrl: new URL("/", Astro.site).toString(),
 | 
			
		||||
	title,
 | 
			
		||||
	description,
 | 
			
		||||
	slug: post.slug,
 | 
			
		||||
	datePublished: data,
 | 
			
		||||
	author,
 | 
			
		||||
	lang,
 | 
			
		||||
});
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
@@ -49,11 +51,9 @@ const schema = blogPostSchema({
 | 
			
		||||
 | 
			
		||||
<Layout title={title} description={description} lang={lang} schema={schema}>
 | 
			
		||||
	<article>
 | 
			
		||||
		<section>
 | 
			
		||||
		<header>
 | 
			
		||||
			<h1>{title}</h1>
 | 
			
		||||
		</section>
 | 
			
		||||
 | 
			
		||||
		<section>
 | 
			
		||||
			<p>
 | 
			
		||||
				<small>
 | 
			
		||||
					Posted
 | 
			
		||||
@@ -63,7 +63,7 @@ const schema = blogPostSchema({
 | 
			
		||||
					<span>{remarkPluginFrontmatter.minutesRead}</span>
 | 
			
		||||
				</small>
 | 
			
		||||
			</p>
 | 
			
		||||
		</section>
 | 
			
		||||
		</header>
 | 
			
		||||
 | 
			
		||||
		<section>
 | 
			
		||||
			<Content />
 | 
			
		||||
 
 | 
			
		||||
@@ -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<BlogPosting> => ({
 | 
			
		||||
export default ({ siteUrl, title, description, slug, datePublished, author, lang }: BlogPostSchemaParams): WithContext<BlogPosting> => ({
 | 
			
		||||
	"@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(),
 | 
			
		||||
	},
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user