« get me outta code hell

content: generateArtTagInfoPage: misc. updates - 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>2023-10-04 19:57:02 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-02-25 20:03:25 -0400
commit81f9eed9ac7c25bb9dd11a0e0a8c7bda83cd14bc (patch)
treeb02bd76a6ce25ce93d81168b351ee66d536e4e0e /src/content
parent9e1a1d221fd9eb32afc59cc9caf8684fd36ab546 (diff)
content: generateArtTagInfoPage: misc. updates
Diffstat (limited to 'src/content')
-rw-r--r--src/content/dependencies/generateArtTagInfoPage.js70
1 files changed, 61 insertions, 9 deletions
diff --git a/src/content/dependencies/generateArtTagInfoPage.js b/src/content/dependencies/generateArtTagInfoPage.js
index 3576351c..55da4148 100644
--- a/src/content/dependencies/generateArtTagInfoPage.js
+++ b/src/content/dependencies/generateArtTagInfoPage.js
@@ -1,11 +1,12 @@
-import {unique} from '#sugar';
+import {empty, unique} from '#sugar';
 
 export default {
   contentDependencies: [
     'generateArtTagNavLinks',
     'generateContentHeading',
     'generatePageLayout',
-    'linkArtTag',
+    'linkArtTagGallery',
+    'linkArtTagInfo',
     'linkExternal',
     'transformContent',
   ],
@@ -37,17 +38,22 @@ export default {
     description:
       relation('transformContent', artTag.description),
 
+    galleryLink:
+      (empty(query.allThings)
+        ? null
+        : relation('linkArtTagGallery', artTag)),
+
     extraReadingLinks:
       artTag.extraReadingURLs
         .map(url => relation('linkExternal', url)),
 
     directAncestorLinks:
       artTag.directAncestorArtTags
-        .map(artTag => relation('linkArtTag', artTag)),
+        .map(artTag => relation('linkArtTagInfo', artTag)),
 
     directDescendantLinks:
       artTag.directDescendantArtTags
-        .map(artTag => relation('linkArtTag', artTag)),
+        .map(artTag => relation('linkArtTagInfo', artTag)),
   }),
 
   data: (query, sprawl, artTag) => ({
@@ -60,7 +66,13 @@ export default {
     color:
       artTag.color,
 
-    numArtworks:
+    numArtworksIndirectly:
+      query.indirectThings.length,
+
+    numArtworksDirectly:
+      query.directThings.length,
+
+    numArtworksTotal:
       query.allThings.length,
 
     names:
@@ -82,7 +94,7 @@ export default {
       relations.layout.slots({
         title:
           language.$(pageCapsule, 'title', {
-            tag: data.name,
+            tag: language.sanitize(data.name),
           }),
 
         headingMode: 'static',
@@ -90,12 +102,42 @@ export default {
 
         mainContent: [
           html.tag('p',
+            language.encapsulate(pageCapsule, 'featuredIn', capsule =>
+              (data.numArtworksTotal === 0
+                ? language.$(capsule, 'notFeatured')
+
+             : data.numArtworksDirectly === 0
+                ? language.$(capsule, 'indirectlyOnly', {
+                    artworks:
+                      language.countArtworks(data.numArtworksIndirectly, {unit: true}),
+                  })
+
+             : data.numArtworksIndirectly === 0
+                ? language.$(capsule, 'directlyOnly', {
+                    artworks:
+                      language.countArtworks(data.numArtworksDirectly, {unit: true}),
+                  })
+
+                : language.$(capsule, 'directlyAndIndirectly', {
+                    artworksDirectly:
+                      language.countArtworks(data.numArtworksDirectly, {unit: true}),
+
+                    artworksIndirectly:
+                      language.countArtworks(data.numArtworksIndirectly, {unit: false}),
+
+                    artworksTotal:
+                      language.countArtworks(data.numArtworksTotal, {unit: false}),
+                  })))),
+
+          html.tag('p',
             {[html.onlyIfContent]: true},
 
-            language.$('releaseInfo.readMoreOn', {
-              [language.onlyIfOptions]: ['links'],
+            language.$(pageCapsule, 'viewArtGallery', {
+              [language.onlyIfOptions]: ['link'],
 
-              links: language.formatDisjunctionList(relations.extraReadingLinks),
+              link:
+                relations.galleryLink
+                  ?.slot('content', language.$(pageCapsule, 'viewArtGallery.link')),
             })),
 
           html.tag('blockquote',
@@ -104,6 +146,16 @@ export default {
             relations.description
               .slot('mode', 'multiline')),
 
+          html.tag('p',
+            {[html.onlyIfContent]: true},
+
+            language.$(pageCapsule, 'readMoreOn', {
+              [language.onlyIfOptions]: ['links'],
+
+              tag: language.sanitize(data.name),
+              links: language.formatDisjunctionList(relations.extraReadingLinks),
+            })),
+
           html.tags([
             relations.contentHeading.clone()
               .slots({