-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheleventy.config.mjs
67 lines (60 loc) · 1.91 KB
/
eleventy.config.mjs
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
65
66
67
import postcssPlugin from "@jgarber/eleventy-plugin-postcss";
import eleventyPluginTinyHTML from "@sardine/eleventy-plugin-tinyhtml";
import automaticNoopener from "eleventy-plugin-automatic-noopener";
/** @param {import("@11ty/eleventy").UserConfig} eleventyConfig */
export default async function (eleventyConfig) {
// Directories
eleventyConfig.setInputDirectory("./src");
eleventyConfig.setOutputDirectory("./_site");
eleventyConfig.setLayoutsDirectory("_layouts");
eleventyConfig.setIncludesDirectory("_includes");
eleventyConfig.addPassthroughCopy("./src/css");
eleventyConfig.addPassthroughCopy("./src/img");
// nasty fix for fonts
eleventyConfig.addPassthroughCopy({
"./node_modules/@fontsource/atkinson-hyperlegible/files/*.woff2":
"css/files",
});
// Sets Liquid options
eleventyConfig.setLiquidOptions({
dynamicPartials: false,
strictFilters: true,
});
// Date formatter filter
eleventyConfig.addFilter("postDate", (dateObj) => {
return dateObj.toLocaleString(undefined, {
year: "numeric",
month: "numeric",
day: "numeric",
});
});
// PostCSS support
eleventyConfig.addPlugin(postcssPlugin);
// Automatically append nooopeners
eleventyConfig.addPlugin(automaticNoopener);
// Minify HTTML
eleventyConfig.addPlugin(eleventyPluginTinyHTML, {
collapseBooleanAttributes: true,
collapseInlineTagWhitespace: true,
collapseWhitespace: true,
conservativeCollapse: true,
decodeEntities: true,
includeAutoGeneratedTags: false,
minifyCSS: true,
minifyJS: true,
minifyURLs: true,
preventAttributesEscaping: true,
processConditionalComments: true,
removeAttributeQuotes: false,
removeComments: true,
removeEmptyAttributes: true,
removeOptionalTags: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
sortAttributes: true,
sortClassName: true,
trimCustomFragments: true,
useShortDoctype: true,
});
}