-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eleventy.js
46 lines (35 loc) · 1.2 KB
/
.eleventy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
require('dotenv/config');
const navigationPlugin = require('@11ty/eleventy-navigation');
const pluginRss = require('@11ty/eleventy-plugin-rss');
const Terser = require('terser');
const { plugin: assetManager } = require('./src/utils/assetManager');
module.exports = (config) => {
config.addLayoutAlias('default', 'layouts/base.njk');
config.addNunjucksAsyncFilter('jsmin', async (code, callback) => {
const minified = await Terser.minify(code);
if (minified.error) {
console.log('Terser error: ', minified.error);
return callback(minified.error, code);
}
callback(null, minified.code);
});
config.addPassthroughCopy('./src/assets/videos');
config.addPassthroughCopy('./src/assets/images');
config.addPassthroughCopy('./src/assets/fonts');
config.addPassthroughCopy('./src/_redirects');
config.addWatchTarget('./src/assets/');
config.addPlugin(navigationPlugin);
config.addPlugin(pluginRss);
config.addPlugin(assetManager);
return {
dir: {
input: 'src/',
output: 'public/',
data: `_data/`,
},
templateFormats: ['njk', '11ty.js', 'md'],
htmlTemplateEngine: 'njk',
markdownTemplateEngine: 'njk',
passthroughFileCopy: true,
};
};