« get me outta code hell

content: inline generateCommentarySection behavior - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-02-18 17:35:35 -0400
committer(quasar) nebula <qznebula@protonmail.com>2025-03-02 08:23:22 -0400
commiteedd05e6aa40d050851d877a3be90bc5b17dd5f8 (patch)
tree1da6efe75a38e30f095df272ecbc724871e83a60
parentae08fc94a062554c479c4ba6c4367d31dd157a4f (diff)
content: inline generateCommentarySection behavior
-rw-r--r--src/content/dependencies/generateAlbumInfoPage.js35
-rw-r--r--src/content/dependencies/generateCommentarySection.js38
-rw-r--r--src/content/dependencies/generateFlashInfoPage.js39
-rw-r--r--src/content/dependencies/generateTrackInfoPage.js39
4 files changed, 79 insertions, 72 deletions
diff --git a/src/content/dependencies/generateAlbumInfoPage.js b/src/content/dependencies/generateAlbumInfoPage.js
index 242680c5..5a9f9524 100644
--- a/src/content/dependencies/generateAlbumInfoPage.js
+++ b/src/content/dependencies/generateAlbumInfoPage.js
@@ -13,7 +13,7 @@ export default {
     'generateAlbumSocialEmbed',
     'generateAlbumStyleRules',
     'generateAlbumTrackList',
-    'generateCommentarySection',
+    'generateCommentaryEntry',
     'generateContentHeading',
     'generatePageLayout',
     'linkAlbumCommentary',
@@ -78,11 +78,13 @@ export default {
         album,
         album.additionalFiles),
 
-    artistCommentarySection:
-      relation('generateCommentarySection', album.commentary),
+    artistCommentaryEntries:
+      album.commentary
+        .map(entry => relation('generateCommentaryEntry', entry)),
 
-    creditSourcesSection:
-      relation('generateCommentarySection', album.creditSources),
+    creditSourceEntries:
+      album.creditSources
+        .map(entry => relation('generateCommentaryEntry', entry)),
   }),
 
   data: (album) => ({
@@ -196,12 +198,25 @@ export default {
               relations.additionalFilesList,
             ])),
 
-          relations.artistCommentarySection,
+          html.tags([
+            relations.contentHeading.clone()
+              .slots({
+                attributes: {id: 'artist-commentary'},
+                title: language.$('misc.artistCommentary'),
+              }),
 
-          relations.creditSourcesSection.slots({
-            id: 'credit-sources',
-            title: language.$('misc.creditSources'),
-          }),
+            relations.artistCommentaryEntries,
+          ]),
+
+          html.tags([
+            relations.contentHeading.clone()
+              .slots({
+                attributes: {id: 'credit-sources'},
+                title: language.$('misc.creditSources'),
+              }),
+
+            relations.creditSourceEntries,
+          ]),
         ],
 
         navLinkStyle: 'hierarchical',
diff --git a/src/content/dependencies/generateCommentarySection.js b/src/content/dependencies/generateCommentarySection.js
deleted file mode 100644
index 0be81c3b..00000000
--- a/src/content/dependencies/generateCommentarySection.js
+++ /dev/null
@@ -1,38 +0,0 @@
-export default {
-  contentDependencies: [
-    'transformContent',
-    'generateCommentaryEntry',
-    'generateContentHeading',
-  ],
-
-  extraDependencies: ['html', 'language'],
-
-  relations: (relation, entries) => ({
-    heading:
-      relation('generateContentHeading'),
-
-    entries:
-      entries.map(entry =>
-        relation('generateCommentaryEntry', entry)),
-  }),
-
-  slots: {
-    title: {type: 'html', mutable: false},
-    id: {type: 'string', default: 'artist-commentary'},
-  },
-
-  generate: (relations, slots, {html, language}) =>
-    html.tags([
-      relations.heading
-        .slots({
-          title:
-            (html.isBlank(slots.title)
-              ? language.$('misc.artistCommentary')
-              : slots.title),
-
-          attributes: {id: slots.id},
-        }),
-
-      relations.entries,
-    ]),
-};
diff --git a/src/content/dependencies/generateFlashInfoPage.js b/src/content/dependencies/generateFlashInfoPage.js
index 148925fb..350a0fc5 100644
--- a/src/content/dependencies/generateFlashInfoPage.js
+++ b/src/content/dependencies/generateFlashInfoPage.js
@@ -3,7 +3,7 @@ import {empty} from '#sugar';
 export default {
   contentDependencies: [
     'generateAdditionalNamesBox',
-    'generateCommentarySection',
+    'generateCommentaryEntry',
     'generateContentHeading',
     'generateContributionList',
     'generateFlashActSidebar',
@@ -65,11 +65,13 @@ export default {
     contributorContributionList:
       relation('generateContributionList', flash.contributorContribs),
 
-    artistCommentarySection:
-      relation('generateCommentarySection', flash.commentary),
+    artistCommentaryEntries:
+      flash.commentary
+        .map(entry => relation('generateCommentaryEntry', entry)),
 
-    creditSourcesSection:
-      relation('generateCommentarySection', flash.creditSources),
+    creditSourceEntries:
+      flash.commentary
+        .map(entry => relation('generateCommentaryEntry', entry)),
   }),
 
   data: (_query, flash) => ({
@@ -121,7 +123,7 @@ export default {
             {[html.joinChildren]: html.tag('br')},
 
             language.encapsulate('releaseInfo', capsule => [
-              !html.isBlank(relations.artistCommentarySection) &&
+              !html.isBlank(relations.artistCommentaryEntries) &&
                 language.encapsulate(capsule, 'readCommentary', capsule =>
                   language.$(capsule, {
                     link:
@@ -130,7 +132,7 @@ export default {
                         language.$(capsule, 'link')),
                   })),
 
-              !html.isBlank(relations.creditSourcesSection) &&
+              !html.isBlank(relations.creditSourceEntries) &&
                 language.encapsulate(capsule, 'readCreditSources', capsule =>
                   language.$(capsule, {
                     link:
@@ -165,12 +167,25 @@ export default {
             }),
           ]),
 
-          relations.artistCommentarySection,
+          html.tags([
+            relations.contentHeading.clone()
+              .slots({
+                attributes: {id: 'artist-commentary'},
+                title: language.$('misc.artistCommentary'),
+              }),
 
-          relations.creditSourcesSection.slots({
-            id: 'credit-sources',
-            title: language.$('misc.creditSources'),
-          }),
+            relations.artistCommentaryEntries,
+          ]),
+
+          html.tags([
+            relations.contentHeading.clone()
+              .slots({
+                attributes: {id: 'credit-sources'},
+                title: language.$('misc.creditSources'),
+              }),
+
+            relations.creditSourceEntries,
+          ]),
         ],
 
         navLinkStyle: 'hierarchical',
diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js
index f2e4ab32..f37758fb 100644
--- a/src/content/dependencies/generateTrackInfoPage.js
+++ b/src/content/dependencies/generateTrackInfoPage.js
@@ -6,7 +6,7 @@ export default {
     'generateAlbumSecondaryNav',
     'generateAlbumSidebar',
     'generateAlbumStyleRules',
-    'generateCommentarySection',
+    'generateCommentaryEntry',
     'generateContentHeading',
     'generateContributionList',
     'generatePageLayout',
@@ -116,11 +116,13 @@ export default {
         track.album,
         track.additionalFiles),
 
-    artistCommentarySection:
-      relation('generateCommentarySection', track.commentary),
+    artistCommentaryEntries:
+      track.commentary
+        .map(entry => relation('generateCommentaryEntry', entry)),
 
-    creditSourcesSection:
-      relation('generateCommentarySection', track.creditSources),
+    creditSourceEntries:
+      track.creditSources
+        .map(entry => relation('generateCommentaryEntry', entry)),
   }),
 
   data: (_query, _sprawl, track) => ({
@@ -189,7 +191,7 @@ export default {
                         language.$(capsule, 'link')),
                   })),
 
-              !html.isBlank(relations.artistCommentarySection) &&
+              !html.isBlank(relations.artistCommentaryEntries) &&
                 language.encapsulate(capsule, 'readCommentary', capsule =>
                   language.$(capsule, {
                     link:
@@ -198,7 +200,7 @@ export default {
                         language.$(capsule, 'link')),
                   })),
 
-              !html.isBlank(relations.creditSourcesSection) &&
+              !html.isBlank(relations.creditSourceEntries) &&
                 language.encapsulate(capsule, 'readCreditSources', capsule =>
                   language.$(capsule, {
                     link:
@@ -362,12 +364,25 @@ export default {
             relations.additionalFilesList,
           ]),
 
-          relations.artistCommentarySection,
+          html.tags([
+            relations.contentHeading.clone()
+              .slots({
+                attributes: {id: 'artist-commentary'},
+                title: language.$('misc.artistCommentary'),
+              }),
 
-          relations.creditSourcesSection.slots({
-            id: 'credit-sources',
-            title: language.$('misc.creditSources'),
-          }),
+            relations.artistCommentaryEntries,
+          ]),
+
+          html.tags([
+            relations.contentHeading.clone()
+              .slots({
+                attributes: {id: 'credit-sources'},
+                title: language.$('misc.creditSources'),
+              }),
+
+            relations.creditSourceEntries,
+          ]),
         ],
 
         navLinkStyle: 'hierarchical',