« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/page/tag.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/page/tag.js')
-rw-r--r--src/page/tag.js144
1 files changed, 66 insertions, 78 deletions
diff --git a/src/page/tag.js b/src/page/tag.js
index 471439d..38f7e21 100644
--- a/src/page/tag.js
+++ b/src/page/tag.js
@@ -1,3 +1,5 @@
+/** @format */
+
 // Art tag page specification.
 
 // Imports
@@ -7,105 +9,91 @@ import fixWS from 'fix-whitespace';
 // Page exports
 
 export function condition({wikiData}) {
-    return wikiData.wikiInfo.enableArtTagUI;
+  return wikiData.wikiInfo.enableArtTagUI;
 }
 
 export function targets({wikiData}) {
-    return wikiData.artTagData.filter(tag => !tag.isContentWarning);
+  return wikiData.artTagData.filter((tag) => !tag.isContentWarning);
 }
 
 export function write(tag, {wikiData}) {
-    const { wikiInfo } = wikiData;
-    const { taggedInThings: things } = tag;
+  const {taggedInThings: things} = tag;
 
-    // Display things featuring this art tag in reverse chronological order,
-    // sticking the most recent additions near the top!
-    const thingsReversed = things.slice().reverse();
+  // Display things featuring this art tag in reverse chronological order,
+  // sticking the most recent additions near the top!
+  const thingsReversed = things.slice().reverse();
 
-    const entries = thingsReversed.map(item => ({item}));
+  const entries = thingsReversed.map((item) => ({item}));
 
-    const page = {
-        type: 'page',
-        path: ['tag', tag.directory],
-        page: ({
-            generatePreviousNextLinks,
-            getAlbumCover,
-            getGridHTML,
-            getThemeString,
-            getTrackCover,
-            link,
-            language,
-            to
-        }) => ({
-            title: language.$('tagPage.title', {tag: tag.name}),
-            theme: getThemeString(tag.color),
+  const page = {
+    type: 'page',
+    path: ['tag', tag.directory],
+    page: ({
+      getAlbumCover,
+      getGridHTML,
+      getThemeString,
+      getTrackCover,
+      link,
+      language,
+    }) => ({
+      title: language.$('tagPage.title', {tag: tag.name}),
+      theme: getThemeString(tag.color),
 
-            main: {
-                classes: ['top-index'],
-                content: fixWS`
+      main: {
+        classes: ['top-index'],
+        content: fixWS`
                     <h1>${language.$('tagPage.title', {tag: tag.name})}</h1>
                     <p class="quick-info">${language.$('tagPage.infoLine', {
-                        coverArts: language.countCoverArts(things.length, {unit: true})
+                      coverArts: language.countCoverArts(things.length, {
+                        unit: true,
+                      }),
                     })}</p>
                     <div class="grid-listing">
                         ${getGridHTML({
-                            entries,
-                            srcFn: thing => (thing.album
-                                ? getTrackCover(thing)
-                                : getAlbumCover(thing)),
-                            linkFn: (thing, opts) => (thing.album
-                                ? link.track(thing, opts)
-                                : link.album(thing, opts))
+                          entries,
+                          srcFn: (thing) =>
+                            thing.album
+                              ? getTrackCover(thing)
+                              : getAlbumCover(thing),
+                          linkFn: (thing, opts) =>
+                            thing.album
+                              ? link.track(thing, opts)
+                              : link.album(thing, opts),
                         })}
                     </div>
-                `
-            },
+                `,
+      },
 
-            nav: generateTagNav(tag, {
-                generatePreviousNextLinks,
-                link,
-                language,
-                wikiData
-            })
-        })
-    };
+      nav: generateTagNav(tag, {
+        link,
+        language,
+        wikiData,
+      }),
+    }),
+  };
 
-    return [page];
+  return [page];
 }
 
 // Utility functions
 
-function generateTagNav(tag, {
-    generatePreviousNextLinks,
-    link,
-    language,
-    wikiData
-}) {
-    const previousNextLinks = generatePreviousNextLinks(tag, {
-        data: wikiData.artTagData.filter(tag => !tag.isContentWarning),
-        linkKey: 'tag'
-    });
-
-    return {
-        linkContainerClasses: ['nav-links-hierarchy'],
-        links: [
-            {toHome: true},
-            wikiData.wikiInfo.enableListings &&
-            {
-                path: ['localized.listingIndex'],
-                title: language.$('listingIndex.title')
-            },
-            {
-                html: language.$('tagPage.nav.tag', {
-                    tag: link.tag(tag, {class: 'current'})
-                })
-            },
-            /*
-            previousNextLinks && {
-                divider: false,
-                html: `(${previousNextLinks})`
-            }
-            */
-        ]
-    };
+function generateTagNav(
+  tag,
+  {link, language, wikiData}
+) {
+  return {
+    linkContainerClasses: ['nav-links-hierarchy'],
+    links: [
+      {toHome: true},
+      wikiData.wikiInfo.enableListings && {
+        path: ['localized.listingIndex'],
+        title: language.$('listingIndex.title'),
+      },
+      {
+        html: language.$('tagPage.nav.tag', {
+          tag: link.tag(tag, {class: 'current'}),
+        }),
+      },
+    ],
+  };
 }