« get me outta code hell

content: listTracksNeedingLyrics - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-08-23 15:23:43 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-08-23 15:23:43 -0300
commite95166f08080ec370a482786c3c60bea5c8eb3ea (patch)
tree5fa58383c8acb5acadc5f82f24d9511440ed0b36 /src
parent1efbd6a6fe303e8c6f106053d12fc21b1e8d7b52 (diff)
content: listTracksNeedingLyrics
Diffstat (limited to 'src')
-rw-r--r--src/content/dependencies/listTracksNeedingLyrics.js9
-rw-r--r--src/listing-spec.js8
-rw-r--r--src/strings-default.yaml17
3 files changed, 34 insertions, 0 deletions
diff --git a/src/content/dependencies/listTracksNeedingLyrics.js b/src/content/dependencies/listTracksNeedingLyrics.js
new file mode 100644
index 00000000..655bf2a0
--- /dev/null
+++ b/src/content/dependencies/listTracksNeedingLyrics.js
@@ -0,0 +1,9 @@
+export default {
+  contentDependencies: ['listTracksWithExtra'],
+
+  relations: (relation, spec) =>
+    ({page: relation('listTracksWithExtra', spec, 'needsLyrics', 'truthy')}),
+
+  generate: (relations) =>
+    relations.page,
+};
diff --git a/src/listing-spec.js b/src/listing-spec.js
index 142c5976..a47bd38c 100644
--- a/src/listing-spec.js
+++ b/src/listing-spec.js
@@ -178,6 +178,7 @@ listingSpec.push({
   directory: 'tracks/with-lyrics',
   stringsKey: 'listTracks.withLyrics',
   contentFunction: 'listTracksWithLyrics',
+  seeAlso: ['tracks/needing-lyrics'],
 });
 
 listingSpec.push({
@@ -195,6 +196,13 @@ listingSpec.push({
 });
 
 listingSpec.push({
+  directory: 'tracks/needing-lyrics',
+  stringsKey: 'listTracks.needingLyrics',
+  contentFunction: 'listTracksNeedingLyrics',
+  seeAlso: ['tracks/with-lyrics'],
+});
+
+listingSpec.push({
   directory: 'tags/by-name',
   stringsKey: 'listArtTags.byName',
   contentFunction: 'listArtTagsByName',
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index 3e07382f..fa884848 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -2332,6 +2332,23 @@ listingPage:
         title.withDate: "{ALBUM} ({DATE})"
         item: "{TRACK}"
 
+    # listTracks.needingLyrics:
+    #   List tracks, chunked by album (which are sorted by date,
+    #   falling back alphabetically) and in their usual track order,
+    #   displaying only tracks which are marked as needing lyrics.
+    #   The chunk titles also display the date each album was released,
+    #   and tracks' own custom "Date First Released" fields are totally
+    #   ignored.
+
+    needingLyrics:
+      title: "Tracks - which need Lyrics"
+      title.short: "...which need Lyrics"
+
+      chunk:
+        title: "{ALBUM}"
+        title.withDate: "{ALBUM} ({DATE})"
+        item: "{TRACK}"
+
   other:
 
     # other.allSheetMusic: