Eleventy Image Pipeline
A configurable Eleventy shortcode that builds multiple resolutions of any image.
Usage
Installation
npm install --save-dev @campj/eleventy-image
Environment Variables
Source prefix
Set the ELEVENTY_IMAGE_SRC_PREFIX environment variable if you'd like to change where your source images are pulled from.
**default: src/site
Example 1 (default)
with the default settings you'd do
{% Image src="/img/someimage.jpg" %}
would transform the image located at ./src/site/img/someimage.jpg
.
Example 2
ELEVENTY_IMAGE_SRC_PREFIX=images
{% Image src="/someimage.jpg" %}
would transform the image located at ./images/someimage.jpg
.
Path prefix
Set the ELEVENTY_PATH_PREFIX environment variable if you'd like to prepend a prefix to your image paths
**default: none
Adding to Eleventy
in .eleventy.js:
const { Image } = require("@campj/eleventy-image");
module.exports = function(eleventyConfig) {
eleventyConfig.addNunjucksAsyncShortcode("Image", Image);
};
In any nunjucks template file:
Use the shortcode:
{% Image
src = "/img/placeholder-1.jpg",
maxWidths = [200, 500, 768, 1024, 1368]
%}
Props:
-
src: path to the image
-
alt: alt text for the image
-
maxWidths: array of per-breakpoint widths to resize the image to (default:[250, 500, 800, 1368]
)
-
useBase64: boolean - whether to generate a base64 placeholder image (default: false
)
-
backgroundColor css color - color to use as a placeholder while the image loads (default: null
)
-
rootMargin rootMargin string - to be used in conjunction with @campj/lazy-image (default:"400px 300px"
)
-
tag: html tag to use for the wrapper element (default: figure
)
-
caption: if included, will add a <figcaption>
element with the caption (default: null
)
-
captionStyle: will merge with default style for captions if present - defaults are:
{
position: "absolute",
display: "block",
bottom: 0,
padding: "2px 10px",
"background-color": "white"
}
-
imgProps: extra properties to apply to the image
** other properties will get applied to the wrapper tag as attributes