-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eleventy.js
64 lines (53 loc) · 1.62 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const minifiers = require("./transforms/minify")
const moment = require("moment")
const historyFallback = require("connect-history-api-fallback")
module.exports = function (config) {
// Merge data instead of overriding
config.setDataDeepMerge(true);
// BrowserSync config (with SPA routing)
// https://thomastuts.com/blog/browsersync-spa-routing-pretty-urls.html
config.setBrowserSyncConfig({
server: {
baseDir: './build',
middleware: [
historyFallback()
]
}
})
/* TODO support for responsive images https://github.com/11ty/eleventy-img
* https://mahmoudashraf.dev/blog/how-to-optimize-and-lazyloading-images-on-eleventy/
* */
// When .gitignore is disabled, .eleventyignore will be the single source of truth for ignored files
config.setUseGitIgnore(false)
// Watch targets
config.addWatchTarget("./source/")
config.addWatchTarget("./temporary/")
// Pass-through files
config.addPassthroughCopy({ "./temporary/style.css": "./style.css" })
config.addPassthroughCopy("./source/images")
config.addPassthroughCopy("./source/lighthouse")
/*if (process.env.NODE_ENV === 'deploy') {
config.addPassthroughCopy({ "./source/404.html": "./404.html" })
}*/
// Shortcodes
config.addShortcode("version", function () {
return String(Date.now())
})
// Filters
config.addNunjucksFilter("date", function (date, format, locale) {
locale = locale ? locale : "en";
moment.locale(locale);
return moment(date).format(format);
});
// Transforms
config.addTransform("minify", minifiers);
// Base config
return {
dir: {
input: "source",
includes: "includes",
data: "data",
output: "build",
},
}
}