From a1d39a16ab3ed60a9af4ef277fbf5c4a98a84b2d Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Fri, 1 May 2026 18:37:35 -0300 Subject: content: generateListenLineOrList, generateReleaseInfoBlock --- .../dependencies/generateAlbumReleaseInfo.js | 88 ++++++++++------------ 1 file changed, 40 insertions(+), 48 deletions(-) (limited to 'src/content/dependencies/generateAlbumReleaseInfo.js') diff --git a/src/content/dependencies/generateAlbumReleaseInfo.js b/src/content/dependencies/generateAlbumReleaseInfo.js index 4cec4120..38cd1c05 100644 --- a/src/content/dependencies/generateAlbumReleaseInfo.js +++ b/src/content/dependencies/generateAlbumReleaseInfo.js @@ -1,17 +1,16 @@ import {accumulateSum, empty} from '#sugar'; export default { - relations(relation, album) { - const relations = {}; + relations: (relation, album) => ({ + block: + relation('generateReleaseInfoBlock'), - relations.artistContributionsLine = - relation('generateReleaseInfoContributionsLine', album.artistContribs); + artistContributionsLine: + relation('generateReleaseInfoContributionsLine', album.artistContribs), - relations.listenLine = - relation('generateReleaseInfoListenLine', album); - - return relations; - }, + listenLineOrList: + relation('generateListenLineOrList', album), + }), data(album) { const data = {}; @@ -45,44 +44,37 @@ export default { generate: (data, relations, {html, language}) => language.encapsulate('releaseInfo', capsule => html.tags([ - html.tag('p', - {[html.onlyIfContent]: true}, - {[html.joinChildren]: html.tag('br')}, - - [ - relations.artistContributionsLine.slots({ - stringKey: capsule + '.by', - featuringStringKey: capsule + '.by.featuring', - chronologyKind: 'album', - }), - - language.$(capsule, 'released', { - [language.onlyIfOptions]: ['date'], - date: language.formatDate(data.date), - }), - - language.$(capsule, 'duration', { - [language.onlyIfOptions]: ['duration'], - duration: - language.formatDuration(data.duration, { - approximate: data.durationApproximate, - }), - }), - ]), - - html.tag('p', - {[html.onlyIfContent]: true}, - - relations.listenLine.slots({ - context: [ - 'album', - - (data.numTracks === 0 - ? 'albumNoTracks' - : data.numTracks === 1 - ? 'albumOneTrack' - : 'albumMultipleTracks'), - ], - })), + relations.block.slot('items', [ + relations.artistContributionsLine.slots({ + stringKey: capsule + '.by', + featuringStringKey: capsule + '.by.featuring', + chronologyKind: 'album', + }), + + language.$(capsule, 'released', { + [language.onlyIfOptions]: ['date'], + date: language.formatDate(data.date), + }), + + language.$(capsule, 'duration', { + [language.onlyIfOptions]: ['duration'], + duration: + language.formatDuration(data.duration, { + approximate: data.durationApproximate, + }), + }), + ]), + + relations.listenLineOrList.slots({ + context: [ + 'album', + + (data.numTracks === 0 + ? 'albumNoTracks' + : data.numTracks === 1 + ? 'albumOneTrack' + : 'albumMultipleTracks'), + ], + }), ])), }; -- cgit 1.3.0-6-gf8a5