« get me outta code hell

content: cover-artwork, cover-art-column - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generatePageLayout.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-03-31 17:43:33 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-10 16:02:36 -0300
commit05c3b2ad399081cac88c8ac7fddf233c01d79e98 (patch)
tree02b05c6247fbe6122b457985abc5de7e491a4ed2 /src/content/dependencies/generatePageLayout.js
parent015989924eadd401ae5932d634109a2f6b801666 (diff)
content: cover-artwork, cover-art-column
Diffstat (limited to 'src/content/dependencies/generatePageLayout.js')
-rw-r--r--src/content/dependencies/generatePageLayout.js19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js
index 7605c00d..f21aa00d 100644
--- a/src/content/dependencies/generatePageLayout.js
+++ b/src/content/dependencies/generatePageLayout.js
@@ -93,7 +93,7 @@ export default {
       mutable: false,
     },
 
-    cover: {
+    coverColumnContent: {
       type: 'html',
       mutable: false,
     },
@@ -262,6 +262,17 @@ export default {
         ? data.canonicalBase + pagePathStringFromRoot
         : null);
 
+    const firstItemInCoverColumn =
+      html.smooth(slots.coverColumnContent)
+        .content[0];
+
+    const primaryCover =
+      (firstItemInCoverColumn &&
+       html.resolve(firstItemInCoverColumn, {normalize: 'tag'})
+         .attributes.has('class', 'cover-artwork')
+        ? firstItemInCoverColumn
+        : null);
+
     const titleContentsHTML =
       (html.isBlank(slots.title)
         ? null
@@ -279,7 +290,7 @@ export default {
         ? [
             relations.stickyHeadingContainer.slots({
               title: titleContentsHTML,
-              cover: slots.cover,
+              cover: primaryCover,
             }),
 
             relations.stickyHeadingContainer.clone().slots({
@@ -316,9 +327,9 @@ export default {
         [
           titleHTML,
 
-          html.tag('div', {id: 'cover-art-container'},
+          html.tag('div', {id: 'cover-art-column'},
             {[html.onlyIfContent]: true},
-            slots.cover),
+            slots.coverColumnContent),
 
           subtitleHTML,