1
0
Fork 0
mirror of https://github.com/GuerillaStudio/vanillalist.git synced 2024-10-22 17:37:29 +00:00
vanillalist/src/index.11ty.js
2022-02-10 22:50:13 +01:00

46 lines
2.1 KiB
JavaScript

const card = require('./_includes/plugin')
const paginationGenerator = require('./_includes/pagination')
class Main {
data() {
return {
layout: "layouts/base.njk",
pagination: {
data: "collections.plugins",
size: "24",
alias: "plugins"
},
permalink: data => `/${data.pagination.pageNumber > 0 ? 'page/' + (data.pagination.pageNumber + 1) + '/' : ''}/index.html`
};
}
async render(data) {
const list = (await Promise.all(data.plugins.map(async plugin => {
return card({
...plugin,
bg: await this.base64('public' + await this.getUrl(this.png(this.resize('./uploads/' + plugin.image, { width: 1, height: 1 })))),
imageWebp: {
image92: await this.getUrl(this.webp(this.resize('./uploads/' + plugin.image, { width: 92, height: 58 }))),
image184: await this.getUrl(this.webp(this.resize('./uploads/' + plugin.image, { width: 184, height: 116 }))),
image308: await this.getUrl(this.webp(this.resize('./uploads/' + plugin.image, { width: 308, height: 195 }))),
image616: await this.getUrl(this.webp(this.resize('./uploads/' + plugin.image, { width: 616, height: 390 })))
},
imagePng: {
image92: await this.getUrl(this.png(this.resize('./uploads/' + plugin.image, { width: 92, height: 58 }))),
image184: await this.getUrl(this.png(this.resize('./uploads/' + plugin.image, { width: 184, height: 116 }))),
image308: await this.getUrl(this.png(this.resize('./uploads/' + plugin.image, { width: 308, height: 195 }))),
image616: await this.getUrl(this.png(this.resize('./uploads/' + plugin.image, { width: 616, height: 390 })))
}
})
}))).join('');
return `
<div class="pluginList">
${list}
</div>
${paginationGenerator(data.pagination, data.page)}
`
}
}
module.exports = Main;