leilukin-site/eleventy.config.js

48 lines
1.8 KiB
JavaScript
Raw Normal View History

2024-05-06 10:43:37 +00:00
// Installed Plugins
2024-07-18 18:08:10 +00:00
import pluginRss from "@11ty/eleventy-plugin-rss";
2024-07-28 11:07:50 +00:00
import pluginEleventyNavigation from "@11ty/eleventy-navigation";
import pluginSyntaxHighlight from "@11ty/eleventy-plugin-syntaxhighlight";
2024-07-28 11:07:50 +00:00
import pluginEmbedEverything from "eleventy-plugin-embed-everything";
import pluginWordcount from "eleventy-plugin-wordcount-extended";
2024-07-28 11:08:51 +00:00
import pluginTOC from "@uncenter/eleventy-plugin-toc";
// Custom Configurations
import markdownItConfig from "./src/_config/markdown-it.js";
2024-07-28 11:48:35 +00:00
import filesConfig from "./src/_config/files.js";
import collectionsConfig from "./src/_config/collections.js";
2024-08-11 12:19:57 +00:00
import filtersConfig from "./src/_config/filters.js";
import shortCodesConfig from "./src/_config/shortcodes.js";
2024-07-18 18:08:10 +00:00
export default function(eleventyConfig) {
// Installed Plugins
2024-04-11 12:18:03 +00:00
eleventyConfig.addPlugin(pluginRss);
2024-07-28 11:07:50 +00:00
eleventyConfig.addPlugin(pluginEleventyNavigation);
eleventyConfig.addPlugin(pluginSyntaxHighlight, { preAttributes: { tabindex: 0 } });
2024-07-28 11:07:50 +00:00
eleventyConfig.addPlugin(pluginEmbedEverything, { add: ['soundcloud'] });
eleventyConfig.addPlugin(pluginWordcount);
eleventyConfig.addPlugin(pluginTOC, {
tags: ['h2', 'h3', 'h4', 'h5', 'h6'],
wrapper: function (toc) {
return `<nav class="toc" aria-labelledby="toc-heading">${toc}</nav>`;
},
});
// Custom Configurations
eleventyConfig.addPlugin(markdownItConfig);
2024-07-28 11:48:35 +00:00
eleventyConfig.addPlugin(filesConfig);
eleventyConfig.addPlugin(collectionsConfig);
2024-08-11 12:19:57 +00:00
eleventyConfig.addPlugin(filtersConfig);
eleventyConfig.addPlugin(shortCodesConfig);
// Eleventy bundle plugin
2024-07-18 13:08:32 +00:00
eleventyConfig.addBundle("css");
eleventyConfig.addBundle("js", { toFileDirectory: "assets/js" });
return {
markdownTemplateEngine: "njk",
htmlTemplateEngine: "njk",
dir: {
input: "src"
}
};
};