« 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/generateTrackInfoPage.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateTrackInfoPage.js')
-rw-r--r--src/content/dependencies/generateTrackInfoPage.js142
1 files changed, 47 insertions, 95 deletions
diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js
index 5dce680b..daba1ead 100644
--- a/src/content/dependencies/generateTrackInfoPage.js
+++ b/src/content/dependencies/generateTrackInfoPage.js
@@ -76,6 +76,9 @@ export default {
     contentHeading:
       relation('generateContentHeading'),
 
+    relationsContentHeading:
+      relation('generateRelationsContentHeading', 'track', track),
+
     name:
       relation('generateName', track),
 
@@ -237,11 +240,10 @@ export default {
             relations.otherReleasesLine),
 
           html.tags([
-            relations.contentHeading.clone()
-              .slots({
-                attributes: {id: 'contributors'},
-                title: language.$('releaseInfo.contributors'),
-              }),
+            relations.contentHeading.clone().slots({
+              attributes: {id: 'contributors'},
+              title: language.$('releaseInfo.contributors'),
+            }),
 
             relations.contributorContributionList.slots({
               chronologyKind: 'trackContribution',
@@ -249,99 +251,52 @@ export default {
           ]),
 
           html.tags([
-            language.encapsulate('releaseInfo.tracksReferenced', capsule =>
-              relations.contentHeading.clone()
-                .slots({
-                  attributes: {id: 'references'},
-
-                  title:
-                    language.$(capsule, {
-                      track:
-                        html.tag('i', data.name),
-                    }),
-
-                  stickyTitle:
-                    language.$(capsule, 'sticky'),
-                })),
+            relations.relationsContentHeading.clone().slots({
+              attributes: {id: 'references'},
+              string: 'releaseInfo.tracksReferenced',
+            }),
 
             relations.referencedTracksList,
           ]),
 
           html.tags([
-            language.encapsulate('releaseInfo.tracksSampled', capsule =>
-              relations.contentHeading.clone()
-                .slots({
-                  attributes: {id: 'samples'},
-
-                  title:
-                    language.$(capsule, {
-                      track:
-                        html.tag('i', data.name),
-                    }),
-
-                  stickyTitle:
-                    language.$(capsule, 'sticky'),
-                })),
+            relations.relationsContentHeading.clone().slots({
+              attributes: {id: 'samples'},
+              string: 'releaseInfo.tracksSampled',
+            }),
 
             relations.sampledTracksList,
           ]),
 
           language.encapsulate('releaseInfo.tracksThatReference', capsule =>
             html.tags([
-              relations.contentHeading.clone()
-                .slots({
-                  attributes: {id: 'referenced-by'},
-
-                  title:
-                    language.$(capsule, {
-                      track: html.tag('i', data.name),
-                    }),
-
-                  stickyTitle:
-                    language.$(capsule, 'sticky'),
-                }),
-
-              relations.referencedByTracksList
-                .slots({
-                  headingString: capsule,
-                }),
+              relations.relationsContentHeading.clone().slots({
+                attributes: {id: 'referenced-by'},
+                string: capsule,
+              }),
+
+              relations.referencedByTracksList.slots({
+                headingString: capsule,
+              }),
             ])),
 
           language.encapsulate('releaseInfo.tracksThatSample', capsule =>
             html.tags([
-              relations.contentHeading.clone()
-                .slots({
-                  attributes: {id: 'sampled-by'},
-
-                  title:
-                    language.$(capsule, {
-                      track: html.tag('i', data.name),
-                    }),
-
-                  stickyTitle:
-                    language.$(capsule, 'sticky'),
-                }),
-
-              relations.sampledByTracksList
-                .slots({
-                  headingString: capsule,
-                }),
+              relations.relationsContentHeading.clone().slots({
+                attributes: {id: 'sampled-by'},
+                string: capsule,
+              }),
+
+              relations.sampledByTracksList.slots({
+                headingString: capsule,
+              }),
             ])),
 
           html.tags([
-            language.encapsulate('releaseInfo.flashesThatFeature', capsule =>
-              relations.contentHeading.clone()
-                .slots({
-                  attributes: {id: 'featured-in'},
-
-                  title:
-                    language.$(capsule, {
-                      track: html.tag('i', data.name),
-                    }),
-
-                  stickyTitle:
-                    language.$(capsule, 'sticky'),
-                })),
+            relations.relationsContentHeading.clone().slots({
+              attributes: {id: 'featured-in'},
+              string: 'releaseInfo.flashesThatFeature',
+            }),
 
             relations.flashesThatFeatureList,
           ]),
@@ -368,31 +323,28 @@ export default {
           relations.lyricsSection,
 
           html.tags([
-            relations.contentHeading.clone()
-              .slots({
-                attributes: {id: 'sheet-music-files'},
-                title: language.$('releaseInfo.sheetMusicFiles.heading'),
-              }),
+            relations.contentHeading.clone().slots({
+              attributes: {id: 'sheet-music-files'},
+              title: language.$('releaseInfo.sheetMusicFiles.heading'),
+            }),
 
             relations.sheetMusicFilesList,
           ]),
 
           html.tags([
-            relations.contentHeading.clone()
-              .slots({
-                attributes: {id: 'midi-project-files'},
-                title: language.$('releaseInfo.midiProjectFiles.heading'),
-              }),
+            relations.contentHeading.clone().slots({
+              attributes: {id: 'midi-project-files'},
+              title: language.$('releaseInfo.midiProjectFiles.heading'),
+            }),
 
             relations.midiProjectFilesList,
           ]),
 
           html.tags([
-            relations.contentHeading.clone()
-              .slots({
-                attributes: {id: 'additional-files'},
-                title: language.$('releaseInfo.additionalFiles.heading'),
-              }),
+            relations.contentHeading.clone().slots({
+              attributes: {id: 'additional-files'},
+              title: language.$('releaseInfo.additionalFiles.heading'),
+            }),
 
             relations.additionalFilesList,
           ]),