import { HtmlBasePlugin, IdAttributePlugin } from "@11ty/eleventy";
import pluginFilters from "./_config/filters.js";
export default async function(eleventyConfig) {
/* Bundles */
/* CSS */
eleventyConfig.addBundle("css", {
toFileDirectory: "dist",
bundleHtmlContentFromSelector: "style",
});
/* Javascript */
eleventyConfig.addBundle("js", {
toFileDirectory: "dist",
bundleHtmlContentFromSelector: "script",
});
/* Passthrough */
eleventyConfig
.addPassthroughCopy("favicon.ico")
.addPassthroughCopy("robots.txt");
/* Plugins */
/* All filters from _config/filters.js */
eleventyConfig.addPlugin(pluginFilters);
/* Pathprefix stuff */
eleventyConfig.addPlugin(HtmlBasePlugin);
/* `id` attributes */
eleventyConfig.addPlugin(IdAttributePlugin);
/* Draft handling */
eleventyConfig.addPreprocessor("drafts", "*", (data, content) => {
if(data.draft) {
return false;
}
});
/* Shortcodes */
eleventyConfig.addShortcode("currentBuildDate", () => {
return (new Date()).toISOString();
});
/* Watch when serving */
eleventyConfig.addWatchTarget("css");
};
export const config = {
dir: {
input: "src",
includes: "../_includes",
layouts: "../_includes/layouts",
data: "../_data"
},
markdownTemplateEngine: "njk",
htmlTemplateEngine: "njk",
templateFormats: ["html", "md", "njk"],
};