« get me outta code hell

content: generatePageLayout: fix primaryCover detection - 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-04-23 05:50:19 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-04-23 05:50:19 -0300
commitc576ac447a5b23a104259a8fab7f55adc2ebc62c (patch)
tree6740959045c0770314d86eab037b4a6829227969 /src/content
parentdb1123d9dd79317fb71d6a6abdbaf6efb00e5c7d (diff)
content: generatePageLayout: fix primaryCover detection
Diffstat (limited to 'src/content')
-rw-r--r--src/content/dependencies/generatePageLayout.js28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js
index 0acf401c..8dad97e0 100644
--- a/src/content/dependencies/generatePageLayout.js
+++ b/src/content/dependencies/generatePageLayout.js
@@ -262,16 +262,24 @@ export default {
         ? data.canonicalBase + pagePathStringFromRoot
         : null);
 
-    const firstItemInArtworkColumn =
-      html.smooth(slots.artworkColumnContent)
-        .content[0];
-
-    const primaryCover =
-      (firstItemInArtworkColumn &&
-       html.resolve(firstItemInArtworkColumn, {normalize: 'tag'})
-         .attributes.has('class', 'cover-artwork')
-        ? firstItemInArtworkColumn
-        : null);
+    const primaryCover = (() => {
+      const apparentFirst = tag => html.smooth(tag).content[0];
+
+      const maybeTemplate =
+        apparentFirst(slots.artworkColumnContent);
+
+      const maybeTemplateContent =
+        html.resolve(maybeTemplate, {normalize: 'tag'});
+
+      const maybeCoverArtwork =
+        apparentFirst(maybeTemplateContent);
+
+      if (maybeCoverArtwork.attributes.has('class', 'cover-artwork')) {
+        return maybeTemplate;
+      } else {
+        return null;
+      }
+    })();
 
     const titleContentsHTML =
       (html.isBlank(slots.title)