rename config file, remove unused filters, add support for tags etc
This commit is contained in:
parent
ef788d4612
commit
3dac465733
1 changed files with 27 additions and 31 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* I strive to keep the `.eleventy.js` file clean and uncluttered. Most adjustments must be made in:
|
* I try to keep the `eleventy.config.js` file clean and uncluttered. Most adjustments must be made in:
|
||||||
* - `./config/collections/index.js`
|
* - `./config/collections/index.js`
|
||||||
* - `./config/filters/index.js`
|
* - `./config/filters/index.js`
|
||||||
* - `./config/plugins/index.js`
|
* - `./config/plugins/index.js`
|
||||||
|
|
@ -13,47 +13,39 @@
|
||||||
* @param {import("@11ty/eleventy/src/UserConfig")} eleventyConfig
|
* @param {import("@11ty/eleventy/src/UserConfig")} eleventyConfig
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// get package.json
|
|
||||||
const packageVersion = require('./package.json').version;
|
|
||||||
|
|
||||||
// module import filters
|
// module import filters
|
||||||
const {
|
const {
|
||||||
limit,
|
|
||||||
toHtml,
|
|
||||||
where,
|
|
||||||
toISOString,
|
toISOString,
|
||||||
formatDate,
|
formatDate,
|
||||||
toAbsoluteUrl,
|
toAbsoluteUrl,
|
||||||
stripHtml,
|
stripHtml,
|
||||||
minifyCss,
|
minifyCss,
|
||||||
minifyJs,
|
minifyJs,
|
||||||
mdInline,
|
|
||||||
splitlines
|
splitlines
|
||||||
} = require('./config/filters/index.js');
|
} = require('./config/filters/index.js');
|
||||||
|
|
||||||
// module import shortcodes
|
// module import shortcodes
|
||||||
const {
|
const {imageShortcode, includeRaw, liteYoutube} = require('./config/shortcodes/index.js');
|
||||||
imageShortcodePlaceholder,
|
|
||||||
includeRaw,
|
|
||||||
liteYoutube
|
|
||||||
} = require('./config/shortcodes/index.js');
|
|
||||||
|
|
||||||
// module import collections
|
// module import collections
|
||||||
const {getAllPosts} = require('./config/collections/index.js');
|
const {getAllPosts} = require('./config/collections/index.js');
|
||||||
const {onlyMarkdown} = require('./config/collections/index.js');
|
const {onlyMarkdown} = require('./config/collections/index.js');
|
||||||
|
const {tagList} = require('./config/collections/index.js');
|
||||||
|
|
||||||
// module import events
|
// module import events
|
||||||
const {svgToJpeg} = require('./config/events/index.js');
|
const {svgToJpeg} = require('./config/events/index.js');
|
||||||
|
|
||||||
// plugins
|
// plugins
|
||||||
const markdownLib = require('./config/plugins/markdown.js');
|
|
||||||
const {EleventyRenderPlugin} = require('@11ty/eleventy');
|
const {EleventyRenderPlugin} = require('@11ty/eleventy');
|
||||||
const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
|
|
||||||
const {slugifyString} = require('./config/utils');
|
|
||||||
const {escape} = require('lodash');
|
|
||||||
const pluginRss = require('@11ty/eleventy-plugin-rss');
|
const pluginRss = require('@11ty/eleventy-plugin-rss');
|
||||||
const inclusiveLangPlugin = require('@11ty/eleventy-plugin-inclusive-language');
|
const inclusiveLangPlugin = require('@11ty/eleventy-plugin-inclusive-language');
|
||||||
const bundlerPlugin = require('@11ty/eleventy-plugin-bundle');
|
const bundlerPlugin = require('@11ty/eleventy-plugin-bundle');
|
||||||
|
const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
|
||||||
|
|
||||||
|
const markdownLib = require('./config/plugins/markdown.js');
|
||||||
|
const {slugifyString} = require('./config/utils/index.js');
|
||||||
|
const yaml = require('js-yaml');
|
||||||
|
|
||||||
module.exports = eleventyConfig => {
|
module.exports = eleventyConfig => {
|
||||||
// --------------------- Custom Watch Targets -----------------------
|
// --------------------- Custom Watch Targets -----------------------
|
||||||
|
|
@ -62,33 +54,33 @@ module.exports = eleventyConfig => {
|
||||||
|
|
||||||
// --------------------- layout aliases -----------------------
|
// --------------------- layout aliases -----------------------
|
||||||
eleventyConfig.addLayoutAlias('base', 'base.njk');
|
eleventyConfig.addLayoutAlias('base', 'base.njk');
|
||||||
eleventyConfig.addLayoutAlias('page', 'page.njk');
|
|
||||||
eleventyConfig.addLayoutAlias('home', 'home.njk');
|
eleventyConfig.addLayoutAlias('home', 'home.njk');
|
||||||
|
eleventyConfig.addLayoutAlias('page', 'page.njk');
|
||||||
eleventyConfig.addLayoutAlias('blog', 'blog.njk');
|
eleventyConfig.addLayoutAlias('blog', 'blog.njk');
|
||||||
eleventyConfig.addLayoutAlias('post', 'post.njk');
|
eleventyConfig.addLayoutAlias('post', 'post.njk');
|
||||||
|
eleventyConfig.addLayoutAlias('tags', 'tags.njk');
|
||||||
|
|
||||||
// --------------------- Custom filters -----------------------
|
// --------------------- Custom filters -----------------------
|
||||||
eleventyConfig.addFilter('limit', limit);
|
|
||||||
eleventyConfig.addFilter('where', where);
|
|
||||||
eleventyConfig.addFilter('escape', escape);
|
|
||||||
eleventyConfig.addFilter('toHtml', toHtml);
|
|
||||||
eleventyConfig.addFilter('toIsoString', toISOString);
|
eleventyConfig.addFilter('toIsoString', toISOString);
|
||||||
eleventyConfig.addFilter('formatDate', formatDate);
|
eleventyConfig.addFilter('formatDate', formatDate);
|
||||||
eleventyConfig.addFilter('toAbsoluteUrl', toAbsoluteUrl);
|
eleventyConfig.addFilter('toAbsoluteUrl', toAbsoluteUrl);
|
||||||
eleventyConfig.addFilter('stripHtml', stripHtml);
|
eleventyConfig.addFilter('stripHtml', stripHtml);
|
||||||
eleventyConfig.addFilter('slugify', slugifyString);
|
eleventyConfig.addFilter('slugify', slugifyString);
|
||||||
eleventyConfig.addFilter('toJson', JSON.stringify);
|
eleventyConfig.addFilter('splitlines', splitlines);
|
||||||
eleventyConfig.addFilter('fromJson', JSON.parse);
|
|
||||||
eleventyConfig.addFilter('cssmin', minifyCss);
|
eleventyConfig.addFilter('cssmin', minifyCss);
|
||||||
eleventyConfig.addNunjucksAsyncFilter('jsmin', minifyJs);
|
eleventyConfig.addNunjucksAsyncFilter('jsmin', minifyJs);
|
||||||
eleventyConfig.addFilter('md', mdInline);
|
|
||||||
eleventyConfig.addFilter('splitlines', splitlines);
|
eleventyConfig.addFilter('toJson', JSON.stringify);
|
||||||
|
eleventyConfig.addFilter('fromJson', JSON.parse);
|
||||||
|
|
||||||
eleventyConfig.addFilter('keys', Object.keys);
|
eleventyConfig.addFilter('keys', Object.keys);
|
||||||
eleventyConfig.addFilter('values', Object.values);
|
eleventyConfig.addFilter('values', Object.values);
|
||||||
eleventyConfig.addFilter('entries', Object.entries);
|
eleventyConfig.addFilter('entries', Object.entries);
|
||||||
|
|
||||||
// --------------------- Custom shortcodes ---------------------
|
// --------------------- Custom shortcodes ---------------------
|
||||||
eleventyConfig.addNunjucksAsyncShortcode('imagePlaceholder', imageShortcodePlaceholder);
|
eleventyConfig.addNunjucksAsyncShortcode('eleventyImage', imageShortcode);
|
||||||
eleventyConfig.addShortcode('youtube', liteYoutube);
|
eleventyConfig.addShortcode('youtube', liteYoutube);
|
||||||
eleventyConfig.addShortcode('include_raw', includeRaw);
|
eleventyConfig.addShortcode('include_raw', includeRaw);
|
||||||
eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`); // current year, stephanie eckles
|
eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`); // current year, stephanie eckles
|
||||||
|
|
@ -104,25 +96,29 @@ module.exports = eleventyConfig => {
|
||||||
// --------------------- Custom collections -----------------------
|
// --------------------- Custom collections -----------------------
|
||||||
eleventyConfig.addCollection('posts', getAllPosts);
|
eleventyConfig.addCollection('posts', getAllPosts);
|
||||||
eleventyConfig.addCollection('onlyMarkdown', onlyMarkdown);
|
eleventyConfig.addCollection('onlyMarkdown', onlyMarkdown);
|
||||||
|
eleventyConfig.addCollection('tagList', tagList);
|
||||||
|
|
||||||
// --------------------- Events ---------------------
|
// --------------------- Events ---------------------
|
||||||
eleventyConfig.on('afterBuild', svgToJpeg);
|
eleventyConfig.on('eleventy.after', svgToJpeg);
|
||||||
|
|
||||||
// --------------------- Plugins ---------------------
|
// --------------------- Plugins ---------------------
|
||||||
eleventyConfig.addPlugin(EleventyRenderPlugin);
|
eleventyConfig.addPlugin(EleventyRenderPlugin);
|
||||||
eleventyConfig.addPlugin(syntaxHighlight);
|
eleventyConfig.addPlugin(syntaxHighlight);
|
||||||
eleventyConfig.setLibrary('md', markdownLib);
|
|
||||||
eleventyConfig.addPlugin(pluginRss);
|
eleventyConfig.addPlugin(pluginRss);
|
||||||
eleventyConfig.addPlugin(inclusiveLangPlugin);
|
eleventyConfig.addPlugin(inclusiveLangPlugin);
|
||||||
eleventyConfig.addPlugin(bundlerPlugin);
|
eleventyConfig.addPlugin(bundlerPlugin);
|
||||||
|
eleventyConfig.setLibrary('md', markdownLib);
|
||||||
|
|
||||||
|
// Add support for YAML data files with .yaml extension
|
||||||
|
eleventyConfig.addDataExtension('yaml', contents => yaml.load(contents));
|
||||||
|
|
||||||
// --------------------- Passthrough File Copy -----------------------
|
// --------------------- Passthrough File Copy -----------------------
|
||||||
// same path
|
// same path
|
||||||
['src/assets/fonts/', 'src/assets/images/'].forEach(path =>
|
['src/assets/fonts/', 'src/assets/images/template'].forEach(path =>
|
||||||
eleventyConfig.addPassthroughCopy(path)
|
eleventyConfig.addPassthroughCopy(path)
|
||||||
);
|
);
|
||||||
|
|
||||||
// social icons to root directory
|
// to root
|
||||||
eleventyConfig.addPassthroughCopy({
|
eleventyConfig.addPassthroughCopy({
|
||||||
'src/assets/images/favicon/*': '/'
|
'src/assets/images/favicon/*': '/'
|
||||||
});
|
});
|
||||||
Loading…
Reference in a new issue