diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-06-15 16:26:02 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-06-15 16:26:02 -0300 |
commit | 05c8c67dd63352db898b1c10129c2239c0bf1936 (patch) | |
tree | 9ca2d9ecd8aa111110580fc1fdd2d6ecb9c8fefb /src/content/dependencies/generateAlbumBanner.js | |
parent | afe95ef37cf2bbb486515d2f2cc46522f582daaf (diff) |
content: generatePageBanner, generateAlbumBanner
Diffstat (limited to 'src/content/dependencies/generateAlbumBanner.js')
-rw-r--r-- | src/content/dependencies/generateAlbumBanner.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/content/dependencies/generateAlbumBanner.js b/src/content/dependencies/generateAlbumBanner.js new file mode 100644 index 00000000..155f4974 --- /dev/null +++ b/src/content/dependencies/generateAlbumBanner.js @@ -0,0 +1,37 @@ +export default { + contentDependencies: ['generatePageBanner'], + extraDependencies: ['html', 'language'], + + relations(relation, album) { + if (!album.hasBannerArt) { + return {}; + } + + return { + banner: relation('generatePageBanner'), + }; + }, + + data(album) { + if (!album.hasBannerArt) { + return {}; + } + + return { + path: ['media.albumBanner', album.directory, album.bannerFileExtension], + dimensions: album.bannerDimensions, + }; + }, + + generate(data, relations, {html, language}) { + if (!relations.banner) { + return html.blank(); + } + + return relations.banner.slots({ + path: data.path, + dimensions: data.dimensions, + alt: language.$('misc.alt.albumBanner'), + }); + }, +}; |