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({
 | 
					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