import { pathToFileURL } from "node:url"; import { evaluate } from "@mdx-js/mdx"; import { renderToStaticMarkup } from "react-dom/server"; import * as runtime from "react/jsx-runtime"; import { feedPlugin } from "@11ty/eleventy-plugin-rss"; import { IdAttributePlugin } from "@11ty/eleventy"; export default function (eleventyConfig) { eleventyConfig.setInputDirectory("site-src"); eleventyConfig.setLayoutsDirectory("layout"); eleventyConfig.setTemplateFormats(["mdx", "njk"]); eleventyConfig.addExtension("mdx", { compile: async (str, inputPath) => { const { default: mdxContent } = await evaluate(str, { ...runtime, baseUrl: pathToFileURL(inputPath), }); return async function (data) { let res = await mdxContent(data); return renderToStaticMarkup(res); }; }, }); eleventyConfig.addPlugin(IdAttributePlugin); eleventyConfig.setNunjucksEnvironmentOptions({ throwOnUndefined: true, }); eleventyConfig.addPassthroughCopy("site-src/res"); eleventyConfig.addPassthroughCopy("site-src/*.png"); eleventyConfig.addPassthroughCopy("site-src/**/*.html"); eleventyConfig.addGlobalData("layout", "page.njk"); }