From 05c3b2ad399081cac88c8ac7fddf233c01d79e98 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Mon, 31 Mar 2025 17:43:33 -0300 Subject: content: cover-artwork, cover-art-column --- src/content/dependencies/generateAlbumInfoPage.js | 2 +- src/content/dependencies/generateArtistInfoPage.js | 2 +- src/content/dependencies/generateCoverArtwork.js | 82 ++++++++++------------ src/content/dependencies/generatePageLayout.js | 19 +++-- .../dependencies/generateReferencedArtworksPage.js | 2 +- .../generateReferencingArtworksPage.js | 2 +- src/content/dependencies/generateTrackInfoPage.js | 2 +- 7 files changed, 58 insertions(+), 53 deletions(-) (limited to 'src/content/dependencies') diff --git a/src/content/dependencies/generateAlbumInfoPage.js b/src/content/dependencies/generateAlbumInfoPage.js index 2af461a4..03ac469d 100644 --- a/src/content/dependencies/generateAlbumInfoPage.js +++ b/src/content/dependencies/generateAlbumInfoPage.js @@ -112,7 +112,7 @@ export default { additionalNames: relations.additionalNamesBox, - cover: + coverColumnContent: [ (relations.cover ? relations.cover.slots({ showOriginDetails: true, diff --git a/src/content/dependencies/generateArtistInfoPage.js b/src/content/dependencies/generateArtistInfoPage.js index 0c4e4189..12eaf462 100644 --- a/src/content/dependencies/generateArtistInfoPage.js +++ b/src/content/dependencies/generateArtistInfoPage.js @@ -156,7 +156,7 @@ export default { title: data.name, headingMode: 'sticky', - cover: + coverColumnContent: (relations.cover ? relations.cover.slots({ image: diff --git a/src/content/dependencies/generateCoverArtwork.js b/src/content/dependencies/generateCoverArtwork.js index 06972d6b..58c29830 100644 --- a/src/content/dependencies/generateCoverArtwork.js +++ b/src/content/dependencies/generateCoverArtwork.js @@ -38,49 +38,43 @@ export default { ? {square: true} : {dimensions: slots.dimensions}); - switch (slots.mode) { - case 'primary': - return html.tags([ - slots.image.slots({ - thumb: 'medium', - reveal: true, - link: true, - - warnings: slots.warnings, - ...sizeSlots, - }), - - slots.details, - ]); - - case 'thumbnail': - return ( - slots.image.slots({ - thumb: 'small', - reveal: false, - link: false, - - warnings: slots.warnings, - ...sizeSlots, - })); - - case 'commentary': - return ( - slots.image.slots({ - thumb: 'medium', - reveal: true, - link: true, - lazy: true, - - warnings: slots.warnings, - ...sizeSlots, - - attributes: - {class: 'commentary-art'}, - })); - - default: - return html.blank(); - } + return ( + html.tag('div', {class: 'cover-artwork'}, + slots.mode === 'commentary' && + {class: 'commentary-art'}, + + (slots.mode === 'primary' + ? [ + slots.image.slots({ + thumb: 'medium', + reveal: true, + link: true, + + warnings: slots.warnings, + ...sizeSlots, + }), + + slots.details, + ] + : slots.mode === 'thumbnail' + ? slots.image.slots({ + thumb: 'small', + reveal: false, + link: false, + + warnings: slots.warnings, + ...sizeSlots, + }) + : slots.mode === 'commentary' + ? slots.image.slots({ + thumb: 'medium', + reveal: true, + link: true, + lazy: true, + + warnings: slots.warnings, + ...sizeSlots, + }) + : html.blank()))); }, }; diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js index 7605c00d..f21aa00d 100644 --- a/src/content/dependencies/generatePageLayout.js +++ b/src/content/dependencies/generatePageLayout.js @@ -93,7 +93,7 @@ export default { mutable: false, }, - cover: { + coverColumnContent: { type: 'html', mutable: false, }, @@ -262,6 +262,17 @@ export default { ? data.canonicalBase + pagePathStringFromRoot : null); + const firstItemInCoverColumn = + html.smooth(slots.coverColumnContent) + .content[0]; + + const primaryCover = + (firstItemInCoverColumn && + html.resolve(firstItemInCoverColumn, {normalize: 'tag'}) + .attributes.has('class', 'cover-artwork') + ? firstItemInCoverColumn + : null); + const titleContentsHTML = (html.isBlank(slots.title) ? null @@ -279,7 +290,7 @@ export default { ? [ relations.stickyHeadingContainer.slots({ title: titleContentsHTML, - cover: slots.cover, + cover: primaryCover, }), relations.stickyHeadingContainer.clone().slots({ @@ -316,9 +327,9 @@ export default { [ titleHTML, - html.tag('div', {id: 'cover-art-container'}, + html.tag('div', {id: 'cover-art-column'}, {[html.onlyIfContent]: true}, - slots.cover), + slots.coverColumnContent), subtitleHTML, diff --git a/src/content/dependencies/generateReferencedArtworksPage.js b/src/content/dependencies/generateReferencedArtworksPage.js index 3d21b15d..cdd0a3c7 100644 --- a/src/content/dependencies/generateReferencedArtworksPage.js +++ b/src/content/dependencies/generateReferencedArtworksPage.js @@ -76,7 +76,7 @@ export default { color: slots.color, styleRules: slots.styleRules, - cover: + coverColumnContent: slots.cover.slot('details', 'artists'), mainClasses: ['top-index'], diff --git a/src/content/dependencies/generateReferencingArtworksPage.js b/src/content/dependencies/generateReferencingArtworksPage.js index 2fe2e93d..b8722725 100644 --- a/src/content/dependencies/generateReferencingArtworksPage.js +++ b/src/content/dependencies/generateReferencingArtworksPage.js @@ -76,7 +76,7 @@ export default { color: slots.color, styleRules: slots.styleRules, - cover: + coverColumnContent: slots.cover.slot('details', 'artists'), mainClasses: ['top-index'], diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js index a2a83d2d..a5e2a476 100644 --- a/src/content/dependencies/generateTrackInfoPage.js +++ b/src/content/dependencies/generateTrackInfoPage.js @@ -141,7 +141,7 @@ export default { color: data.color, styleRules: [relations.albumStyleRules], - cover: + coverColumnContent: (relations.cover ? relations.cover.slots({ showOriginDetails: true, -- cgit 1.3.0-6-gf8a5