From a65e9c845543abcda641f51f4dd8cd77ab50b60d Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 14 Jun 2025 11:47:17 +0000 Subject: feat: enhance blog post and page schema with new properties - Added optional `basedOn` field to blog post schema for better content attribution. - Updated blog post markdown to include `basedOn` reference for improved context. - Refactored page schema to replace deprecated website schema, enhancing structured data representation. - Adjusted 404 and index pages to utilize the new page schema for consistency and SEO improvements. --- src/utils/schemas/pageSchema.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/utils/schemas/pageSchema.ts (limited to 'src/utils/schemas/pageSchema.ts') diff --git a/src/utils/schemas/pageSchema.ts b/src/utils/schemas/pageSchema.ts new file mode 100644 index 0000000..606488b --- /dev/null +++ b/src/utils/schemas/pageSchema.ts @@ -0,0 +1,23 @@ +import type { WithContext, WebPage } from "schema-dts"; + +export type WebsiteSchemaParams = { + readonly description: string; + readonly page: string; + readonly siteUrl: string; + readonly title: string; + readonly lang: string; +}; + +export default ({ siteUrl, page, title, description, lang }: WebsiteSchemaParams): WithContext => ({ + "@context": "https://schema.org", + "@type": "WebPage", + "@id": new URL(page, siteUrl).toString(), + "url": new URL(page, siteUrl).toString(), + "name": title, + "description": description, + "inLanguage": lang, + "mainEntity": { + "@type": "WebSite", + "@id": new URL("/", siteUrl).toString(), + }, +}); -- cgit v1.2.3