From 64577a579707a1193f7c7db61defdcdd6ff1bc05 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 4 Jun 2023 19:04:26 -0300 Subject: content: generateArtistGalleryPage Oh look! It's not a stub! --- src/content/dependencies/generateCoverGrid.js | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/content/dependencies/generateCoverGrid.js (limited to 'src/content/dependencies/generateCoverGrid.js') diff --git a/src/content/dependencies/generateCoverGrid.js b/src/content/dependencies/generateCoverGrid.js new file mode 100644 index 00000000..fdd9f8b7 --- /dev/null +++ b/src/content/dependencies/generateCoverGrid.js @@ -0,0 +1,44 @@ +export default { + extraDependencies: ['html'], + + generate({html}) { + return html.template({ + annotation: `generateCoverGrid`, + + slots: { + images: {validate: v => v.arrayOf(v.isHTML)}, + links: {validate: v => v.arrayOf(v.isHTML)}, + names: {validate: v => v.arrayOf(v.isString)}, + + lazy: {validate: v => v.oneOf(v.isWholeNumber, v.isBoolean)}, + }, + + content(slots) { + return ( + html.tag('div', {class: 'grid-listing'}, + slots.images.map((image, i) => { + const link = slots.links[i]; + const name = slots.names[i]; + return link.slots({ + content: [ + image.slots({ + thumb: 'medium', + lazy: + (typeof slots.lazy === 'number' + ? i >= slots.lazy + : typeof slots.lazy === 'boolean' + ? slots.lazy + : false), + square: true, + }), + html.tag('span', name), + ], + attributes: { + class: ['grid-item', 'box', /* large && 'large-grid-item' */], + }, + }); + }))); + }, + }); + }, +}; -- cgit 1.3.0-6-gf8a5