all repos — kushiyaki @ 7279eab4d8ffddd4631741e4d788ad76ee4250fc

🍢 A tiny static site generator for grilling markdown files to perfection

writeComponent.js (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
import { unified } from "unified";
import rehypeStringify from "rehype-stringify";
import rehypeFormat from "rehype-format";
import rehypeParse from "rehype-parse";
import rehypeRaw from "rehype-raw";

export async function writeComponent(componentName, data = {}) {
  const fn = await import(`./input/templates/${componentName}.jsx`);
  const jsxProcessor = unified()
    .use(rehypeParse, { fragment: true })
    .use(rehypeRaw)
    .use(rehypeFormat)
    .use(rehypeStringify);

  return jsxProcessor.stringify(await jsxProcessor.run(fn.default(data)));
}