33 lines
1 KiB
JavaScript
33 lines
1 KiB
JavaScript
function unified(opts = {}) {
|
|
const processor = {
|
|
name: "unified",
|
|
options: {
|
|
remarkPlugins: [...opts.remarkPlugins ?? []],
|
|
rehypePlugins: [...opts.rehypePlugins ?? []],
|
|
remarkRehype: { ...opts.remarkRehype },
|
|
gfm: opts.gfm,
|
|
smartypants: opts.smartypants
|
|
},
|
|
async createRenderer(shared) {
|
|
const { createMarkdownProcessor } = await import("./index.js");
|
|
return createMarkdownProcessor({
|
|
...shared,
|
|
remarkPlugins: processor.options.remarkPlugins,
|
|
rehypePlugins: processor.options.rehypePlugins,
|
|
remarkRehype: processor.options.remarkRehype,
|
|
// `unified({ gfm, smartypants })` wins; fall back to the deprecated
|
|
// top-level `markdown.gfm` / `markdown.smartypants` while they still exist.
|
|
gfm: processor.options.gfm ?? shared.gfm,
|
|
smartypants: processor.options.smartypants ?? shared.smartypants
|
|
});
|
|
}
|
|
};
|
|
return processor;
|
|
}
|
|
function isUnifiedProcessor(p) {
|
|
return p.name === "unified";
|
|
}
|
|
export {
|
|
isUnifiedProcessor,
|
|
unified
|
|
};
|