From 8d03d374f4caec34858806f6d92a20b9d527e347 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Sun, 23 Nov 2025 16:50:46 +0900 Subject: modified recordings/recordings-plain.html --- layouts/recordings/recordings-plain.html | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/layouts/recordings/recordings-plain.html b/layouts/recordings/recordings-plain.html index fcd67ff..2617888 100644 --- a/layouts/recordings/recordings-plain.html +++ b/layouts/recordings/recordings-plain.html @@ -624,13 +624,34 @@ // 날짜별로 그룹을 처리하되, 원래 순서를 유지하면서 같은 날짜 내에서만 재정렬 const dateKeys = Object.keys(groupedByDate).sort().reverse(); + + // 자연 정렬 함수 (숫자 부분을 숫자로 비교) + const naturalCompare = (a, b) => { + const partsA = a.split(/(\d+)/); + const partsB = b.split(/(\d+)/); + const maxLen = Math.max(partsA.length, partsB.length); + for (let i = 0; i < maxLen; i++) { + const partA = partsA[i] || ''; + const partB = partsB[i] || ''; + const numA = parseInt(partA, 10); + const numB = parseInt(partB, 10); + if (!isNaN(numA) && !isNaN(numB)) { + if (numA !== numB) return numB - numA; // 역순이므로 numB - numA + } else { + const cmp = partB.localeCompare(partA); // 역순이므로 partB와 partA 순서 + if (cmp !== 0) return cmp; + } + } + return 0; + }; + dateKeys.forEach(date => { const group = groupedByDate[date]; - // 폴더명 역순 정렬 + // 폴더명 역순 정렬 (자연 정렬 사용) group.sort((a, b) => { const folderA = a.getAttribute('data-folder') || ''; const folderB = b.getAttribute('data-folder') || ''; - return folderB.localeCompare(folderA); + return naturalCompare(folderA, folderB); }); // 그룹 내 첫 항목의 다음 형제를 기준점으로 사용 -- cgit v1.2.3