From 180d3e169b10db5f1837567eca9bf1b2d5542b96 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 31 Jan 2026 23:01:14 -0400 Subject: content, data: MusicVideo.contributorStyle --- .../dependencies/generateMusicVideoContributors.js | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/content/dependencies/generateMusicVideoContributors.js (limited to 'src/content/dependencies/generateMusicVideoContributors.js') diff --git a/src/content/dependencies/generateMusicVideoContributors.js b/src/content/dependencies/generateMusicVideoContributors.js new file mode 100644 index 00000000..055df5cc --- /dev/null +++ b/src/content/dependencies/generateMusicVideoContributors.js @@ -0,0 +1,57 @@ +const contributionSlots = { + showAnnotation: true, + showChronology: true, + chronologyKind: 'musicVideoContribution', +}; + +export default { + relations: (relation, musicVideo) => ({ + artistCredit: + relation('generateArtistCredit', musicVideo.contributorContribs, []), + + contributionLinks: + musicVideo.contributorContribs + .map(contrib => relation('linkContribution', contrib)), + }), + + data: (musicVideo) => ({ + style: + musicVideo.contributorStyle, + }), + + generate: (data, relations, {html, language}) => + language.encapsulate('misc.musicVideo', capsule => + (data.style === 'list' + ? html.tag('p', + {[html.joinChildren]: html.tag('br')}, + {[html.onlyIfContent]: true}, + + [ + html.tags([ + language.$(capsule, 'contributorsList.title'), + ], {[html.onlyIfSiblings]: true}), + + relations.contributionLinks + .map(link => link.slots({...contributionSlots})), + ]) + + : data.style === 'line' + ? html.tag('p', + {[html.onlyIfContent]: true}, + + language.$(capsule, 'contributorsLine', { + [language.onlyIfOptions]: ['credit'], + + credit: + relations.artistCredit.slots({ + normalStringKey: + language.encapsulate(capsule, 'contributorsLine.credit'), + + chunkwrap: false, + + ...contributionSlots, + }), + })) + + : html.blank())), +}; -- cgit 1.3.0-6-gf8a5