@beoe/rehype-penrose
Version:
rehype penrose plugin
29 lines (28 loc) • 914 B
JavaScript
import { rehypeCodeHookImg } from "@beoe/rehype-code-hook-img";
import { join } from "node:path";
import { penrose } from "./penrose.js";
export const rehypePenrose = rehypeCodeHookImg({
language: "penrose",
svgo: false,
render: async (code, opts) => {
if (!opts.domain || !opts.style)
throw new Error("domain and style required");
if (!opts.shared)
opts.shared = "";
if (!opts.width)
opts.width = 400;
if (!opts.height)
opts.height = 400;
return {
svg: await penrose({
substance: code,
style: join(opts.shared, opts.style),
domain: join(opts.shared, opts.domain),
variation: opts.variation || "",
width: opts.width,
height: opts.height,
}),
};
},
});
export default rehypePenrose;