-
Notifications
You must be signed in to change notification settings - Fork 1
/
.eleventy.js
42 lines (34 loc) · 1.29 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
const { DateTime } = require("luxon")
const pluginSEO = require("eleventy-plugin-seo")
const mila = require("markdown-it-link-attributes")
module.exports = function(eleventyConfig) {
eleventyConfig.amendLibrary("md", (mdLib) => mdLib.use(mila, {
matcher(href) { return href.match(/^https?:\/\//) },
attrs: { target: "_blank" },
}))
eleventyConfig.setTemplateFormats([
// Templates
"html", "xml", "njk", "md",
// Static Assets
"css", "js", "jpeg", "jpg", "png", "svg", "woff", "woff2"
])
eleventyConfig.addPassthroughCopy("public")
const projects = require("./_data/projects.json")
eleventyConfig.addCollection("projects", function() { return projects })
const stats = require("./_data/stats.json")
eleventyConfig.addCollection("stats", function() { return stats })
const symbols = require("./_data/symbols.json")
eleventyConfig.addCollection("symbols", function() { return symbols })
// Filters let you modify the content https://www.11ty.dev/docs/filters/
eleventyConfig.addFilter("htmlDateString", dateObj => {
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat("yyyy-LL-dd")
})
eleventyConfig.setBrowserSyncConfig({ ghostMode: false })
return {
dir: {
input: "src",
includes: "_includes",
output: "build"
}
}
}