11ty-light-blog/.eleventy.js
2023-11-25 13:16:04 +01:00

60 lines
1.8 KiB
JavaScript

const pluginRss = require("@11ty/eleventy-plugin-rss");
// module import filters
const {
getDatetime,
getMonthDay,
getYear,
toFullDate,
renderSass,
renderSassString,
} = require('./config/filters/index.js');
module.exports = eleventyConfig => {
eleventyConfig.setUseGitIgnore(false);
eleventyConfig.addPlugin(pluginRss);
eleventyConfig.addWatchTarget('./src/assets');
eleventyConfig.addCollection('posts', collection => {
return [...collection.getFilteredByGlob('./src/posts/*.md')].reverse();
});
eleventyConfig.addFilter("getDatetime", getDatetime)
eleventyConfig.addFilter("getMonthDay", getMonthDay)
eleventyConfig.addFilter("getYear", getYear)
eleventyConfig.addFilter("toFullDate", toFullDate)
eleventyConfig.addFilter("sass", renderSass)
eleventyConfig.addFilter("sassInline", renderSassString)
eleventyConfig.addFilter("getAllTags", collection => {
let tagSet = new Set();
for(let item of collection) {
(item.data.tags || []).forEach(tag => tagSet.add(tag));
}
return Array.from(tagSet);
});
eleventyConfig.addFilter("limit", function (arr, limit) {
return arr.slice(0, limit);
});
eleventyConfig.addLayoutAlias('base', 'base.njk');
eleventyConfig.addLayoutAlias('home', 'home.njk');
eleventyConfig.addLayoutAlias('blog', 'blog.njk');
eleventyConfig.addLayoutAlias('post', 'post.njk');
eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`); // current year, stephanie eckles
return {
markdownTemplateEngine: 'njk',
dataTemplateEngine: 'njk',
htmlTemplateEngine: 'njk',
dir: {
input: 'src',
output: 'dist',
includes: '_includes',
layouts: '_layouts'
}
};
};