Something went wrong. Try again.
Documentation for my projects & stuff, build using 11ty.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495import path from "node:path";
import * as sass from "sass";import htmlmin from "html-minifier-terser";
import markdownIt from "markdown-it";import markdownItAnchor from "markdown-it-anchor";
import { IdAttributePlugin } from "@11ty/eleventy";
import syntaxHighlight from "@11ty/eleventy-plugin-syntaxhighlight";import eleventyNavigationPlugin from "@11ty/eleventy-navigation";import tableOfContents from "eleventy-plugin-toc";
export default async function (eleventyConfig) { eleventyConfig.setInputDirectory("src");
eleventyConfig.addPassthroughCopy({ "src/public": "/", });
const md = markdownIt({ html: true, linkify: true, typographer: true, }).use(markdownItAnchor);
const defaultTableOpen = md.renderer.rules.table_open || ((tokens, idx, options, env, self) => self.renderToken(tokens, idx, options));
const defaultTableClose = md.renderer.rules.table_close || ((tokens, idx, options, env, self) => self.renderToken(tokens, idx, options));
md.renderer.rules.table_open = (tokens, idx, options, env, self) => '<div class="tableWrapper">\n' + defaultTableOpen(tokens, idx, options, env, self);
md.renderer.rules.table_close = (tokens, idx, options, env, self) => defaultTableClose(tokens, idx, options, env, self) + "</div>\n";
eleventyConfig.setLibrary("md", md);
// Extensions eleventyConfig.addExtension("scss", { outputFileExtension: "css",
// opt-out of Eleventy Layouts useLayouts: false,
compile: async function (inputContent, inputPath) { let parsed = path.parse(inputPath); if (parsed.name.startsWith("_")) { return; }
let result = sass.compileString(inputContent, { loadPaths: [parsed.dir || ".", this.config.dir.includes], style: "compressed", }); this.addDependencies(inputPath, result.loadedUrls);
return async (data) => { return result.css; }; }, });
// File formats eleventyConfig.addTemplateFormats("scss");
// Transforms eleventyConfig.addTransform("htmlmin", function (content) { if ((this.page.outputPath || "").endsWith(".html")) { let minified = htmlmin.minify(content, { removeComments: true, collapseWhitespace: true, });
return minified; }
return content; });
// Plugins eleventyConfig.addPlugin(IdAttributePlugin); eleventyConfig.addPlugin(syntaxHighlight); eleventyConfig.addPlugin(eleventyNavigationPlugin); eleventyConfig.addPlugin(tableOfContents);}