import { readFile } from "fs-extra"; import { unified } from "unified"; import remarkParse from "remark-parse"; import remarkRehype from "remark-rehype"; import rehypeStringify from "rehype-stringify"; import remarkFrontmatter from "remark-frontmatter"; import rehypeFormat from "rehype-format"; import rehypeRaw from "rehype-raw"; import rehypeWrap from "rehype-wrap"; // //NOTE input: markdown -> MDAST -> HAST -> HTML //TODO does not yet accept before/after JSX components. //This is using unified's rehypeDocument to create a boilerplate with a few //inserts (favicon, css, title) // export async function writePageMain(filepath) { const processor = await unified() .use(remarkParse) .use(remarkFrontmatter) .use(remarkRehype, { allowDangerousHtml: true }) .use(rehypeRaw) .use(rehypeWrap, { wrapper: "main" }) .use(rehypeFormat) .use(rehypeStringify) .process(await readFile(filepath, "utf-8")); return processor.value; } // let input = "./input/content/cookie.md"; // console.log(await writePageMain(input));