-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path.eleventy.js
66 lines (59 loc) · 3.22 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
65
66
// Eleventy configuration, integrated with Snowpack
// https://www.11ty.dev/docs/config/
/* eslint-env node */
const { buildLocalesCollection, formatDate, getLocalizedOrDefault} =
require('./conf/11ty/locales');
const { buildPosts } = require('./conf/11ty/blogPosts');
const { backgroundImage } = require('./conf/11ty/backgroundImage')
const { creditedImage } = require('./conf/11ty/creditedImage')
const { contactUrl } = require('./conf/11ty/contactUrl')
const { internalLink } = require('./conf/11ty/internalLink')
const { renderLiquid } = require('./conf/11ty/liquid')
const {inlineMarkdownPairedShortCode, inlineMarkdownShortCode, markdownShortCode, markdownIt} = require('./conf/11ty/markdown');
module.exports = function (eleventyConfig) {
// Copy to `dir.output` those files required by the website,
// but not recognized by Eleventy as valid template files.
// Note: Passthrough File Copy entries are relative to the root
// of the project and not Eleventy `dir.input` directory.
eleventyConfig.addPassthroughCopy({"src/admin": "admin"});
eleventyConfig.addPassthroughCopy({"src/assets": "assets"});
eleventyConfig.addPassthroughCopy({"src/site/_data/i18n/assets/": "assets/i18n" });
eleventyConfig.addPassthroughCopy({"src/site/_data/data/assets/": "assets/data" });
eleventyConfig.addPassthroughCopy("src/site/favicon*");
eleventyConfig.addPassthroughCopy("src/site/manifest.json");
eleventyConfig.addPassthroughCopy("src/site/robots.txt");
eleventyConfig.addPassthroughCopy({"conf/netlify/cms/config.yml": "admin/config.yml" });
eleventyConfig.addPassthroughCopy({ "conf/netlify/forms/*.html": "admin/forms/" });
eleventyConfig.addCollection("locales", buildLocalesCollection);
eleventyConfig.addCollection("blogPosts", buildPosts);
eleventyConfig.addFilter("getLocalizedOrDefault", getLocalizedOrDefault);
eleventyConfig.addFilter("readableDate", formatDate);
eleventyConfig.addFilter("backgroundImage", backgroundImage);
eleventyConfig.addShortcode("creditedImage", creditedImage);
eleventyConfig.addShortcode("contactUrl", contactUrl);
eleventyConfig.addPairedShortcode("ilink", internalLink);
eleventyConfig.addShortcode("markdown", (s) => markdownShortCode(s||''));
eleventyConfig.addShortcode("inlineMarkdown", inlineMarkdownShortCode);
eleventyConfig.addPairedShortcode("inlineMarkdownP", inlineMarkdownPairedShortCode);
eleventyConfig.addShortcode("renderLiquid", renderLiquid);
// Use the same markdown instance as the shortcodes
// to prevent behaviorial differences coming from
// 11ty's own default markdown library
eleventyConfig.setLibrary("md", markdownIt);
// Let Eleventy transform HTML files as Nunjucks
// So that we can use .html instead of .njk
return {
dir: {
output: "build/11ty", // linked to Snowpack `mount` setting
input: "src/site",
data: "_data", // (default value) relative to `dir.input`
includes: "_includes", // (default value) relative to `dir.input`
layouts: "_layouts", // (overrides default) still relative to `dir.input`
},
// templateFormats: ["html", "md", "njk"],
markdownTemplateEngine: "njk",
htmlTemplateEngine: "njk",
// don't preprocess global data.
dataTemplateEngine: false
};
};