arnes.space/.eleventy.js
2022-10-01 14:04:22 +02:00

49 lines
1.2 KiB
JavaScript

const pluginRss = require('@11ty/eleventy-plugin-rss')
const markdownIt = require('markdown-it')
const footnotes = require('markdown-it-footnote')
const abbrs = require('markdown-it-abbr')
const { DateTime } = require('luxon')
const header = require('./src/_includes/filters/header')
module.exports = function (config) {
config.addPlugin(pluginRss)
config.setBrowserSyncConfig({
files: './_site/assets/*.css'
})
config.addPassthroughCopy('src/assets/key.txt')
config.addPassthroughCopy('src/assets/ibm-plex/IBM-Plex-Mono/fonts/**/*')
// configure markdown
const mdOptions = {
html: true,
breaks: true,
linkify: true
}
config.setLibrary("md",
markdownIt(mdOptions)
.use(footnotes)
.use(abbrs)
)
// template filters
// format dates as YYYY-MM-DD
config.addFilter('toISODate', date => DateTime.fromJSDate(date).toISODate())
// 10print homage
config.addFilter('header', header)
// returns classes to be used on <body>, given a page's url
config.addFilter('pageClasses', url => {
const segments = url.split('/').filter(s => s)
return segments.length ? segments.join(' ') : 'home'
})
return {
markdownTemplateEngine: "njk"
}
}