-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patheleventy-config.js
95 lines (81 loc) · 3 KB
/
eleventy-config.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
83
84
85
86
87
88
89
90
91
92
93
94
95
const currentYearShortcode = require('./site/src/shortcodes/currentYearShortcode');
const dateFilter = require('./site/src/filters/dateFilter');
const eleventyRemark = require('@fec/eleventy-plugin-remark');
const responsiveImg = require('./site/src/shortcodes/responsiveImg');
const path = require('path');
const UpgradeHelper = require("@11ty/eleventy-upgrade-help");
function isBlogPage(page) {
return page.inputPath.match(/\.\/site\/blog\//);
}
function isProjectPage(page) {
return page.inputPath.match(/\.\/site\/projects\//);
}
function isTravelPage(page) {
return page.inputPath.match(/\.\/site\/travels/);
}
function byDate(field) {
field = field || 'date';
return (page1, page2) => page1.data[field] - page2.data[field];
}
module.exports = (eleventyConfig) => {
eleventyConfig.addPlugin(UpgradeHelper);
eleventyConfig.addPlugin(eleventyRemark, {
enableRehype: false,
plugins: [
{
plugin: require('@fec/remark-images'),
options: {
srcDir: path.join(__dirname, 'site'),
targetDir: path.join(__dirname, 'dist'),
figureClassName: 'figure',
pictureClassName: '',
imgClassName: '',
figCaptionClassName: 'figure__caption',
loadingPolicy: 'lazy',
},
},
require('./site/src/lib/remark-prism'),
require('@fec/remark-a11y-emoji'),
{
plugin: 'remark-rehype',
options: { allowDangerousHtml: true },
},
'rehype-raw',
'rehype-stringify',
],
});
eleventyConfig.addLayoutAlias('base', 'layouts/base.njk');
eleventyConfig.addLayoutAlias('blog', 'layouts/blog.njk');
eleventyConfig.addLayoutAlias('page', 'layouts/page.njk');
eleventyConfig.addLayoutAlias('project', 'layouts/project.njk');
eleventyConfig.addCollection('blog', (collection) => {
return collection.getAll().filter(isBlogPage).sort(byDate());
});
eleventyConfig.addCollection('projects', (collection) => {
return collection.getAll().filter(isProjectPage).sort(byDate());
});
eleventyConfig.addCollection('travels', (collection) =>
collection.getAll().filter(isTravelPage).sort(byDate('date_start'))
);
eleventyConfig.addPassthroughCopy('site/_redirects');
eleventyConfig.addPassthroughCopy('site/fonts');
eleventyConfig.addPassthroughCopy('site/images');
eleventyConfig.addPassthroughCopy('site/blog/**/*.{png,gif,mp4}');
eleventyConfig.addPassthroughCopy('site/projects/**/*.{png,gif,mp4}');
eleventyConfig.addPassthroughCopy({ 'cv-pdf/cv.pdf': 'cv.pdf' });
eleventyConfig.addPassthroughCopy({ 'static/.well-known': '.well-known' });
eleventyConfig.addFilter('date', dateFilter);
eleventyConfig.addShortcode('currentYear', currentYearShortcode);
eleventyConfig.addShortcode('responsiveImg', responsiveImg);
eleventyConfig.addWatchTarget('site/src/css/*.css');
return {
dir: {
data: 'data',
includes: 'src/includes',
input: 'site',
output: 'dist',
},
htmlTemplateEngine: 'njk',
markdownTemplateEngine: 'njk',
};
};