-
Notifications
You must be signed in to change notification settings - Fork 3
/
.eleventy.js
82 lines (70 loc) · 2.08 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
73
74
75
76
77
78
79
80
81
82
const { DateTime } = require("luxon");
const navigationPlugin = require("@11ty/eleventy-navigation");
const rssPlugin = require("@11ty/eleventy-plugin-rss");
module.exports = (config) => {
config.addPlugin(navigationPlugin);
config.addPlugin(rssPlugin);
config.addPassthroughCopy("css");
config.addPassthroughCopy("static");
config.setDataDeepMerge(true);
config.addFilter("htmlDateString", (dateObj) => {
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat("yyyy-LL-dd");
});
config.addFilter("featured", (listObj) => {
// console.log(listObj[0].data)
featured = [];
listObj.forEach((element) => {
// console.log(element)
if (element.data.featured) {
// console.log(element.data.title)
featured.push(element);
}
});
return featured;
});
config.addFilter("readableDate", (dateObj) => {
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat(
"dd LLL, yyyy"
);
});
config.addFilter("convertDate", (dateObj) => {
date = new Date(dateObj);
return date.toLocaleDateString("en-US");
});
// Nunjucks Shortcode
config.addShortcode("register", function (link, target) {
html = "";
if (link != false) {
html =
'<p class="button-wrap"><a target=' +
target +
' class="action register" href="' +
link +
'" >Register →</a></p>';
}
return html;
});
config.addCollection("tagList", (collection) => {
const tagsObject = {};
collection.getAll().forEach((item) => {
if (!item.data.tags) return;
item.data.tags
.filter((tag) => !["post", "all"].includes(tag))
.forEach((tag) => {
if (typeof tagsObject[tag] === "undefined") {
tagsObject[tag] = 1;
} else {
tagsObject[tag] += 1;
}
});
});
const tagList = [];
Object.keys(tagsObject).forEach((tag) => {
tagList.push({ tagName: tag, tagCount: tagsObject[tag] });
});
return tagList.sort((a, b) => b.tagCount - a.tagCount);
});
return {
pathPrefix: "/p/",
};
};