31 lines
704 B
JavaScript
31 lines
704 B
JavaScript
const Image = require('@11ty/eleventy-img')
|
|
|
|
const imageShortcode = async (imageObj = {}) => {
|
|
const widths = imageObj.widths || [300, 600, 900, 1200]
|
|
const className = imageObj.className || "image"
|
|
|
|
const sizes = "(min-width: 100px) 50vw, 100vw"
|
|
const metadata = await Image(imageObj.src, {
|
|
formats: ["webp"],
|
|
outputDir: "./_site/assets/images/generated/",
|
|
urlPath: "/assets/images/generated/",
|
|
widths: widths
|
|
})
|
|
const alt = imageObj.alt;
|
|
|
|
const imageAttributes = {
|
|
class: className,
|
|
alt,
|
|
sizes,
|
|
loading: "lazy",
|
|
decoding: "async",
|
|
}
|
|
|
|
return Image.generateHTML(metadata, imageAttributes)
|
|
}
|
|
|
|
|
|
module.exports = {
|
|
imageShortcode
|
|
}
|