import eleventyPluginNavigation from '@11ty/eleventy-navigation'; import eleventyPluginWebc from '@11ty/eleventy-plugin-webc'; import { eleventyImagePlugin } from '@11ty/eleventy-img'; const IMAGE_TRANSFORM_OPTS = { // Set global default options formats: ['avif', 'webp', 'auto'], sharpJpegOptions: { mozjpeg: true, optimiseScans: true, quality: 95 }, sharpPngOptions: { compressionLevel: 9 }, urlPath: '/img/', // Notably `outputDir` is resolved automatically // to the project output directory defaultAttributes: { loading: 'lazy', decoding: 'async', sizes: '(min-width: 64em) 500px, (min-width: 50em) 420px, 375px' } }; export default async function (eleventyConfig) { eleventyConfig.addWatchTarget('./src/css/'); eleventyConfig.addPassthroughCopy('./src/fonts/'); eleventyConfig.addCollection('sebin', (collection) => collection.getFilteredByGlob('./src/sebin/*.md') ); eleventyConfig.addCollection('viktor', (collection) => collection.getFilteredByGlob('./src/viktor/*.md') ); eleventyConfig.addCollection('jarek', (collection) => collection.getFilteredByGlob('./src/jarek/*.md') ); eleventyConfig.addPlugin(eleventyPluginWebc, { components: ['src/components/*.webc', 'npm:@11ty/eleventy-img/*.webc'] }); eleventyConfig.addPlugin(eleventyPluginNavigation); eleventyConfig.addPlugin(eleventyImagePlugin, IMAGE_TRANSFORM_OPTS); } export const config = { dir: { input: 'src', output: 'public', layouts: 'layouts', includes: 'includes' }, markdownTemplateEngine: 'webc' };