marp插件需严格配置yaml头(---\nmarp: true\n---)、统一用---分页、导出前先预览渲染完成;否则预览不生效、分页错乱或pdf空白。

不用装 PowerPoint,也不用学复杂排版,VSCode + Marp 就能直接写 PPT —— 但前提是 YAML 配置写对、分页符用准、预览开关开对,三者错一个,Marp: Preview Slide 就不生效。
AI一键生成成品PPT☜☜☜☜☜点击生成;
怎么确认 Marp 插件已真正启用
很多人点了右上角 Marp 图标却没反应,不是插件没装,而是当前文件没被识别为 Marp 文件。VSCode 不会自动把任意 .md 当幻灯片处理。
- 必须在文件最开头(第1行)写
---,第2行写marp: true,第3行再写---,三行缺一不可;空格、换行、中文标点都会导致失效 - 如果用了其他主题(比如
theme: gaia),也得放在这个 YAML 区块里,不能写在后面 - 文件名无所谓叫
slides.md还是presentation.md,但后缀必须是.md,且不能是.markdown - 打开命令面板(
Ctrl+Shift+P),输入Marp: Toggle Marp feature for current Markdown手动启用一次,比瞎点图标更可靠
分页到底用 --- 还是用 ##?
两种方式都行,但行为完全不同:前者是「强制分页」,后者是「智能分页」,混用容易翻车。
- 用
---分页:每出现一次,就切一页,不管前后内容是否完整,适合控制节奏或插入过渡页 - 用
##分页:依赖 YAML 里的headingDivider: 2设置,只对二级标题生效;若设成[2,3],则##和###都会分页 - 常见错误:在同一个文件里,前面用
##分页,中间插一段---,结果后续##不再触发分页 —— 因为 Marp 默认只认第一种分页逻辑生效后的状态 - 建议新手统一用
---,写完再根据逻辑调整,比调试 headingDivider 更直观
导出 PDF 总是空白或格式错乱
这不是 Marp 的 bug,而是 VSCode 渲染预览和导出引擎不一致导致的——导出时会跳过未加载完成的 CSS 或异步资源。
- 导出前务必先点开预览窗口(快捷键
Ctrl+K V),等所有页面完全渲染出来、滚动到底部无卡顿,再导出 - 如果用了自定义
<style></style>或外部字体,PDF 导出可能不支持;优先用 Marp 内置主题(theme: uncover等),它们专为导出优化过 - 导出失败时别急着重启,先检查终端是否有报错:
Marp: Failed to export. Please check if Chromium is available.—— 这说明 VSCode 内置浏览器引擎没加载好,关掉预览窗重开一次通常就能恢复 - 需要带代码高亮?确保 YAML 中有
math: true和html: true,否则```js块可能被当纯文本渲染
最容易被忽略的是:Marp 的 YAML 头信息必须严格顶格、无缩进、无 BOM 字符。哪怕复制粘贴时多了一个看不见的零宽空格,整个文件就变成普通 Markdown,连 Ctrl+K V 都不会响应。











