-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.eleventy.js
90 lines (88 loc) · 2.7 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
83
84
85
86
87
88
89
90
const {
fortawesomeBrandsPlugin,
} = require('@vidhill/fortawesome-brands-11ty-shortcode')
const createOgImage = require('./src/_functions/filters/createOgImage')
const { DateTime } = require("luxon");
module.exports = (config) => {
config.addPlugin(fortawesomeBrandsPlugin)
config.addFilter('notEmpty', (array, value) => {
return array.filter((items) => {
return items[value]
})
})
config.addFilter("asPostDate", (dateObj) => {
return DateTime.fromISO(dateObj).toLocaleString(DateTime.DATETIME_FULL, { locale: 'ru' });
});
config.addFilter('getNameById', (array, value) => {
const match = array.find((item) => item.Name === value)
return match ? match.id : ''
})
config.addNunjucksAsyncFilter('createOgImage', createOgImage)
config.addFilter('humanDate', (date) => {
const today = new Date();
const dateArray = date ? date.split('-') : today.toUTCString()
const getMonth = (month) => {
switch (month) {
case '1':
case '01':
return 'января'
case '2':
case '02':
return 'февраля'
case '3':
case '03':
return 'марта'
case '4':
case '04':
return 'апреля'
case '5':
case '05':
return 'мая'
case '6':
case '06':
return 'июня'
case '7':
case '07':
return 'июля'
case '8':
case '08':
return 'августа'
case '9':
case '09':
return 'сентября'
case '10':
return 'октября'
case '11':
return 'ноября'
case '12':
return 'декабря'
default:
return month
}
}
return `${dateArray[2]} ${getMonth(dateArray[1])} ${dateArray[0]}`
})
config.addPassthroughCopy('./src/styles')
config.addPassthroughCopy('./src/scripts')
config.addPassthroughCopy('./src/images')
config.addPassthroughCopy({
'node_modules/@fontsource/rubik/files/rubik-all-300-normal.woff':
'fonts/rubik/rubik-all-300-normal.woff',
'node_modules/@fontsource/rubik/files/rubik-all-400-normal.woff':
'fonts/rubik/rubik-all-400-normal.woff',
'node_modules/@fontsource/rubik/files/rubik-all-500-normal.woff':
'fonts/rubik/rubik-all-500-normal.woff',
'node_modules/@fontsource/rubik/files/rubik-all-600-normal.woff':
'fonts/rubik/rubik-all-600-normal.woff',
'node_modules/reseter.css/css/reseter.min.css': 'styles/reseter.min.css',
})
return {
markdownTemplateEngine: 'njk',
dataTemplateEngine: 'njk',
htmlTemplateEngine: 'njk',
dir: {
input: 'src',
output: 'public',
},
}
}