From 5b6bd29c15e7968e62271a02a0465a686835e838 Mon Sep 17 00:00:00 2001 From: KazooTTT Date: Wed, 16 Oct 2024 10:45:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=81=E8=AE=B8tags=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/blog/Hero.astro | 2 +- src/content/config.ts | 2 +- src/pages/tags/[tag]/[...page].astro | 2 +- src/utils/post.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/blog/Hero.astro b/src/components/blog/Hero.astro index 54430a9..af15ebb 100644 --- a/src/components/blog/Hero.astro +++ b/src/components/blog/Hero.astro @@ -76,7 +76,7 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
- {data.tags.map((tag) => ( + {data.tags?.map((tag) => ( new Date(val)), coverImage: z.string().optional(), draft: z.boolean().default(false), - tags: z.array(z.string()).default([]).transform(removeDupsAndLowerCase), + tags: z.array(z.string()).optional().default([]).transform(removeDupsAndLowerCase), ogImage: z.string().optional(), category: z.string().optional().nullable(), finished: z.boolean().default(false) diff --git a/src/pages/tags/[tag]/[...page].astro b/src/pages/tags/[tag]/[...page].astro index d0af14c..1526b07 100644 --- a/src/pages/tags/[tag]/[...page].astro +++ b/src/pages/tags/[tag]/[...page].astro @@ -16,7 +16,7 @@ export const getStaticPaths: GetStaticPaths = async ({ paginate }) => { const uniqueTags = getUniqueTags(allPostsByDate) return uniqueTags.flatMap((tag) => { - const filterPosts = allPostsByDate.filter((post) => post.data.tags.includes(tag)) + const filterPosts = allPostsByDate.filter((post) => post.data.tags?.includes(tag)) return paginate(filterPosts, { pageSize: 50, params: { tag } diff --git a/src/utils/post.ts b/src/utils/post.ts index edda03c..3eca3c4 100644 --- a/src/utils/post.ts +++ b/src/utils/post.ts @@ -18,7 +18,7 @@ export function sortMDByDate(posts: Array>) { /** Note: This function doesn't filter draft posts, pass it the result of getAllPosts above to do so. */ export function getAllTags(posts: Array>) { - return posts.flatMap((post) => [...post.data.tags]) + return posts.flatMap((post) => [...(post.data?.tags ?? [])]) } /** Note: This function doesn't filter draft posts, pass it the result of getAllPosts above to do so. */