aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/schemas/blogPostSchema.ts4
-rw-r--r--src/utils/schemas/blogSchema.ts2
-rw-r--r--src/utils/schemas/pageSchema.ts23
-rw-r--r--src/utils/schemas/websiteSchema.ts15
4 files changed, 28 insertions, 16 deletions
diff --git a/src/utils/schemas/blogPostSchema.ts b/src/utils/schemas/blogPostSchema.ts
index 00395dd..9445448 100644
--- a/src/utils/schemas/blogPostSchema.ts
+++ b/src/utils/schemas/blogPostSchema.ts
@@ -5,13 +5,14 @@ export type BlogPostSchemaParams = {
readonly dateModified: string;
readonly datePublished: string;
readonly description: string;
+ readonly isBasedOn?: string;
readonly lang: string;
readonly siteUrl: string;
readonly slug: string;
readonly title: string;
};
-export default ({ siteUrl, slug, title, description, datePublished, dateModified, author, lang }: BlogPostSchemaParams): WithContext<BlogPosting> => ({
+export default ({ siteUrl, slug, title, description, datePublished, dateModified, author, lang, isBasedOn }: BlogPostSchemaParams): WithContext<BlogPosting> => ({
"@context": "https://schema.org",
"@type": "BlogPosting",
"url": new URL(`/blog/${slug}`, siteUrl).toString(),
@@ -28,4 +29,5 @@ export default ({ siteUrl, slug, title, description, datePublished, dateModified
"@type": "WebPage",
"@id": new URL(`/blog/${slug}`, siteUrl).toString(),
},
+ ...(isBasedOn && { isBasedOn: isBasedOn }),
});
diff --git a/src/utils/schemas/blogSchema.ts b/src/utils/schemas/blogSchema.ts
index 66a9bae..77f4632 100644
--- a/src/utils/schemas/blogSchema.ts
+++ b/src/utils/schemas/blogSchema.ts
@@ -14,6 +14,8 @@ export default ({ siteUrl, title, posts }: BlogSchemaParams): WithContext<Collec
"name": title,
"mainEntity": {
"@type": "ItemList",
+ "itemListOrder": "https://schema.org/ItemListOrderDescending",
+ "numberOfItems": posts.length,
"itemListElement": posts.map((post, index) => ({
"@type": "ListItem",
"position": index + 1,
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<WebPage> => ({
+ "@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(),
+ },
+});
diff --git a/src/utils/schemas/websiteSchema.ts b/src/utils/schemas/websiteSchema.ts
deleted file mode 100644
index b971e5e..0000000
--- a/src/utils/schemas/websiteSchema.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import type { WithContext, WebSite } from "schema-dts";
-
-export type WebsiteSchemaParams = {
- readonly description: string;
- readonly siteUrl: string;
- readonly title: string;
-};
-
-export default ({ siteUrl, title, description }: WebsiteSchemaParams): WithContext<WebSite> => ({
- "@context": "https://schema.org",
- "@type": "WebSite",
- "url": new URL("/", siteUrl).toString(),
- "name": title,
- "description": description,
-});