diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/content/dependencies/generatePageLayout.js | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/content/dependencies/generatePageLayout.js b/src/content/dependencies/generatePageLayout.js index 0acf401c..8dad97e0 100644 --- a/src/content/dependencies/generatePageLayout.js +++ b/src/content/dependencies/generatePageLayout.js @@ -262,16 +262,24 @@ export default { ? data.canonicalBase + pagePathStringFromRoot : null); - const firstItemInArtworkColumn = - html.smooth(slots.artworkColumnContent) - .content[0]; - - const primaryCover = - (firstItemInArtworkColumn && - html.resolve(firstItemInArtworkColumn, {normalize: 'tag'}) - .attributes.has('class', 'cover-artwork') - ? firstItemInArtworkColumn - : null); + const primaryCover = (() => { + const apparentFirst = tag => html.smooth(tag).content[0]; + + const maybeTemplate = + apparentFirst(slots.artworkColumnContent); + + const maybeTemplateContent = + html.resolve(maybeTemplate, {normalize: 'tag'}); + + const maybeCoverArtwork = + apparentFirst(maybeTemplateContent); + + if (maybeCoverArtwork.attributes.has('class', 'cover-artwork')) { + return maybeTemplate; + } else { + return null; + } + })(); const titleContentsHTML = (html.isBlank(slots.title) |