如何用Mkdocs导出含Mermaid图的合并PDF文件?
解决方案:导出含Mermaid图的合并PDF
针对你用mkdocs-material渲染Mermaid图但PDF导出遇阻的问题,这里有几个可行的方案:
1. 预渲染Mermaid为静态图片 + mkdocs-pdf-export-plugin
因为依赖WeasyPrint的插件无法处理JS渲染的Mermaid,你可以提前把Mermaid图转成静态图片,再用mkdocs-pdf-export-plugin合并:
- 安装
mermaid-cli(通过npm或yarn) - 编写脚本遍历所有Markdown文件,将
```mermaid代码块替换为对应的图片引用(比如) - 正常运行mkdocs-pdf-export-plugin,此时插件会把图片和内容一起合并成单PDF
2. 自定义浏览器自动化脚本
利用浏览器渲染JS的能力,自己实现页面遍历和PDF合并:
- 先执行
mkdocs build生成静态站点 - 用Puppeteer(Node.js)或Playwright编写脚本,逐个访问静态站点的所有页面,调用浏览器的打印API生成单页PDF
- 用PyPDF2或其他PDF工具将所有单页PDF合并为一个文件
3. 使用mkdocs-print-site-plugin
这个插件可以生成一个包含所有站点内容的单页HTML,再通过浏览器打印导出合并PDF:
- 安装插件后,在mkdocs.yml中添加配置:
plugins: - print-site - 执行
mkdocs build后,访问站点的/print-site.html路径 - 用浏览器打开该页面,等待Mermaid图渲染完成后,直接打印并保存为PDF(浏览器会自动合并所有内容为单文件)
内容的提问来源于stack exchange,提问作者nguyendhn
相关产品推荐
相关产品推荐

