-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eleventy.cjs
58 lines (49 loc) · 1.14 KB
/
.eleventy.cjs
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
let markdownIt = require("markdown-it");
let markdownItAnchor = require("markdown-it-anchor");
let markdownItAttrs = require('markdown-it-attrs');
module.exports = config => {
let data = {
"layout": "page.njk",
"permalink": "{{ page.filePathStem | replace('README', '') }}/index.html",
eleventyComputed: {
defaultTitle: data => {
if (data.id) {
return data.id;
}
return "Mavue: Easier Vue.js apps, inspired by Mavo";
}
}
};
for (let p in data) {
config.addGlobalData(p, data[p]);
}
config.setDataDeepMerge(true);
config.setLibrary("md", markdownIt({
html: true,
})
.use(markdownItAttrs)
.use(markdownItAnchor, {
permalink: markdownItAnchor.permalink.headerLink(),
level: 2,
})
.disable("code")
);
config.addFilter(
"relative",
page => {
let path = page.url.replace(/[^/]+$/, "");
let ret = require("path").relative(path, "/");
return ret || ".";
}
);
config.addFilter("CamelCase", str => {
return str?.replace(/(?:^|\-)([A-Za-z])/g, (g, $1) => $1.toUpperCase());
});
return {
markdownTemplateEngine: "njk",
templateFormats: ["md", "njk"],
dir: {
output: "."
},
};
};