From aeed300cb9f4fc543a4fdadc294106e455900309 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 4 Jun 2026 08:55:25 -0300 Subject: content, data: Track.datePosted, etc --- .../dependencies/generateAlbumCommentaryPage.js | 68 +++++++++++++++++----- .../dependencies/generateAlbumGalleryStatsLine.js | 12 +++- .../generateAlbumSocialEmbedDescription.js | 11 +++- .../dependencies/generateTrackReleaseInfo.js | 14 +++-- 4 files changed, 82 insertions(+), 23 deletions(-) (limited to 'src/content') diff --git a/src/content/dependencies/generateAlbumCommentaryPage.js b/src/content/dependencies/generateAlbumCommentaryPage.js index 0d7fb2cb..02755cf2 100644 --- a/src/content/dependencies/generateAlbumCommentaryPage.js +++ b/src/content/dependencies/generateAlbumCommentaryPage.js @@ -96,10 +96,18 @@ export default { data.name = album.name; data.color = album.color; data.date = album.date; + data.dateStyle = album.dateStyle; data.trackCommentaryTrackDates = query.tracksWithCommentary - .map(track => track.dateFirstReleased); + .map(track => + (+track.date !== +album.date + ? track.date + : null)); + + data.trackCommentaryTrackDateStyles = + query.tracksWithCommentary + .map(track => track.dateStyle); data.trackCommentaryDirectories = query.tracksWithCommentary @@ -136,10 +144,21 @@ export default { [ data.date && relations.totals.entryCount >= 1 && - language.$('releaseInfo.albumReleased', { - date: - html.tag('b', - language.formatDate(data.date)), + language.encapsulate('releaseInfo', workingCapsule => { + const workingOptions = {}; + + workingOptions.date = + html.tag('b', language.formatDate(data.date)); + + if (data.dateStyle === 'released') { + workingCapsule += '.albumReleased'; + } else if (data.dateStyle === 'posted') { + workingCapsule += '.albumPosted'; + } else { + return html.blank(); + } + + return language.$(workingCapsule, workingOptions); }), language.encapsulate(pageCapsule, 'infoLine', workingCapsule => { @@ -211,6 +230,7 @@ export default { entries: relations.trackCommentaryEntries, color: data.trackCommentaryColors, trackDate: data.trackCommentaryTrackDates, + trackDateStyle: data.trackCommentaryTrackDateStyles, }).map(({ heading, link, @@ -220,6 +240,7 @@ export default { entries, color, trackDate, + trackDateStyle, }) => language.encapsulate(pageCapsule, 'entry', entryCapsule => [ language.encapsulate(entryCapsule, 'title.trackCommentary', titleCapsule => @@ -243,20 +264,37 @@ export default { }), })), - cover?.slots({ - mode: 'commentary', - color: true, - }), + cover?.slots({ + mode: 'commentary', + color: true, + }), - trackDate && - trackDate !== data.date && html.tag('p', {class: 'track-info'}, - language.$('releaseInfo.trackReleased', { - date: language.formatDate(trackDate), + {[html.onlyIfContent]: true}, + + language.encapsulate('releaseInfo', workingCapsule => { + const workingOptions = {}; + + if (!trackDate) { + return html.blank(); + } + + workingOptions.date = + language.formatDate(trackDate); + + if (trackDateStyle === 'released') { + workingCapsule += '.trackReleased'; + } else if (trackDateStyle === 'posted') { + workingCapsule += '.trackPosted'; + } else { + return html.blank(); + } + + return language.$(workingCapsule, workingOptions); })), - entries.map(entry => entry.slot('color', color)), - ])), + entries.map(entry => entry.slot('color', color)), + ])), ], navLinkStyle: 'hierarchical', diff --git a/src/content/dependencies/generateAlbumGalleryStatsLine.js b/src/content/dependencies/generateAlbumGalleryStatsLine.js index 75341937..394be6b8 100644 --- a/src/content/dependencies/generateAlbumGalleryStatsLine.js +++ b/src/content/dependencies/generateAlbumGalleryStatsLine.js @@ -5,6 +5,9 @@ export default { date: album.date, + dateStyle: + album.dateStyle, + hideDuration: album.hideDuration, @@ -40,8 +43,13 @@ export default { language.formatDuration(data.duration, {unit: true})); } - if (data.date) { - workingCapsule += '.withDate'; + if (data.dateStyle === 'released') { + workingCapsule += '.withDateReleased'; + workingOptions.date = + html.tag('b', + language.formatDate(data.date)); + } else if (data.dateStyle === 'posted') { + workingCapsule += '.withDatePosted'; workingOptions.date = html.tag('b', language.formatDate(data.date)); diff --git a/src/content/dependencies/generateAlbumSocialEmbedDescription.js b/src/content/dependencies/generateAlbumSocialEmbedDescription.js index db6da5b7..f584b59e 100644 --- a/src/content/dependencies/generateAlbumSocialEmbedDescription.js +++ b/src/content/dependencies/generateAlbumSocialEmbedDescription.js @@ -10,6 +10,9 @@ export default { date: album.date, + + dateStyle: + album.dateStyle, }), generate: (data, {language}) => @@ -28,8 +31,12 @@ export default { language.countTracks(data.tracks, {unit: true}); } - if (data.date) { - workingCapsule += '.withReleaseDate'; + if (data.dateStyle === 'released') { + workingCapsule += '.withDateReleased'; + workingOptions.date = + language.formatDate(data.date); + } else if (data.dateStyle === 'posted') { + workingCapsule += '.withDatePosted'; workingOptions.date = language.formatDate(data.date); } diff --git a/src/content/dependencies/generateTrackReleaseInfo.js b/src/content/dependencies/generateTrackReleaseInfo.js index 001f5a54..b610188a 100644 --- a/src/content/dependencies/generateTrackReleaseInfo.js +++ b/src/content/dependencies/generateTrackReleaseInfo.js @@ -22,6 +22,7 @@ export default { data.name = track.name; data.date = track.date; + data.dateStyle = track.dateStyle; data.duration = track.duration; const {album} = track; @@ -65,10 +66,15 @@ export default { }); }), - language.$(capsule, 'released', { - [language.onlyIfOptions]: ['date'], - date: language.formatDate(data.date), - }), + (data.dateStyle === 'released' + ? language.$(capsule, 'released', { + date: language.formatDate(data.date), + }) + : data.dateStyle === 'posted' + ? language.$(capsule, 'posted', { + date: language.formatDate(data.date), + }) + : html.blank()), language.$(capsule, 'duration', { [language.onlyIfOptions]: ['duration'], -- cgit 1.3.0-6-gf8a5