Files
start9.com/.eleventy.js
Matt Hill bcf8803343 fix proxy.pac deployment and clean up dead passthroughs
- Add post-build step to copy proxy.pac into _site/assets/ since the
  Slinkity production build crashes before passthrough copies complete
- Remove dead videos passthrough (directory doesn't exist)
- Remove redundant images passthrough (Vite handles these via imports)
- Format .eleventy.js (consistent quotes, semicolons, trailing newline)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:46:19 -06:00

54 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/proxy.pac");
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" },
};
};