diff options
Diffstat (limited to 'src/content')
4 files changed, 43 insertions, 12 deletions
diff --git a/src/content/dependencies/generateCoverArtworkOriginDetails.js b/src/content/dependencies/generateCoverArtworkOriginDetails.js index 3eb7c664..3908414f 100644 --- a/src/content/dependencies/generateCoverArtworkOriginDetails.js +++ b/src/content/dependencies/generateCoverArtworkOriginDetails.js @@ -15,8 +15,8 @@ export default { artwork.thing.constructor[Thing.referenceType], attachedArtistContribs: - (!artwork.isMainArtwork && artwork.mainArtwork && artwork.attachAbove - ? artwork.mainArtwork.artistContribs + (artwork.attachedArtwork + ? artwork.attachedArtwork.artistContribs : null) }), @@ -58,6 +58,11 @@ export default { {class: 'origin-details'}, (() => { + relations.datetimestamp?.setSlots({ + style: 'year', + tooltip: true, + }); + const artworkBy = language.encapsulate(capsule, 'artworkBy', workingCapsule => { const workingOptions = {}; @@ -69,11 +74,7 @@ export default { if (relations.datetimestamp) { workingCapsule += '.withYear'; - workingOptions.year = - relations.datetimestamp.slots({ - style: 'year', - tooltip: true, - }); + workingOptions.year = relations.datetimestamp; } return relations.credit.slots({ @@ -111,15 +112,38 @@ export default { workingOptions.label = data.label; } + if (html.isBlank(artworkBy) && relations.datetimestamp) { + workingCapsule += '.withYear'; + workingOptions.year = relations.datetimestamp; + } + return language.$(workingCapsule, workingOptions); }); const label = html.isBlank(artworkBy) && html.isBlank(source) && - language.$(capsule, 'customLabelAlone', { - [language.onlyIfOptions]: ['label'], - label: data.label, + language.encapsulate(capsule, 'customLabel', workingCapsule => { + const workingOptions = { + [language.onlyIfOptions]: ['label'], + label: data.label, + }; + + if (relations.datetimestamp) { + workingCapsule += '.withYear'; + workingOptions.year = relations.datetimestamp; + } + + return language.$(workingCapsule, workingOptions); + }); + + const year = + html.isBlank(artworkBy) && + html.isBlank(source) && + html.isBlank(label) && + language.$(capsule, 'year', { + [language.onlyIfOptions]: ['year'], + year: relations.datetimestamp, }); return [ @@ -127,6 +151,7 @@ export default { trackArtFromAlbum, source, label, + year, ]; })())), }; diff --git a/src/content/dependencies/generateGroupInfoPageAlbumsListItem.js b/src/content/dependencies/generateGroupInfoPageAlbumsListItem.js index 99e7e8ff..4680cb46 100644 --- a/src/content/dependencies/generateGroupInfoPageAlbumsListItem.js +++ b/src/content/dependencies/generateGroupInfoPageAlbumsListItem.js @@ -127,7 +127,8 @@ export default { workingCapsule += '.withArtists'; workingOptions.by = html.tag('span', {class: 'by'}, - html.metatag('chunkwrap', {split: ','}, + // TODO: This is obviously evil. + html.metatag('chunkwrap', {split: /,| (?=and)/}, html.resolve(artistCredit))); } diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js index 8dad97e0..89fefb23 100644 --- a/src/content/dependencies/generatePageLayout.js +++ b/src/content/dependencies/generatePageLayout.js @@ -268,12 +268,16 @@ export default { const maybeTemplate = apparentFirst(slots.artworkColumnContent); + if (!maybeTemplate) return null; + const maybeTemplateContent = html.resolve(maybeTemplate, {normalize: 'tag'}); const maybeCoverArtwork = apparentFirst(maybeTemplateContent); + if (!maybeCoverArtwork) return null; + if (maybeCoverArtwork.attributes.has('class', 'cover-artwork')) { return maybeTemplate; } else { diff --git a/src/content/dependencies/generateTrackListItem.js b/src/content/dependencies/generateTrackListItem.js index 887b6f03..3c850a18 100644 --- a/src/content/dependencies/generateTrackListItem.js +++ b/src/content/dependencies/generateTrackListItem.js @@ -97,7 +97,8 @@ export default { workingCapsule += '.withArtists'; workingOptions.by = html.tag('span', {class: 'by'}, - html.metatag('chunkwrap', {split: ','}, + // TODO: This is obviously evil. + html.metatag('chunkwrap', {split: /,| (?=and)/}, html.resolve(relations.credit))); } |