-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path.eleventy.js
72 lines (60 loc) · 1.93 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
67
68
69
70
71
72
var yaml = require('js-yaml');
var pluginRss = require("@11ty/eleventy-plugin-rss");
var moment = require('moment');
var slugify = require('slugify');
const KeySet = require('./addons/keysets');
module.exports = function(eleventyConfig) {
var markdownIt = require('markdown-it');
var markdownItAttrs = require('markdown-it-attrs');
var markdownItDiv = require('markdown-it-div');
var markdownOptions = {
html: true
};
var markdownLib = markdownIt(markdownOptions)
.use(markdownItAttrs)
.use(markdownItDiv);
eleventyConfig.setLibrary('md', markdownLib);
eleventyConfig.addShortcode("greet", function(entity) {
return entity + "!";
});
eleventyConfig.addPassthroughCopy({"source/_static" : "/"});
eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents));
eleventyConfig.addPlugin(pluginRss);
eleventyConfig.addFilter('verboseDate', function(date) {
return moment.utc(date).format('dddd, MMMM Do YYYY');
});
var metatagsSet = new KeySet("metatags");
var metatags = [
"post",
"diary",
"oldblog",
"blog",
"blog_draft",
"blog_preview",
"music_archive"
];
for (var i in metatags) {
eleventyConfig.addCollection(metatags[i], metatagsSet.collection(metatags[i]));
}
var slugifyConfig = {
remove: [],
lower: true,
strict: true,
};
eleventyConfig.addNunjucksFilter('slug', function(value) {
return slugify(value, slugifyConfig);
});
eleventyConfig.addLayoutAlias('blog', 'blog/index.njk');
return {
pathPrefix: "/",
dataTemplateEngine: "njk",
markdownTemplateEngine: "njk",
dir: {
input: "source",
output: "_site",
includes: "_includes",
layouts: "_layouts",
data: "_data"
},
};
}