From 99261a74b1f3298144d8c5c6d676d63ad27a1299 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Fri, 14 Jun 2024 22:10:12 -0300 Subject: content: encapsulate everything --- .../generateTrackListDividedByGroups.js | 104 +++++++++++---------- 1 file changed, 55 insertions(+), 49 deletions(-) (limited to 'src/content/dependencies/generateTrackListDividedByGroups.js') 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), + ], + ])), }; -- cgit 1.3.0-6-gf8a5