48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
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.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'
|
|
};
|