3分钟用 Markdown 做出一套专业 PPT?Marp 从零到成片的完整路径
【免费下载链接】marpThe entrance repository of Markdown presentation ecosystem项目地址: https://gitcode.com/gh_mirrors/mar/marp
每次做 PPT,你是不是先花大量时间拖文本框、调字号,而不是写内容?Marp 是一个 Markdown 转 PPT 工具:你只用纯文本写内容,一条命令就能导出 PDF、PPTX 和 HTML 三种格式。它服务的正是想专注内容、不想被排版软件拖住时间的写作者和开发者。
能力速览:Marp 的 Markdown 转 PPT 能做什么
- 一条横线换页:在 Markdown 里敲
---水平线,它就是一页幻灯片的边界,不需要任何版式操作。 - 三种输出格式:PDF 最适合现场放映(任何设备都能打开);PPTX 可交给同事在 PowerPoint 里继续改;HTML 支持逐条展开的列表动画。
- 主题 + CSS 双管齐下:内置 gaia、uncover、default 等主题,一行指令切换;也接受普通 CSS 微调字体、配色、背景。
- 两种入口:命令行工具 Marp CLI 适合脚本化和批量处理;VS Code 扩展支持保存即预览,适合不想碰终端的人。
- 可扩展架构:底层基于 markdown-it,可以用插件加自定义语法,进阶玩法上限很高。
最小上手路径:安装命令与第一次导出
先确认本机装了 Node.js(12 及以上版本),然后执行安装:
npm install -g @marp-team/marp-cli不想装全局命令也可以直接用 npx 跑一次,不需要任何安装:
npx @marp-team/marp-cli@latest deck.md接着新建一个deck.md,内容如下——顶部叫 YAML front matter(文件开头用---包起来的配置区),用来声明这是 Marp 文稿并指定主题:
--- marp: true theme: gaia --- # 你好,Marp 用纯文本写内容就行。 --- # 第二页 一条 `---` 水平线就是一次换页。然后一条命令导出:
marp deck.md --pdf想边改边看效果,加上--watch --browser,文件一保存浏览器里的预览就刷新。
Marp CLI 左侧是转换过程,右侧是导出后的 PDF 预览
小贴士:导出 PDF 和 PPTX 依赖 Chromium 内核浏览器(Chrome 或 Edge)。首次运行会自动下载对应浏览器内核,稍等片刻即可。
场景实操:讲义页码与周报 PPTX 批量导出
场景一:课堂讲义。目标是出一份带页码、能随讲义发下去的 PDF。做法是在 front matter 里加两行:
--- marp: true theme: default paginate: true ---paginate: true让每一页右下角自动出现页码。如果你不想让封面页显示页码,把paginate: true挪到第二页开头用 HTML 注释(<!-- paginate: true -->)声明即可。效果是:内容只管按---分段,页码、换页全部自动完成。
场景二:团队周报。目标是把 5 份周报 Markdown 一次性变成可编辑的 PPTX。做法就是一条循环命令:
for f in reports/*.md; do marp "$f" --pptx; done每份周报都会在同目录生成同名 .pptx 文件,同事可以直接在 PowerPoint 里补图加字。
如果你更习惯图形界面,可以在 VS Code 里安装 Marp 扩展,打开带marp: true的 Markdown 文件就能看到实时预览,导出也是点按钮完成。
VS Code 左侧是 Markdown 源码,右侧是 Marp 实时幻灯片预览
进阶玩法:主题切换、CSS 样式与指令写法
换主题最省事的方式是改 front matter 里的theme,也可以在命令行直接用--theme uncover临时覆盖。
更精细的控制靠style指令写 CSS。这里不用懂复杂理论:把section想成单页幻灯片,h1、p就是页上的标题和正文。
--- theme: gaia style: | section { background: #f5f7fa; } h1 { color: #2c3e50; } ---另一类常用写法是局部指令,即写在某页里的 HTML 注释,只影响当页及后续页面:
<!-- header: 2026 产品季度汇报 footer: 内部资料 -->易错点:局部指令默认会"继承"给后面的页面。如果只想影响当前这一页,给指令名加下划线前缀,如
<!-- _color: red -->,后面的页面就不会跟着变。
全局指令作用于整套文稿,局部指令沿页面继承
常见问题:新手容易踩的 3 个坑
1. 页面没按预期切开?检查 front matter。文件开头的第一个和第二个---被当作配置区的边界,换页要从第三个---开始。另外,---前如果不留空行,紧跟在文字后面时会被解析成标题的下划线格式而不是换页,记得保留空行。
2. 列表动画在 PDF 里不见了?用*星号项目符号、1)括号数字写的"逐条展开"列表(fragmented list),只在 HTML 导出时生效;导出 PDF 和 PPTX 时会渲染成普通列表。要放映动画就选--html。
3. 第一次导出特别慢?正常现象,CLI 正在自动下载 Chromium 浏览器内核。之后的导出就不会再等这一环节。
现在就可以动手:写一个三页的deck.md,执行marp deck.md --pdf,你会在目录里拿到第一份成品。想深入了解指令细节和幻灯片语法,可以阅读仓库内website/docs/guide/下的文档,重点是how-to-write-slides.md(分页与语法)、directives.md(指令全表)和theme.md(主题定制)。
【免费下载链接】marpThe entrance repository of Markdown presentation ecosystem项目地址: https://gitcode.com/gh_mirrors/mar/marp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考