diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-07-07 21:18:03 -0300 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-07-07 21:18:03 -0300 |
| commit | 2ccb0588a304b3ce8855651e8a30f895a57880c0 (patch) | |
| tree | f878792b2c8dbb632f9acbd7ac1ed85aed25923d /src/content/dependencies/generateAlbumTrackList.js | |
| parent | b15da97e76176344d8b977558940a7f4324c0876 (diff) | |
data, content, css: Aside Traack Section, Close Aside Track Section preview
Diffstat (limited to 'src/content/dependencies/generateAlbumTrackList.js')
| -rw-r--r-- | src/content/dependencies/generateAlbumTrackList.js | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/src/content/dependencies/generateAlbumTrackList.js b/src/content/dependencies/generateAlbumTrackList.js index 6c8a21c2..7a30fa02 100644 --- a/src/content/dependencies/generateAlbumTrackList.js +++ b/src/content/dependencies/generateAlbumTrackList.js @@ -82,7 +82,14 @@ export default { case 'trackSections': data.trackSectionNames = album.trackSections - .map(section => section.name); + .map(section => + (section.isDefaultTrackSection + ? null + : section.name)); + + data.trackSectionStyles = + album.trackSections + .map(section => section.style); data.trackSectionDurations = album.trackSections @@ -138,6 +145,7 @@ export default { items: relations.trackSectionItems, name: data.trackSectionNames, + style: data.trackSectionStyles, duration: data.trackSectionDurations, durationApproximate: data.trackSectionDurationsApproximate, hasTrackNumbers: data.trackSectionsHaveTrackNumbers, @@ -148,6 +156,7 @@ export default { items, name, + style, duration, durationApproximate, hasTrackNumbers, @@ -157,37 +166,54 @@ export default { heading.slots({ tag: 'dt', + attributes: [ + style === 'aside' && + {class: 'aside'}, + ], + title: - language.encapsulate(capsule, capsule => { - const options = {section: name}; + language.encapsulate(capsule, workingCapsule => { + const workingOptions = { + [language.onlyIfOptions]: ['section'], + section: name, + }; + + if (html.isBlank(name)) { + return html.blank(); + } if (duration) { - capsule += '.withDuration'; - options.duration = + workingCapsule += '.withDuration'; + workingOptions.duration = language.formatDuration(duration, { approximate: durationApproximate, }); } - return language.$(capsule, options); + return language.$(workingCapsule, workingOptions); }), stickyTitle: language.$(capsule, 'sticky', { + [language.onlyIfOptions]: ['section'], section: name, }), })), - html.tag('dd', [ - html.tag('blockquote', - {[html.onlyIfContent]: true}, - description), + html.tag('dd', + style === 'aside' && + {class: 'aside'}, + + [ + html.tag('blockquote', + {[html.onlyIfContent]: true}, + description), - (hasTrackNumbers - ? html.tag('ol', {start: startCountingFrom}, - slotItems(items)) - : html.tag('ul', slotItems(items))), - ]), + (hasTrackNumbers + ? html.tag('ol', {start: startCountingFrom}, + slotItems(items)) + : html.tag('ul', slotItems(items))), + ]), ])); case 'tracks': |