diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-02-18 13:38:59 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-03-02 08:23:21 -0400 |
commit | 6ebf03dc972806d7a6c3053350caf45ade1a1533 (patch) | |
tree | 038c7b134defe8f4f98092cef2d4b35f6e5f2d97 | |
parent | 9562f48b308b060ee4159a2c365db82581ecc107 (diff) |
content: generateTrackInfoPageOtherReleasesList: paragraphize
-rw-r--r-- | src/content/dependencies/generateTrackInfoPage.js | 12 | ||||
-rw-r--r-- | src/content/dependencies/generateTrackInfoPageOtherReleasesList.js | 84 | ||||
-rw-r--r-- | src/strings-default.yaml | 7 |
3 files changed, 23 insertions, 80 deletions
diff --git a/src/content/dependencies/generateTrackInfoPage.js b/src/content/dependencies/generateTrackInfoPage.js index 4540b79c..9713ddfe 100644 --- a/src/content/dependencies/generateTrackInfoPage.js +++ b/src/content/dependencies/generateTrackInfoPage.js @@ -67,7 +67,7 @@ export default { relation('generateTrackReleaseInfo', track), otherReleasesList: - relation('generateTrackInfoPageOtherReleasesList', track), + relation('generateTrackInfoPageOtherReleasesList', track), contributorContributionList: relation('generateContributionList', track.contributorContribs), @@ -201,15 +201,7 @@ export default { })), ])), - html.tags([ - relations.contentHeading.clone() - .slots({ - attributes: {id: 'also-released-as'}, - title: language.$('releaseInfo.alsoReleasedAs'), - }), - - relations.otherReleasesList, - ]), + relations.otherReleasesList, html.tags([ relations.contentHeading.clone() diff --git a/src/content/dependencies/generateTrackInfoPageOtherReleasesList.js b/src/content/dependencies/generateTrackInfoPageOtherReleasesList.js index 004bba6d..063f11aa 100644 --- a/src/content/dependencies/generateTrackInfoPageOtherReleasesList.js +++ b/src/content/dependencies/generateTrackInfoPageOtherReleasesList.js @@ -1,80 +1,36 @@ import {stitchArrays} from '#sugar'; export default { - contentDependencies: [ - 'generateAbsoluteDatetimestamp', - 'generateColorStyleAttribute', - 'generateRelativeDatetimestamp', - 'linkAlbum', - 'linkTrack', - ], - + contentDependencies: ['linkTrack'], extraDependencies: ['html', 'language'], relations: (relation, track) => ({ - colorStyles: - track.otherReleases - .map(track => relation('generateColorStyleAttribute', track.color)), - trackLinks: track.otherReleases .map(track => relation('linkTrack', track)), + }), - albumLinks: + data: (track) => ({ + albumNames: track.otherReleases - .map(track => relation('linkAlbum', track.album)), - - datetimestamps: - track.otherReleases.map(track2 => - (track2.date - ? (track.date - ? relation('generateRelativeDatetimestamp', - track2.date, - track.date) - : relation('generateAbsoluteDatetimestamp', - track2.date)) - : null)), - - items: - track.otherReleases.map(track => ({ - trackLink: relation('linkTrack', track), - albumLink: relation('linkAlbum', track.album), - })), + .map(track => track.album.name), }), - generate: (relations, {html, language}) => - html.tag('ul', + generate: (data, relations, {html, language}) => + html.tag('p', {[html.onlyIfContent]: true}, - stitchArrays({ - trackLink: relations.trackLinks, - albumLink: relations.albumLinks, - datetimestamp: relations.datetimestamps, - colorStyle: relations.colorStyles, - }).map(({ - trackLink, - albumLink, - datetimestamp, - colorStyle, - }) => { - const parts = ['releaseInfo.alsoReleasedAs.item']; - const options = {}; - - options.track = trackLink.slot('color', false); - options.album = albumLink; - - if (datetimestamp) { - parts.push('withYear'); - options.year = - datetimestamp.slots({ - style: 'year', - tooltip: true, - }); - } - - return ( - html.tag('li', - colorStyle, - language.$(...parts, options))); - })), + language.$('releaseInfo.alsoReleasedOn', { + [language.onlyIfOptions]: ['albums'], + + albums: + language.formatConjunctionList( + stitchArrays({ + trackLink: relations.trackLinks, + albumName: data.albumNames, + }).map(({trackLink, albumName}) => + trackLink.slots({ + content: language.sanitize(albumName), + }))), + })), }; diff --git a/src/strings-default.yaml b/src/strings-default.yaml index b1a4d9a4..2ed0c680 100644 --- a/src/strings-default.yaml +++ b/src/strings-default.yaml @@ -291,12 +291,7 @@ releaseInfo: lyrics: "Lyrics:" note: "Context notes:" - alsoReleasedAs: - _: "Also released as:" - - item: - _: "{TRACK} ({ALBUM})" - withYear: "({YEAR}) {TRACK} ({ALBUM})" + alsoReleasedOn: "Also released on {ALBUMS}." tracksReferenced: _: "Tracks that {TRACK} references:" |