import { HtmlBasePlugin } from "@11ty/eleventy";
import { 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);

	/* 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"],
};
