60 lines
1.8 KiB
JavaScript
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'
|
|
}
|
|
};
|
|
}; |