« get me outta code hell

content, css: generateAlbumArtInfoBox - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-03-31 17:44:50 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-10 16:02:36 -0300
commit963c84f1bb9fd88cc0873dd6da77da1896c6b5ea (patch)
tree7b6da9b5e2ec6c4d7ca2bc495bc8b7d314da8851 /src/content
parent05c3b2ad399081cac88c8ac7fddf233c01d79e98 (diff)
content, css: generateAlbumArtInfoBox
Diffstat (limited to 'src/content')
-rw-r--r--src/content/dependencies/generateAlbumArtInfoBox.js35
-rw-r--r--src/content/dependencies/generateAlbumInfoPage.js7
2 files changed, 42 insertions, 0 deletions
diff --git a/src/content/dependencies/generateAlbumArtInfoBox.js b/src/content/dependencies/generateAlbumArtInfoBox.js
new file mode 100644
index 00000000..f0bfd1b6
--- /dev/null
+++ b/src/content/dependencies/generateAlbumArtInfoBox.js
@@ -0,0 +1,35 @@
+export default {
+  contentDependencies: ['generateReleaseInfoContributionsLine'],
+  extraDependencies: ['html', 'language'],
+
+  relations: (relation, album) => ({
+    wallpaperArtistContributionsLine:
+      relation('generateReleaseInfoContributionsLine',
+        album.wallpaperArtistContribs),
+
+    bannerArtistContributionsLine:
+      relation('generateReleaseInfoContributionsLine',
+        album.bannerArtistContribs),
+  }),
+
+  generate: (relations, {html, language}) =>
+    language.encapsulate('releaseInfo', capsule =>
+      html.tag('div', {class: 'album-art-info'},
+        {[html.onlyIfContent]: true},
+
+        html.tag('p',
+          {[html.onlyIfContent]: true},
+          {[html.joinChildren]: html.tag('br')},
+
+          [
+            relations.wallpaperArtistContributionsLine.slots({
+              stringKey: capsule + '.wallpaperArtBy',
+              chronologyKind: 'wallpaperArt',
+            }),
+
+            relations.bannerArtistContributionsLine.slots({
+              stringKey: capsule + '.bannerArtBy',
+              chronologyKind: 'bannerArt',
+            }),
+          ]))),
+};
diff --git a/src/content/dependencies/generateAlbumInfoPage.js b/src/content/dependencies/generateAlbumInfoPage.js
index 03ac469d..51329450 100644
--- a/src/content/dependencies/generateAlbumInfoPage.js
+++ b/src/content/dependencies/generateAlbumInfoPage.js
@@ -4,6 +4,7 @@ export default {
   contentDependencies: [
     'generateAdditionalNamesBox',
     'generateAlbumAdditionalFilesList',
+    'generateAlbumArtInfoBox',
     'generateAlbumBanner',
     'generateAlbumCoverArtwork',
     'generateAlbumNavAccent',
@@ -49,6 +50,9 @@ export default {
         ? relation('generateAlbumCoverArtwork', album)
         : null),
 
+    albumArtInfoBox:
+      relation('generateAlbumArtInfoBox', album),
+
     banner:
       (album.hasBannerArt
         ? relation('generateAlbumBanner', album)
@@ -120,6 +124,9 @@ export default {
               })
             : null),
 
+          relations.albumArtInfoBox,
+        ],
+
         mainContent: [
           relations.releaseInfo,