F 导出 HTML 和 PDF
F-1 导出 PDF
我想实现什么: 把幻灯片保存为 PDF 文件,方便分享和打印。
操作步骤:
- 在 VS Code 里打开
.md文件 - 按
Ctrl+Shift+P(Mac:Cmd+Shift+P)打开命令面板 - 输入
Marp,选择 Marp: Export Slide Deck… - 在保存对话框中选择
.pdf格式 - 选择保存位置,点击保存
- 等待几秒(进度条在底部状态栏显示)
PDF 的优点:
- 本地图片会被嵌入,发一个文件就够
- 任何设备都能打开,不需要插件
- 字体和排版完全固定
常见问题:
- 导出后打开 PDF,图片不见了 → 图片路径有误,重新检查相对路径
- 导出很慢,一直等 → 正常,特别是第一次使用时 Marp 会下载 Chromium
- 导出报错 → 重启 VS Code 后再试
批量导出(命令行方式):
如果你安装了 Node.js,可以在终端里用命令行导出:
npx @marp-team/marp-cli slides.md --pdfF-2 导出 HTML
我想实现什么: 把幻灯片保存为 HTML 文件,可以在浏览器里展示。
操作步骤:
和导出 PDF 完全一样,只是在保存对话框里选 .html 格式。
HTML 的优点:
- 可以在浏览器里展示,支持鼠标点击翻页
- 文件通常比 PDF 小
- 可以放到网站上
HTML 的注意事项:
- 本地图片不会嵌入 HTML(这是最大的坑)
- 如果幻灯片有本地图片,分享时必须连图片文件夹一起发
- 详见 F-3
导出带嵌入图片的 HTML(实验性功能):
Marp CLI 可以用 --html 配合 --allow-local-files 导出嵌入图片的 HTML:
npx @marp-team/marp-cli slides.md --html --allow-local-files注意:这个功能在 VS Code 插件里不一定支持,命令行方式更可靠。
F-3 HTML 分享时图片不见了
我想实现什么: 搞清楚为什么发出去的 HTML 里图片消失了,以及怎么解决。
原因:
Marp 导出的 HTML 文件里,图片是用路径引用的:
<img src="./Fig/chart.png">这个路径只在你的电脑上有效。对方拿到 HTML 文件后,他们的电脑上没有 ./Fig/chart.png,所以图片消失。
解决方案一:发整个文件夹(推荐)
my_slides/ ← 把这整个文件夹压缩成 zip 发出去
├── slides.html
└── Fig/
├── chart.png
└── diagram.png
对方解压后,在自己电脑上打开 slides.html,图片就能显示。
解决方案二:用图床代替本地图片
把图片上传到图床,用网络链接替代本地路径:
这样 HTML 文件单独发出去也能显示图片(需要网络)。
解决方案三:直接发 PDF
本地图片 + PDF 是最省心的组合。如果只是发给别人查看,不需要 HTML。
决策建议:
我要分享幻灯片
├── 给别人查看 → PDF(最省心)
├── 在网站上展示 + 图片不多 → 图床 + HTML
└── 在网站上展示 + 不想折腾图床 → 压缩文件夹 + HTML
F-4 图床基本思路
我想实现什么: 了解图床是什么,以及什么时候值得用。
图床是什么:
图床是一种在线图片存储服务。你把图片上传上去,它给你一个公开可访问的链接。在 Marp 里用这个链接替代本地路径:
<!-- 本地路径 -->

<!-- 图床链接 -->
用了图床之后,任何设备、任何地方打开这份幻灯片(PDF 或 HTML),都能看到图片——只要有网络。
常用图床对比:
| 服务 | 费用 | 稳定性 | 适合场景 |
|---|---|---|---|
| GitHub + jsDelivr | 免费 | 高 | 长期使用,技术用户 |
| Cloudflare Images | 付费 | 很高 | 重要项目 |
| SM.MS | 免费(有限额) | 中 | 临时测试 |
| 阿里云 OSS | 付费 | 很高 | 商业使用 |
| 微博/公众号图片 | 免费 | 低 | 不推荐,链接会失效 |
什么时候值得用图床:
- 你有持续在线分享幻灯片的需求
- 你的幻灯片需要发布到网站上
- 你需要多人协作,大家都能看到图片
- 你的图片数量少,上传不麻烦
什么时候不需要:
- 你只是偶尔发 PDF 给别人
- 你的幻灯片只在自己电脑上用
- 你是初学阶段,不想增加工作量
推荐的 GitHub 图床工作流(简版):
- 在 GitHub 上建一个仓库,专门用来存图片
- 把图片上传到这个仓库
- 用 jsDelivr 生成 CDN 链接:
https://cdn.jsdelivr.net/gh/用户名/仓库名@main/图片名.png - 在 Marp 里用这个链接
帮我介绍如何在 GitHub 上建立一个图床仓库,并用 jsDelivr 生成图片链接。要求步骤简洁,面向没有 GitHub 使用经验的初学者。