diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-11-19 13:25:22 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-11-19 13:25:22 -0400 |
commit | 7cb88275fd3c813114271c0a136b12c72c5a172a (patch) | |
tree | b3b007e73c4681e206162362f5d9a8b99b6762d7 /src/content/dependencies/generateCoverArtworkArtistDetails.js | |
parent | 943cb8d05f5ef8572edfa081fb9912107769241a (diff) |
content: decompose generateCoverArtwork
No visual/site changes yet. This involves introducing an unfortunate mega-hack in generateStickyHeadingContainer, which sets slots on cover artworks. Very scary. Oooooo Otherwise, all cover artwork code is much more compositional. Pass-through slots (`image`) are removed in generateCoverArtwork and a partially-formed `image` slot is accepted instead.
Diffstat (limited to 'src/content/dependencies/generateCoverArtworkArtistDetails.js')
-rw-r--r-- | src/content/dependencies/generateCoverArtworkArtistDetails.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/content/dependencies/generateCoverArtworkArtistDetails.js b/src/content/dependencies/generateCoverArtworkArtistDetails.js new file mode 100644 index 00000000..5b235353 --- /dev/null +++ b/src/content/dependencies/generateCoverArtworkArtistDetails.js @@ -0,0 +1,23 @@ +export default { + contentDependencies: ['linkArtistGallery'], + extraDependencies: ['html', 'language'], + + relations: (relation, contributions) => ({ + artistLinks: + contributions + .map(contrib => contrib.artist) + .map(artist => + relation('linkArtistGallery', artist)), + }), + + generate: (relations, {html, language}) => + html.tag('p', {class: 'image-details'}, + {[html.onlyIfContent]: true}, + + {class: 'illustrator-details'}, + + language.$('misc.coverGrid.details.coverArtists', { + artists: + language.formatConjunctionList(relations.artistLinks), + })), +}; |