-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eleventy.cjs
64 lines (55 loc) · 1.55 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
59
60
61
62
63
64
const pluginDate = require('eleventy-plugin-date');
const filtersReady = import('./src/lib/filters.js');
const componentsReady = import('./lib/components.js');
module.exports = function (config) {
function addFilter(name) {
config.addNunjucksAsyncFilter(name, async (value, callback) => {
try {
const filters = await filtersReady;
const filter = filters[name];
const result = await filter(value);
callback(null, result);
} catch (err) {
callback(err);
}
});
}
function addShortcode(name) {
config.addNunjucksAsyncShortcode(name, async (props) => {
const components = await componentsReady;
const component = components[name];
return component.render(props).html;
});
}
config.addPlugin(pluginDate)
addShortcode('Schedule');
addShortcode('StopConnections');
addShortcode('TripSelect');
addFilter('gtfsArrivalToString');
addFilter('parseGtfsDate');
// pass some assets right through
config.addPassthroughCopy({
'src/site/assets': true,
'src/site/icon': true,
'src/site/manifest.json': true,
'src/site/css': '.',
});
/*config.addTransform('htmlmin', (content, outputPath) => {
if (outputPath.endsWith('.html')) {
return htmlmin.minify(content, {
collapseWhitespace: true,
removeComments: true,
useShortDoctype: true,
})
} else {
return content;
}
})*/
return {
pathPrefix: '/big-island-buses/',
dir: {
input: 'src/site',
output: 'big-island-buses',
},
};
};