« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/misc-templates.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc-templates.js')
-rw-r--r--src/misc-templates.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/misc-templates.js b/src/misc-templates.js
index 5aec92e..ec58398 100644
--- a/src/misc-templates.js
+++ b/src/misc-templates.js
@@ -28,6 +28,40 @@ const MASTODON_DOMAINS = [
     'types.pl',
 ];
 
+// "Additional Files" listing
+
+export function generateAdditionalFilesShortcut(additionalFiles, {language}) {
+    if (!additionalFiles?.length) return '';
+
+    return language.$('releaseInfo.additionalFiles.shortcut', {
+        anchorLink: `<a href="#additional-files">${language.$('releaseInfo.additionalFiles.shortcut.anchorLink')}</a>`,
+        titles: language.formatUnitList(additionalFiles.map(g => g.title))
+    });
+}
+
+export function generateAdditionalFilesList(additionalFiles, {language, linkFile}) {
+    if (!additionalFiles?.length) return '';
+
+    const fileCount = additionalFiles.flatMap(g => g.files).length;
+
+    return fixWS`
+        <p id="additional-files">${language.$('releaseInfo.additionalFiles.heading', {fileCount})}</p>
+        <dl>
+            ${additionalFiles.map(({ title, description, files }) => fixWS`
+                <dt>${(description
+                    ? language.$('releaseInfo.additionalFiles.entry.withDescription', {title, description})
+                    : language.$('releaseInfo.additionalFiles.entry', {title}))}</dt>
+                <dd><ul>
+                    ${files.map(file => `<li>${language.$('releaseInfo.additionalFiles.file', {
+                        file: linkFile(file),
+                        size: '<i>pre-computed size</i>'
+                    })}</li>`).join('\n')}
+                </ul></dd>
+            `).join('\n')}
+        </dl>
+    `;
+}
+
 // Artist strings
 
 export function getArtistString(artists, {