« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateTrackListDividedByGroups.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateTrackListDividedByGroups.js')
-rw-r--r--src/content/dependencies/generateTrackListDividedByGroups.js104
1 files changed, 55 insertions, 49 deletions
diff --git a/src/content/dependencies/generateTrackListDividedByGroups.js b/src/content/dependencies/generateTrackListDividedByGroups.js
index 21dc9ac1..3cba479e 100644
--- a/src/content/dependencies/generateTrackListDividedByGroups.js
+++ b/src/content/dependencies/generateTrackListDividedByGroups.js
@@ -80,53 +80,59 @@ export default {
 
   generate: (data, relations, slots, {html, language}) =>
     relations.flatList ??
-    html.tag('dl', {[html.onlyIfContent]: true}, [
-      stitchArrays({
-        groupName: data.groupNames,
-        groupLink: relations.groupLinks,
-        trackList: relations.groupedTrackLists,
-      }).map(({
-          groupName,
-          groupLink,
-          trackList,
-        }) => [
-          (slots.headingString
-            ? relations.contentHeading.clone().slots({
-                tag: 'dt',
-
-                title:
-                  language.$('trackList.fromGroup', {
-                    group: groupLink
-                  }),
-
-                stickyTitle:
-                  language.$(slots.headingString, 'sticky', 'fromGroup', {
-                    group: groupName,
-                  }),
-              })
-            : html.tag('dt',
-                language.$('trackList.fromGroup', {
-                  group: groupLink
-                }))),
-
-          html.tag('dd', trackList),
-        ]),
-
-      relations.ungroupedTrackList && [
-        (slots.headingString
-          ? relations.contentHeading.clone().slots({
-              tag: 'dt',
-
-              title:
-                language.$('trackList.fromOther'),
-
-              stickyTitle:
-                language.$(slots.headingString, 'sticky', 'fromOther'),
-            })
-          : html.tag('dt',
-              language.$('trackList.fromOther'))),
-
-        html.tag('dd', relations.ungroupedTrackList),
-      ],
-    ]),
+
+    html.tag('dl',
+      {[html.onlyIfContent]: true},
+
+      language.encapsulate('trackList', listCapsule => [
+        stitchArrays({
+          groupName: data.groupNames,
+          groupLink: relations.groupLinks,
+          trackList: relations.groupedTrackLists,
+        }).map(({
+            groupName,
+            groupLink,
+            trackList,
+          }) => [
+            language.encapsulate(listCapsule, 'fromGroup', capsule =>
+              (slots.headingString
+                ? relations.contentHeading.clone().slots({
+                    tag: 'dt',
+
+                    title:
+                      language.$(capsule, {
+                        group: groupLink
+                      }),
+
+                    stickyTitle:
+                      language.$(slots.headingString, 'sticky', 'fromGroup', {
+                        group: groupName,
+                      }),
+                  })
+                : html.tag('dt',
+                    language.$(capsule, {
+                      group: groupLink
+                    })))),
+
+            html.tag('dd', trackList),
+          ]),
+
+        relations.ungroupedTrackList && [
+          language.encapsulate(listCapsule, 'fromOther', capsule =>
+            (slots.headingString
+              ? relations.contentHeading.clone().slots({
+                  tag: 'dt',
+
+                  title:
+                    language.$(capsule),
+
+                  stickyTitle:
+                    language.$(slots.headingString, 'sticky', 'fromOther'),
+                })
+              : html.tag('dt',
+                  language.$(capsule)))),
+
+          html.tag('dd', relations.ungroupedTrackList),
+        ],
+      ])),
 };