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
68
69
70
71
72
73
74
|
const eleventy = require("@11ty/eleventy");
const eleventysyntaxhighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
const eleventyrss = require("@11ty/eleventy-plugin-rss");
const markdown = require("markdown-it");
const markdownattrs = require("markdown-it-attrs");
const markdownanchor = require("markdown-it-anchor");
const markdownfootnote = require("markdown-it-footnote");
const slugify = require("@sindresorhus/slugify");
module.exports = eleventyConfig => {
[
eleventy.EleventyRenderPlugin,
// eleventysyntaxhighlight,
eleventyrss
].forEach(element => eleventyConfig.addPlugin(element));
eleventyConfig.addPassthroughCopy([
"assets/",
"_headers",
"_redirects",
"favicon/",
{
"assets/sw.js": "/sw.js"
},
{
"favicon/icon.ico": "/favicon.ico"
},
{
[require.resolve("prismjs/themes/prism-twilight.min.css")]: "/vendor/prism.css"
}
].forEach(element => eleventyConfig.addPassthroughCopy(element)));
eleventyConfig.setLibrary("md", markdown({
html: true,
linkify: true,
typographer: true
}).use(markdownattrs)
.use(markdownanchor, {
permalink: markdownanchor.permalink.headerLink(),
slugify: slug => slugify(slug)
}).use(markdownfootnote));
eleventyConfig.addFilter("getNewestCollectionItemDate", eleventyrss.getNewestCollectionItemDate);
eleventyConfig.addJavaScriptFunction("convertHtmlToAbsoluteUrls", eleventyrss.convertHtmlToAbsoluteUrls);
eleventyConfig.setBrowserSyncConfig({
snippet: false,
});
return {
dir: {
input: "src",
output: "dist",
includes: "includes",
data: "data",
layouts: "layouts"
},
dataTemplateEngine: "njk",
markdownTemplateEngine: "njk",
htmlTemplateEngine: "njk",
templateFormats: [
"html",
"md",
"njk",
"11ty.js"
]
};
};
|