« get me outta code hell

content, data, validators: stub url entries - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/yaml.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-05-01 08:06:52 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-05-01 08:06:52 -0300
commit92d82211fdf3d653b1a5a4d2cfdad5c684e2367d (patch)
tree0822b2122963232988cbac2bd6e4689bb5cd4c32 /src/data/yaml.js
parentdba7bea5c4ef2499c3cc0aee2a3154f6a31ea5b2 (diff)
content, data, validators: stub url entries
Diffstat (limited to 'src/data/yaml.js')
-rw-r--r--src/data/yaml.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/data/yaml.js b/src/data/yaml.js
index 58acb7c8..60017b3d 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -733,6 +733,26 @@ export function parseContributors(entries) {
   });
 }
 
+export function parseURLs(entries) {
+  return parseArrayEntries(entries, item => {
+    if (typeof item === 'object' && item['URL'])
+      return {
+        url: item['URL'],
+        annotation: item['Annotation'] ?? null,
+      };
+
+    if (typeof item !== 'string') return item;
+
+    const match = item.match(extractAccentRegex);
+    if (!match) return item;
+
+    return {
+      url: match.groups.main,
+      annotation: match.groups.accent,
+    };
+  });
+}
+
 export function parseAdditionalFiles(entries, {subdoc, AdditionalFile}) {
   return parseArrayEntries(entries, item => {
     if (typeof item !== 'object') return item;