From e2cdee25fa4d7464f8429a951fe368b96ee48834 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 2 Aug 2023 18:04:17 -0300 Subject: content: generate{Album,Track}?SocialEmbed --- src/content/dependencies/generateTrackInfoPage.js | 62 +++-------------------- 1 file changed, 6 insertions(+), 56 deletions(-) (limited to 'src/content/dependencies/generateTrackInfoPage.js') diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js index b5ecb3b9..4487bca4 100644 --- a/src/content/dependencies/generateTrackInfoPage.js +++ b/src/content/dependencies/generateTrackInfoPage.js @@ -21,6 +21,7 @@ export default { 'generateTrackList', 'generateTrackListDividedByGroups', 'generateTrackReleaseInfo', + 'generateTrackSocialEmbed', 'linkAlbum', 'linkArtist', 'linkContribution', @@ -49,6 +50,9 @@ export default { relations.albumStyleRules = relation('generateAlbumStyleRules', track.album); + relations.socialEmbed = + relation('generateTrackSocialEmbed', track); + relations.artistChronologyContributions = getChronologyRelations(track, { contributions: [...track.artistContribs, ...track.contributorContribs], @@ -549,6 +553,8 @@ export default { }), ...relations.sidebar, + + socialEmbed: relations.socialEmbed, }); }, }; @@ -587,45 +593,9 @@ export default { }), }; - const getSocialEmbedDescription = ({ - getArtistString: _getArtistString, - language, - }) => { - const hasArtists = !empty(track.artistContribs); - const hasCoverArtists = !empty(track.coverArtistContribs); - const getArtistString = (contribs) => - _getArtistString(contribs, { - // We don't want to put actual HTML tags in social embeds (sadly - // they don't get parsed and displayed, generally speaking), so - // override the link argument so that artist "links" just show - // their names. - link: {artist: (artist) => artist.name}, - }); - if (!hasArtists && !hasCoverArtists) return ''; - return language.formatString( - 'trackPage.socialEmbed.body' + - [hasArtists && '.withArtists', hasCoverArtists && '.withCoverArtists'] - .filter(Boolean) - .join(''), - Object.fromEntries( - [ - hasArtists && ['artists', getArtistString(track.artistContribs)], - hasCoverArtists && [ - 'coverArtists', - getArtistString(track.coverArtistContribs), - ], - ].filter(Boolean) - ) - ); - }; - const page = { page: () => { return { - title: language.$('trackPage.title', {track: track.name}), - stylesheet: getAlbumStylesheet(album, {to}), - - themeColor: track.color, theme: getThemeString(track.color, { additionalVariables: [ @@ -633,26 +603,6 @@ export default { `--track-directory: ${track.directory}`, ] }), - - socialEmbed: { - heading: language.$('trackPage.socialEmbed.heading', { - album: track.album.name, - }), - headingLink: absoluteTo('localized.album', album.directory), - title: language.$('trackPage.socialEmbed.title', { - track: track.name, - }), - description: getSocialEmbedDescription({getArtistString, language}), - image: '/' + getTrackCover(track, {to: urls.from('shared.root').to}), - color: track.color, - }, - - secondaryNav: generateAlbumSecondaryNav(album, track, { - getLinkThemeString, - html, - language, - link, - }), }; }, }; -- cgit 1.3.0-6-gf8a5