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' } }; };