diff options
Diffstat (limited to 'src/content/dependencies/generateAlbumInfoPage.js')
-rw-r--r-- | src/content/dependencies/generateAlbumInfoPage.js | 89 |
1 files changed, 65 insertions, 24 deletions
diff --git a/src/content/dependencies/generateAlbumInfoPage.js b/src/content/dependencies/generateAlbumInfoPage.js index 1bffe2d0..1664c788 100644 --- a/src/content/dependencies/generateAlbumInfoPage.js +++ b/src/content/dependencies/generateAlbumInfoPage.js @@ -1,16 +1,20 @@ +import {empty} from '#sugar'; + export default { contentDependencies: [ - 'generateAlbumAdditionalFilesList', + 'generateAdditionalFilesList', + 'generateAdditionalNamesBox', + 'generateAlbumArtworkColumn', 'generateAlbumBanner', - 'generateAlbumCoverArtwork', 'generateAlbumNavAccent', 'generateAlbumReleaseInfo', 'generateAlbumSecondaryNav', 'generateAlbumSidebar', 'generateAlbumSocialEmbed', - 'generateAlbumStyleRules', + 'generateAlbumStyleTags', 'generateAlbumTrackList', - 'generateCommentarySection', + 'generateCommentaryEntry', + 'generateContentContentHeading', 'generateContentHeading', 'generatePageLayout', 'linkAlbumCommentary', @@ -23,8 +27,8 @@ export default { layout: relation('generatePageLayout'), - albumStyleRules: - relation('generateAlbumStyleRules', album, null), + albumStyleTags: + relation('generateAlbumStyleTags', album, null), socialEmbed: relation('generateAlbumSocialEmbed', album), @@ -38,10 +42,11 @@ export default { sidebar: relation('generateAlbumSidebar', album, null), - cover: - (album.hasCoverArt - ? relation('generateAlbumCoverArtwork', album) - : null), + additionalNamesBox: + relation('generateAdditionalNamesBox', album.additionalNames), + + artworkColumn: + relation('generateAlbumArtworkColumn', album), banner: (album.hasBannerArt @@ -51,6 +56,9 @@ export default { contentHeading: relation('generateContentHeading'), + contentContentHeading: + relation('generateContentContentHeading', album), + releaseInfo: relation('generateAlbumReleaseInfo', album), @@ -60,7 +68,7 @@ export default { : null), commentaryLink: - (album.commentary || album.tracks.some(t => t.commentary) + ([album, ...album.tracks].some(({commentary}) => !empty(commentary)) ? relation('linkAlbumCommentary', album) : null), @@ -68,12 +76,15 @@ export default { relation('generateAlbumTrackList', album), additionalFilesList: - relation('generateAlbumAdditionalFilesList', - album, - album.additionalFiles), + relation('generateAdditionalFilesList', album.additionalFiles), - artistCommentarySection: - relation('generateCommentarySection', album.commentary), + artistCommentaryEntries: + album.commentary + .map(entry => relation('generateCommentaryEntry', entry)), + + creditSourceEntries: + album.creditingSources + .map(entry => relation('generateCommentaryEntry', entry)), }), data: (album) => ({ @@ -97,14 +108,12 @@ export default { color: data.color, headingMode: 'sticky', - styleRules: [relations.albumStyleRules], + styleTags: relations.albumStyleTags, + + additionalNames: relations.additionalNamesBox, - cover: - relations.cover - ?.slots({ - alt: language.$('misc.alt.albumCover'), - }) - ?? null, + artworkColumnContent: + relations.artworkColumn, mainContent: [ relations.releaseInfo, @@ -150,6 +159,15 @@ export default { })) : html.blank()), + + !html.isBlank(relations.creditSourceEntries) && + language.encapsulate(capsule, 'readCreditingSources', capsule => + language.$(capsule, { + link: + html.tag('a', + {href: '#crediting-sources'}, + language.$(capsule, 'link')), + })), ])), relations.trackList, @@ -165,6 +183,11 @@ export default { }), ])), + (!html.isBlank(relations.artistCommentaryEntries) || + !html.isBlank(relations.creditSourceEntries)) + && + html.tag('hr', {class: 'main-separator'}), + language.encapsulate('releaseInfo.additionalFiles', capsule => html.tags([ relations.contentHeading.clone() @@ -176,7 +199,25 @@ export default { relations.additionalFilesList, ])), - relations.artistCommentarySection, + html.tags([ + relations.contentContentHeading.clone() + .slots({ + attributes: {id: 'artist-commentary'}, + string: 'misc.artistCommentary', + }), + + relations.artistCommentaryEntries, + ]), + + html.tags([ + relations.contentContentHeading.clone() + .slots({ + attributes: {id: 'crediting-sources'}, + string: 'misc.creditingSources', + }), + + relations.creditSourceEntries, + ]), ], navLinkStyle: 'hierarchical', |