mirror of
https://git.tacowolf.net/TacoWolf/mestizo.monster.git
synced 2026-06-12 08:50:04 -04:00
74 lines
2.2 KiB
JavaScript
74 lines
2.2 KiB
JavaScript
import markdownIt from "markdown-it";
|
|
import footnote_plugin from "markdown-it-footnote";
|
|
import readingTime from "eleventy-plugin-reading-time";
|
|
import EleventyVitePlugin from "@11ty/eleventy-plugin-vite";
|
|
|
|
/** @param {import("@11ty/eleventy").UserConfig} eleventyConfig */
|
|
export default async function (eleventyConfig) {
|
|
eleventyConfig.addPassthroughCopy({ assets: "/" });
|
|
eleventyConfig.addPassthroughCopy({ public: "/" });
|
|
eleventyConfig.addPassthroughCopy({ "public/img": "/img" });
|
|
eleventyConfig.addPassthroughCopy({ "public/favicon.ico": "/favicon.ico" });
|
|
eleventyConfig.addPassthroughCopy("**/*.jpg");
|
|
eleventyConfig.addPassthroughCopy("**/*.png");
|
|
|
|
eleventyConfig.addCollection("redirects", function (collectionApi) {
|
|
let redirects = [];
|
|
// get each post in our posts folder
|
|
const nodes = collectionApi.getFilteredByGlob("**/*.md");
|
|
// iterate over all the nodes
|
|
nodes.forEach((node) =>
|
|
// for each alias
|
|
(node.data.aliases || []).forEach((alias) =>
|
|
// push target url and the old url
|
|
redirects.push([
|
|
node.data.page.url,
|
|
node.data.page.url.replace(/\/[^\/]*?(\..+)?$/, `/${alias}$1`),
|
|
]),
|
|
),
|
|
);
|
|
return redirects;
|
|
});
|
|
|
|
function sortByDate(values) {
|
|
// inspired by
|
|
let vals = [...values];
|
|
return vals.sort((a, b) => {
|
|
return a.data.date < b.data.date ? 1 : -1;
|
|
});
|
|
}
|
|
eleventyConfig.addFilter("sortByDate", sortByDate);
|
|
|
|
let markdownItOptions = {
|
|
html: true,
|
|
breaks: true,
|
|
linkify: true,
|
|
};
|
|
eleventyConfig.setLibrary("md", markdownIt(markdownItOptions));
|
|
eleventyConfig.amendLibrary("md", (mdLib) => mdLib.use(footnote_plugin));
|
|
eleventyConfig.addPlugin(readingTime);
|
|
eleventyConfig.addPlugin(EleventyVitePlugin, {
|
|
tempFolderName: ".11ty-vite", // Default name of the temp folder
|
|
|
|
// Options passed to the Eleventy Dev Server
|
|
// Defaults
|
|
serverOptions: {
|
|
module: "@11ty/eleventy-dev-server",
|
|
domDiff: false,
|
|
},
|
|
|
|
// Defaults
|
|
viteOptions: {
|
|
clearScreen: false,
|
|
appType: "mpa",
|
|
|
|
server: {
|
|
middlewareMode: true,
|
|
},
|
|
|
|
build: {
|
|
emptyOutDir: true,
|
|
},
|
|
},
|
|
});
|
|
}
|