diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-09-08 19:27:06 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-09-08 19:27:06 -0300 |
commit | 435af33e7e33ff664f6b01d2e02486de1346f20a (patch) | |
tree | 44ad74caf231c670c27e1e432bf069aa6f9e0cf9 /src/content/dependencies/generateArtistCredit.js | |
parent | 27b4de9be0f23e25bdb6eb81e3e48c50cb0d4163 (diff) |
content: transformContent: substitute apply()
Diffstat (limited to 'src/content/dependencies/generateArtistCredit.js')
-rw-r--r-- | src/content/dependencies/generateArtistCredit.js | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/src/content/dependencies/generateArtistCredit.js b/src/content/dependencies/generateArtistCredit.js index 1d6b5dd8..ebc57187 100644 --- a/src/content/dependencies/generateArtistCredit.js +++ b/src/content/dependencies/generateArtistCredit.js @@ -1,4 +1,4 @@ -import {compareArrays, empty} from '#sugar'; +import {compareArrays, empty, stitchArrays} from '#sugar'; export default { contentDependencies: [ @@ -80,6 +80,14 @@ export default { normalContributionAnnotationsDifferFromContext: query.normalContributionAnnotationsDifferFromContext, + normalContributionArtistDirectories: + query.normalContributions + .map(contrib => contrib.artist.directory), + + featuringContributionArtistDirectories: + query.featuringContributions + .map(contrib => contrib.artist.directory), + hasWikiEdits: !empty(query.wikiEditContributions), }), @@ -144,18 +152,31 @@ export default { if (!html.isBlank(relations.formatText)) { formattedArtistList = relations.formatText; + const substituteContrib = ({link, directory}) => ({ + match: {replacerKey: 'artist', replacerValue: directory}, + substitute: link, + + apply(link, node) { + if (node.data.label) { + link.setSlot('content', language.sanitize(node.data.label)); + } + }, + }); + relations.formatText.setSlots({ mode: 'inline', substitute: [ - { - match: { - replacerKey: 'artist', - replacerValue: 'screamcatcher', - }, - substitute: 'YAYAS!', - }, - ], + stitchArrays({ + link: relations.normalContributionLinks, + directory: data.normalContributionArtistDirectories, + }).map(substituteContrib), + + stitchArrays({ + link: relations.featuringContributionLinks, + directory: data.featuringContributionArtistDirectories, + }).map(substituteContrib), + ].flat(), }); } |