在Node.js中使用
我们可以通过利用 node-html-to-image,轻松地将 Markmap 渲染为 PNG 图像,该库在底层使用 Puppeteer。
import { Transformer } from 'markmap-lib';
import { fillTemplate } from 'markmap-render';
import nodeHtmlToImage from 'node-html-to-image';
import { writeFile } from 'node:fs/promises';
async function renderMarkmap(markdown: string, outFile: string) {
const transformer = new Transformer();
const { root, features } = transformer.transform(markdown);
const assets = transformer.getUsedAssets(features);
const html =
fillTemplate(root, assets, {
jsonOptions: {
duration: 0,
maxInitialScale: 5,
},
}) +
`
<style>
body,
#mindmap {
width: 2400px;
height: 1800px;
}
</style>
`;
const image = await nodeHtmlToImage({
html,
});
await writeFile(outFile, image);
}
renderMarkmap(markdown, 'markmap.png');
注意:Puppeteer 可能会使用大量内存。