From 11535a9709884bdcc36050d8f57886245c17c03c Mon Sep 17 00:00:00 2001 From: Katsuyuki Karasawa <4ranci0ne@gmail.com> Date: Thu, 1 May 2025 02:24:53 +0900 Subject: [PATCH] Fix category with reserved character (#431) * fix: Encode category in URLs to handle reserved characters * fix: Encode category names in static paths to handle reserved characters --- src/components/PostMeta.astro | 2 +- src/pages/archive/category/[category].astro | 4 ++-- src/utils/url-utils.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/PostMeta.astro b/src/components/PostMeta.astro index b915d03..85fc51a 100644 --- a/src/components/PostMeta.astro +++ b/src/components/PostMeta.astro @@ -53,7 +53,7 @@ const className = Astro.props.class;
- {category || i18n(I18nKey.uncategorized)} diff --git a/src/pages/archive/category/[category].astro b/src/pages/archive/category/[category].astro index 9e6a50f..8972a5d 100644 --- a/src/pages/archive/category/[category].astro +++ b/src/pages/archive/category/[category].astro @@ -10,13 +10,13 @@ export async function getStaticPaths() { return categories.map((category) => { return { params: { - category: category.name, + category: encodeURIComponent(category.name), }, }; }); } -const category = Astro.params.category as string; +const category = decodeURIComponent(Astro.params.category as string); --- diff --git a/src/utils/url-utils.ts b/src/utils/url-utils.ts index 4a6121c..c52060c 100644 --- a/src/utils/url-utils.ts +++ b/src/utils/url-utils.ts @@ -19,7 +19,7 @@ export function getPostUrlBySlug(slug: string): string { export function getCategoryUrl(category: string): string { if (category === i18n(i18nKey.uncategorized)) return url("/archive/category/uncategorized/"); - return url(`/archive/category/${category}/`); + return url(`/archive/category/${encodeURIComponent(category)}/`); } export function getDir(path: string): string {