Fix tag URL encoding for non-ASCII characters
Updated getTagSlug() to properly encode tags with spaces and non-ASCII characters (like Chinese). The function now: - Normalizes multiple spaces/dashes to single dashes - Properly encodes non-ASCII characters using encodeURIComponent - Prevents issues with URL encoding on Vercel deployment This fixes tags like "Medicine - 醫學" being displayed as "medicine---%E9%86%AB%E5%AD%B8" by generating clean URLs like "medicine-%E9%86%AB%E5%AD%B8". 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -27,7 +27,14 @@ export function getPageBySlug(slug: string): Page | undefined {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getTagSlug(tag: string): string {
|
export function getTagSlug(tag: string): string {
|
||||||
return tag.toLowerCase().replace(/\s+/g, '-');
|
// Normalize spaces and convert to lowercase first
|
||||||
|
// Replace multiple spaces/dashes with single dash
|
||||||
|
const normalized = tag
|
||||||
|
.toLowerCase()
|
||||||
|
.replace(/\s+/g, '-')
|
||||||
|
.replace(/-+/g, '-');
|
||||||
|
// Encode URI components to handle non-ASCII characters properly
|
||||||
|
return encodeURIComponent(normalized);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getAllTagsWithCount(): { tag: string; slug: string; count: number }[] {
|
export function getAllTagsWithCount(): { tag: string; slug: string; count: number }[] {
|
||||||
|
|||||||
Reference in New Issue
Block a user