« get me outta code hell

write, content: restore & handle redirect titles properly - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-08-08 11:46:44 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-08-08 11:46:44 -0300
commit725482638dcc96632c3a9cf2b885f4128c50a1c1 (patch)
tree238bd34da7762ab50085d7d39f2a63c7921b0e33
parentf65bbab508cebdbaffd188366e983945d73abd4a (diff)
write, content: restore & handle redirect titles properly
-rw-r--r--src/page/album.js1
-rw-r--r--src/page/artist-alias.js2
-rw-r--r--src/page/group.js2
-rw-r--r--src/write/build-modes/live-dev-server.js6
-rw-r--r--src/write/build-modes/static-build.js6
5 files changed, 11 insertions, 6 deletions
diff --git a/src/page/album.js b/src/page/album.js
index 4ed5bcb..3b2d02d 100644
--- a/src/page/album.js
+++ b/src/page/album.js
@@ -68,6 +68,7 @@ export function pathsTargetless({wikiData: {wikiInfo}}) {
         type: 'redirect',
         fromPath: ['page', 'list/all-commentary'],
         toPath: ['commentaryIndex'],
+        title: 'Album Commentary',
       },
   ];
 }
diff --git a/src/page/artist-alias.js b/src/page/artist-alias.js
index 9e9fdf5..23513ce 100644
--- a/src/page/artist-alias.js
+++ b/src/page/artist-alias.js
@@ -15,7 +15,7 @@ export function pathsForTarget(aliasArtist) {
       type: 'redirect',
       fromPath: ['artist', aliasArtist.directory],
       toPath: ['artist', aliasedArtist.directory],
-      title: () => aliasedArtist.name,
+      title: aliasedArtist.name,
     },
   ];
 }
diff --git a/src/page/group.js b/src/page/group.js
index e1ed418..fa6c1c9 100644
--- a/src/page/group.js
+++ b/src/page/group.js
@@ -48,6 +48,7 @@ export function pathsTargetless({wikiData: {wikiInfo}}) {
         type: 'redirect',
         fromPath: ['page', 'albums/fandom'],
         toPath: ['groupGallery', 'fandom'],
+        title: 'Fandom - Gallery',
       },
 
     wikiInfo.canonicalBase === 'https://hsmusic.wiki/' &&
@@ -55,6 +56,7 @@ export function pathsTargetless({wikiData: {wikiInfo}}) {
         type: 'redirect',
         fromPath: ['page', 'albums/official'],
         toPath: ['groupGallery', 'official'],
+        title: 'Official - Gallery',
       },
   ];
 }
diff --git a/src/write/build-modes/live-dev-server.js b/src/write/build-modes/live-dev-server.js
index a87da27..edee326 100644
--- a/src/write/build-modes/live-dev-server.js
+++ b/src/write/build-modes/live-dev-server.js
@@ -321,6 +321,10 @@ export async function go({
 
     try {
       if (page.type === 'redirect') {
+        const title =
+          page.title ??
+          page.getTitle?.({language});
+
         const target = to('localized.' + page.toPath[0], ...page.toPath.slice(1));
 
         response.writeHead(301, {
@@ -328,7 +332,7 @@ export async function go({
           'Location': target,
         });
 
-        const redirectHTML = generateRedirectHTML(page.title, target, {language});
+        const redirectHTML = generateRedirectHTML(title, target, {language});
 
         response.end(redirectHTML);
 
diff --git a/src/write/build-modes/static-build.js b/src/write/build-modes/static-build.js
index dc2bb2c..4f07405 100644
--- a/src/write/build-modes/static-build.js
+++ b/src/write/build-modes/static-build.js
@@ -355,10 +355,8 @@ export async function go({
         });
       }),
 
-      ...redirectWrites.map(({fromPath, toPath, title: titleFn}) => () => {
-        const title = titleFn({
-          language,
-        });
+      ...redirectWrites.map(({fromPath, toPath, title, getTitle}) => () => {
+        title ??= getTitle?.({language});
 
         const to = getURLsFrom({
           baseDirectory,