« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/content/dependencies/generateArtistInfoPage.js20
-rw-r--r--src/content/dependencies/generateGroupInfoPage.js20
-rw-r--r--src/strings-default.yaml8
3 files changed, 48 insertions, 0 deletions
diff --git a/src/content/dependencies/generateArtistInfoPage.js b/src/content/dependencies/generateArtistInfoPage.js
index f2fdc5b6..52f3e221 100644
--- a/src/content/dependencies/generateArtistInfoPage.js
+++ b/src/content/dependencies/generateArtistInfoPage.js
@@ -13,6 +13,7 @@ export default {
     'generatePageLayout',
     'linkArtistGallery',
     'linkExternal',
+    'linkGroup',
     'transformContent',
   ],
 
@@ -68,6 +69,10 @@ export default {
     contextNotes:
       relation('transformContent', artist.contextNotes),
 
+    closeGroupLinks:
+      artist.closelyLinkedGroups
+        .map(group => relation('linkGroup', group)),
+
     visitLinks:
       artist.urls
         .map(url => relation('linkExternal', url)),
@@ -149,6 +154,21 @@ export default {
           html.tag('p',
             {[html.onlyIfContent]: true},
 
+            language.encapsulate(pageCapsule, 'closelyLinkedGroups', capsule =>
+              (relations.closeGroupLinks.length === 0
+                ? html.blank()
+             : relations.closeGroupLinks.length === 1
+                ? language.$(capsule, 'one', {
+                    group: relations.closeGroupLinks,
+                  })
+                : language.$(capsule, 'multiple', {
+                    groups:
+                      language.formatUnitList(relations.closeGroupLinks),
+                  })))),
+
+          html.tag('p',
+            {[html.onlyIfContent]: true},
+
             language.$('releaseInfo.visitOn', {
               [language.onlyIfOptions]: ['links'],
 
diff --git a/src/content/dependencies/generateGroupInfoPage.js b/src/content/dependencies/generateGroupInfoPage.js
index 87f35656..31f43208 100644
--- a/src/content/dependencies/generateGroupInfoPage.js
+++ b/src/content/dependencies/generateGroupInfoPage.js
@@ -5,6 +5,7 @@ export default {
     'generateGroupSecondaryNav',
     'generateGroupSidebar',
     'generatePageLayout',
+    'linkArtist',
     'linkExternal',
     'transformContent',
   ],
@@ -33,6 +34,10 @@ export default {
         ? relation('generateGroupSidebar', group)
         : null),
 
+    closeArtistLinks:
+      group.closelyLinkedArtists
+        .map(artist => relation('linkArtist', artist)),
+
     visitLinks:
       group.urls
         .map(url => relation('linkExternal', url)),
@@ -63,6 +68,21 @@ export default {
           html.tag('p',
             {[html.onlyIfContent]: true},
 
+            language.encapsulate(pageCapsule, 'closelyLinkedArtists', capsule =>
+              (relations.closeArtistLinks.length === 0
+                ? html.blank()
+             : relations.closeArtistLinks.length === 1
+                ? language.$(capsule, 'one', {
+                    artist: relations.closeArtistLinks,
+                  })
+                : language.$(capsule, 'multiple', {
+                    artists:
+                      language.formatUnitList(relations.closeArtistLinks),
+                  })))),
+
+          html.tag('p',
+            {[html.onlyIfContent]: true},
+
             language.$('releaseInfo.visitOn', {
               [language.onlyIfOptions]: ['links'],
 
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index 5838aa7d..7d85bf15 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -1073,6 +1073,10 @@ artistPage:
   nav:
     artist: "Artist: {ARTIST}"
 
+  closelyLinkedGroups:
+    one: "This artist has a group page: {GROUP}."
+    multiple: "This artist has group pages: {GROUPS}."
+
   creditList:
 
     # album:
@@ -1306,6 +1310,10 @@ groupPage:
 groupInfoPage:
   title: "{GROUP}"
 
+  closelyLinkedArtists:
+    one: "View artist page: {ARTIST}."
+    multiple: "View artist pages: {ARTISTS}."
+
   viewAlbumGallery:
     _: >-
       View {LINK}! Or browse the list: