diff options
| author | Valentin Popov <valentin@popov.link> | 2025-06-14 14:09:34 +0300 | 
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2025-06-14 14:09:34 +0300 | 
| commit | 3df02c5304b8faee540694b15041ad2ee43bc1b2 (patch) | |
| tree | f5bfae6d5096cfddb96ac76ecfd63d4dd45ff91b | |
| parent | 9777d996d172755472dd8127ff9b7a3c579cf454 (diff) | |
| download | popov.link-3df02c5304b8faee540694b15041ad2ee43bc1b2.tar.xz popov.link-3df02c5304b8faee540694b15041ad2ee43bc1b2.zip | |
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.
| -rw-r--r-- | src/pages/blog/[...slug].astro | 8 | ||||
| -rw-r--r-- | 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({  <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 /> 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<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(), +	},  }); | 
