Merge pull request #475 from alexei-led/fix/handelize-dots-and-case

fix: preserve dots and original case in handelize()
This commit is contained in:
Tobias Lütke 2026-03-28 19:44:40 -04:00 committed by GitHub
commit 2ec3360a8b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1595,7 +1595,6 @@ export function handelize(path: string): string {
const result = path
.replace(/___/g, '/') // Triple underscore becomes folder separator
.toLowerCase()
.split('/')
.map((segment, idx, arr) => {
const isLastSegment = idx === arr.length - 1;
@ -1610,7 +1609,7 @@ export function handelize(path: string): string {
const nameWithoutExt = ext ? segment.slice(0, -ext.length) : segment;
const cleanedName = nameWithoutExt
.replace(/[^\p{L}\p{N}$]+/gu, '-') // Keep route marker "$", dash-separate other chars
.replace(/[^\p{L}\p{N}.$]+/gu, '-') // Keep letters, numbers, dots, "$"; dash-separate rest
.replace(/^-+|-+$/g, ''); // Remove leading/trailing dashes
return cleanedName + ext;