« get me outta code hell

data: AAAAAAAAAAAAAAAA sort dates nicely, sort name detail - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/common-util
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-06-01 23:36:39 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-06-01 23:36:57 -0300
commit8ff3d7ed83b45817bce192945884c6f813343557 (patch)
tree8a20b10e5df0c5168d7ff1d5c5558aa65817f2fd /src/common-util
parentd2f7ef2686a06eb72721b500109d432d22e64513 (diff)
data: AAAAAAAAAAAAAAAA sort dates nicely, sort name detail preview
Diffstat (limited to 'src/common-util')
-rw-r--r--src/common-util/sort.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/common-util/sort.js b/src/common-util/sort.js
index b87ef500..d89fa4cc 100644
--- a/src/common-util/sort.js
+++ b/src/common-util/sort.js
@@ -40,11 +40,15 @@ export function normalizeName(s) {
   // punctuation, with a single typical space, then trim the ends.
   s = s
     .replace(
-      /[\p{Separator}\p{Dash_Punctuation}\p{Connector_Punctuation}]+/gu,
+      /[/\p{Separator}\p{Dash_Punctuation}\p{Connector_Punctuation}]+/gu,
       ' '
     )
     .trim();
 
+  // Zero-prefix sequences of digits (bounded by only select characters),
+  // so lesser-value numbers precede greater.
+  s = s.replace(/(?<=[ ({\[<]|^)\d+(?=[ )}\]>]|$)/g, match => match.padStart(5, '0'));
+
   // Discard anything that isn't a letter, number, space, or apostrophe.
   s = s.replace(/[^\p{Letter}\p{Number} ']/gu, '').trim();