From f61b789661300238460001a91697269a00de7271 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 5 Apr 2023 21:40:46 -0300 Subject: content: generateCoverArtwork --- src/content/dependencies/generateCoverArtwork.js | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/content/dependencies/generateCoverArtwork.js (limited to 'src/content/dependencies/generateCoverArtwork.js') diff --git a/src/content/dependencies/generateCoverArtwork.js b/src/content/dependencies/generateCoverArtwork.js new file mode 100644 index 00000000..62fc3566 --- /dev/null +++ b/src/content/dependencies/generateCoverArtwork.js @@ -0,0 +1,43 @@ +import {empty} from '../../util/sugar.js'; + +export default { + contentDependencies: ['image', 'linkArtTag'], + extraDependencies: ['html', 'language'], + + relations(relation, artTags) { + const relations = {}; + + relations.image = + relation('image', artTags); + + if (artTags) { + relations.tagLinks = + artTags + .filter(tag => !tag.isContentWarning) + .map(tag => relation('linkArtTag', tag)); + } else { + relations.tagLinks = null; + } + + return relations; + }, + + generate(relations, {html, language}) { + return html.template(slot => + html.tag('div', {id: 'cover-art-container'}, [ + relations.image + .slot('path', slot('path')) + .slot('alt', slot('alt')) + .slot('thumb', 'medium') + .slot('id', 'cover-art') + .slot('link', true) + .slot('square', true), + + !empty(relations.tagLinks) && + html.tag('p', + language.$('releaseInfo.artTags.inline', { + tags: language.formatUnitList(relations.tagLinks), + })), + ])); + }, +}; -- cgit 1.3.0-6-gf8a5