« 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/linkThing.js7
-rw-r--r--src/data/things/Track.js12
-rw-r--r--src/static/css/miscellany.css10
3 files changed, 28 insertions, 1 deletions
diff --git a/src/content/dependencies/linkThing.js b/src/content/dependencies/linkThing.js
index 100b3e89..01329d89 100644
--- a/src/content/dependencies/linkThing.js
+++ b/src/content/dependencies/linkThing.js
@@ -26,6 +26,10 @@ export default {
       thing.nameDetailAcrossWiki ??
       null,
 
+    nameDetailIsFromDetail:
+      thing.nameDetailIsFromDetail ??
+      false,
+
     path:
       (pathKey
         ? [pathKey, thing.directory]
@@ -193,6 +197,9 @@ export default {
 
             accent:
               html.tag('span', {class: 'name-detail'},
+                data.nameDetailIsFromDetail &&
+                  {class: 'from-detail'},
+
                 language.$(nameDetailCapsule, 'accent', {
                   detail: data.nameDetail,
                 })),
diff --git a/src/data/things/Track.js b/src/data/things/Track.js
index db5495d7..8af7069e 100644
--- a/src/data/things/Track.js
+++ b/src/data/things/Track.js
@@ -659,7 +659,7 @@ export class Track extends Thing {
       update: {
         validate:
           anyOf(
-            is('album'),
+            is('album', 'section'),
             isString),
       },
     },
@@ -842,6 +842,16 @@ export class Track extends Thing {
       },
     ],
 
+    nameDetailIsFromDetail: {
+      flags: {expose: true},
+      expose: {
+        dependencies: ['_nameDetail'],
+        compute: ({['_nameDetail']: nameDetail}) =>
+          nameDetail === 'album' ||
+          nameDetail === 'section',
+      },
+    },
+
     isMainRelease:
       exposeWhetherDependencyAvailable({
         dependency: 'mainReleaseTrack',
diff --git a/src/static/css/miscellany.css b/src/static/css/miscellany.css
index eb3b1c35..24eeba44 100644
--- a/src/static/css/miscellany.css
+++ b/src/static/css/miscellany.css
@@ -58,6 +58,16 @@
     font-style: normal;
   }
 
+  .main-content-container > :is(ul, dl) {
+    li:has(.name-detail) {
+      padding-right: clamp(40px, 6vw, 60px);
+      .by { display: inline-block; }
+
+      .name-detail:not(.from-detail) { opacity: 0.85; }
+      .name-detail.from-detail { opacity: 0.7; font-size: 0.9em; }
+    }
+  }
+
   .other-group-accent,
   .rerelease-line {
     opacity: 0.7;