diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-01-11 10:54:25 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-01-11 10:54:25 -0400 |
| commit | 8537d590ce070ef72317188e3b13a89b13b08d6c (patch) | |
| tree | ced92086f546525ec00a0f0ab8c3927055102797 /src/content/dependencies/generateArtistInfoPageTracksChunk.js | |
| parent | 578913e3b4fe95bc6589e0426c48843979bdad5e (diff) | |
content: gAIPTracksChunk{,Item}: album & track credits
Diffstat (limited to 'src/content/dependencies/generateArtistInfoPageTracksChunk.js')
| -rw-r--r-- | src/content/dependencies/generateArtistInfoPageTracksChunk.js | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/content/dependencies/generateArtistInfoPageTracksChunk.js b/src/content/dependencies/generateArtistInfoPageTracksChunk.js index d964c5de..ce8b284b 100644 --- a/src/content/dependencies/generateArtistInfoPageTracksChunk.js +++ b/src/content/dependencies/generateArtistInfoPageTracksChunk.js @@ -26,6 +26,9 @@ export default { albumLink: relation('linkAlbum', album), + albumArtistCredit: + relation('generateArtistCredit', album.artistContribs, []), + itemsCountingTowardTotals: query.contribListsCountingTowardTotals.map(trackContribs => relation('generateArtistInfoPageTracksChunkItem', @@ -91,10 +94,28 @@ export default { return data; }, - generate: (data, relations, {html}) => + generate: (data, relations, {html, language}) => relations.template.slots({ mode: 'album', - link: relations.albumLink, + + link: + language.encapsulate('artistPage.creditList.album', workingCapsule => { + const creditCapsule = workingCapsule + '.credit'; + const workingOptions = {album: relations.albumLink}; + + relations.albumArtistCredit.setSlots({ + normalStringKey: creditCapsule + '.by', + }); + + if (!html.isBlank(relations.albumArtistCredit)) { + workingCapsule += '.withCredit'; + workingOptions.credit = + html.tag('span', {class: 'by'}, + relations.albumArtistCredit); + } + + return language.$(workingCapsule, workingOptions); + }), dates: data.dates, duration: data.duration, |