Files
start9.com/.eleventy.js
2024-01-31 09:12:18 -07:00

53 lines
1.7 KiB
JavaScript

const faviconPlugin = require("eleventy-plugin-gen-favicons");
const format = require('date-fns/format')
const pluginSEO = require("eleventy-plugin-seo");
const tinysvg = require('@sardine/eleventy-plugin-tinysvg');
const slinkity = require('slinkity')
// for 404 callback
const fs = require("fs");
const NOT_FOUND_PATH = "_site/404.html";
module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy('./src/assets/images/');
eleventyConfig.addPassthroughCopy('./src/assets/videos/');
eleventyConfig.addPassthroughCopy('public')
// plugins
eleventyConfig.addPlugin(faviconPlugin, { outputDir: './public' });
eleventyConfig.addPlugin(slinkity.plugin, slinkity.defineConfig({}))
eleventyConfig.addPlugin(pluginSEO, require("./src/_data/seo.json"));
eleventyConfig.addPlugin(tinysvg, {
baseUrl: 'src/_includes/svgs/',
});
// filters
eleventyConfig.addFilter('date', function (date, dateFormat) {
return format(date, dateFormat)
})
// 404 callback
eleventyConfig.setBrowserSyncConfig({
callbacks: {
ready: function(err, bs) {
bs.addMiddleware("*", (req, res) => {
if (!fs.existsSync(NOT_FOUND_PATH)) {
throw new Error(`Expected a \`${NOT_FOUND_PATH}\` file but could not find one. Did you create a 404.html template?`);
}
const content_404 = fs.readFileSync(NOT_FOUND_PATH);
// Add 404 http status code in request header.
res.writeHead(404, { "Content-Type": "text/html; charset=UTF-8" });
// Provides the 404 content without redirect.
res.write(content_404);
res.end();
});
}
}
});
return {
dir: { input: "src", output: "_site", data: "_data" },
};
};