aboutsummaryrefslogtreecommitdiff
path: root/src/utils/schemas/blogPostSchema.ts
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2025-06-14 15:08:48 +0300
committerValentin Popov <valentin@popov.link>2025-06-14 15:08:48 +0300
commit0473060773a7acb10a6f11e5e22ec13ddf5650ba (patch)
treeac5f6e309fd5d1562b91c35d8e511df1ac6fd89d /src/utils/schemas/blogPostSchema.ts
parenta65e9c845543abcda641f51f4dd8cd77ab50b60d (diff)
downloadpopov.link-0473060773a7acb10a6f11e5e22ec13ddf5650ba.tar.xz
popov.link-0473060773a7acb10a6f11e5e22ec13ddf5650ba.zip
feat: add configuration and default image for blog posts
- Introduced a new configuration file to centralize author information and default image settings for blog posts. - Added a default image path in the blog post configuration for improved content presentation. - Updated blog post schema to utilize the new configuration for author details, enhancing structured data representation.
Diffstat (limited to 'src/utils/schemas/blogPostSchema.ts')
-rw-r--r--src/utils/schemas/blogPostSchema.ts10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/utils/schemas/blogPostSchema.ts b/src/utils/schemas/blogPostSchema.ts
index 9445448..4bf50f2 100644
--- a/src/utils/schemas/blogPostSchema.ts
+++ b/src/utils/schemas/blogPostSchema.ts
@@ -1,29 +1,33 @@
import type { WithContext, BlogPosting } from "schema-dts";
+import { config } from "../../config";
export type BlogPostSchemaParams = {
- readonly author: string;
readonly dateModified: string;
readonly datePublished: string;
readonly description: string;
readonly isBasedOn?: string;
readonly lang: string;
+ readonly preview?: string;
readonly siteUrl: string;
readonly slug: string;
readonly title: string;
};
-export default ({ siteUrl, slug, title, description, datePublished, dateModified, author, lang, isBasedOn }: BlogPostSchemaParams): WithContext<BlogPosting> => ({
+export default ({ siteUrl, slug, title, description, preview, datePublished, dateModified, lang, isBasedOn }: BlogPostSchemaParams): WithContext<BlogPosting> => ({
"@context": "https://schema.org",
"@type": "BlogPosting",
"url": new URL(`/blog/${slug}`, siteUrl).toString(),
"headline": title,
"description": description,
+ "image": new URL(preview ? preview : config.posts.defaultImage, siteUrl).toString(),
"datePublished": datePublished,
"dateModified": dateModified,
"inLanguage": lang,
"author": {
"@type": "Person",
- "name": author,
+ "name": config.author.name,
+ "url": config.author.url,
+ "sameAs": config.author.sameAs,
},
"mainEntityOfPage": {
"@type": "WebPage",