Markdown 转 PPT:一键生成演示文稿
写 PPT 最费时间——选模板、调字体、对齐元素。但如果你先用 Markdown 写内容,再用工具一键转 PPT,效率提升 10 倍。本文详解 Markdown 转 PPT 的方法。
为什么用 Markdown 写 PPT?
传统 PPT 的痛点
- 内容与样式混在一起
- 修改一处样式要逐页调整
- 团队协作困难(PPT 文件冲突)
- 版本管理麻烦
Markdown 的优势
- 内容与样式分离
- 用 Git 管理版本
- 团队协作像写代码
- 一键套主题,全局样式
- 跨平台(Windows/Mac/Linux)
Marp:Markdown 转 PPT 的事实标准
Marp(Markdown Presentation Ecosystem)是开源项目,把 Markdown 转 PPT。
基本语法
---
marp: true
theme: default
---
# 第一页标题
内容
---
# 第二页标题
内容
--- 分隔每页幻灯片。
52tool Markdown 编辑器
工具地址:Markdown 编辑器
功能
- Marp 语法支持
- 实时预览
- 主题切换
- 导出 HTML
- 浏览器端运行
实战 1:基本 PPT
输入:
---
marp: true
theme: default
---
# 项目介绍
张三 | 2026-08-02
---
# 议程
1. 项目背景
2. 技术方案
3. 实施计划
4. Q&A
---
# 项目背景
- 痛点:用户增长慢
- 机会:移动端流量爆发
- 目标:3 个月内月活翻倍
右侧实时显示幻灯片效果。
实战 2:选择主题
---
marp: true
theme: gaia
---
可选主题:
- default:默认
- gaia:简洁现代
- uncover:极简
实战 3:自定义样式
---
marp: true
theme: default
style: |
section {
background: linear-gradient(to right, #667eea, #764ba2);
color: white;
}
h1 {
color: yellow;
}
---
Marp 完整语法
分页
第一页内容
---
第二页内容
幻灯片元数据
每张幻灯片可单独设置:
<!-- _class: lead -->
# 居中大标题页
<!-- _class: invert -->
# 反色背景页
<!-- _paginate: false -->
# 不显示页码的页
directives(指令)
文件顶部全局指令:
---
marp: true
theme: default
paginate: true # 显示页码
size: 16:9 # 16:9 或 4:3
backgroundColor: #fff
color: #333
header: '...'
footer: '...'
---
每张幻灯片局部指令:
<!-- backgroundColor: #f0f0f0 -->
# 这页背景灰色
<!-- color: red -->
# 这页文字红色
标题页(lead)
<!-- _class: lead -->
# 主标题
副标题
居中显示。
反色页(invert)
<!-- _class: invert -->
# 深色背景
图片
 背景图右侧
 背景图左侧
 图片完整显示
 图片填充
 适配
 指定宽度
 指定高度
全屏背景图

# 标题
文字
多列布局
<div class="columns">
<div>
## 左列
- 项目 1
- 项目 2
</div>
<div>
## 右列
- 项目 3
- 项目 4
</div>
</div>
需要主题支持 columns 类。
代码高亮
def hello():
print("Hello, World!")
支持 200+ 语言。
表格
| 名称 | 价格 |
|------|------|
| 苹果 | 5 元 |
| 香蕉 | 3 元 |
引用
> 这是一段引用
> 多行
列表
- 项目 1
- 项目 2
- 子项目
数学公式
行内公式 $E = mc^2$
块级公式:
$$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$$
实战:技术分享 PPT
---
marp: true
theme: gaia
paginate: true
size: 16:9
---
<!-- _class: lead -->
# React Hooks 实战
张三 | 2026-08-02
---
# 议程
1. Hooks 是什么
2. 常用 Hooks
3. 自定义 Hooks
4. 最佳实践
---
# Hooks 是什么
React 16.8 引入的特性:
- 在函数组件中使用 state
- 不需要写 class 组件
- 逻辑可复用
const [count, setCount] = useState(0);
---
# useState
最基础的 Hook:
function Counter() {
const [count, setCount] = useState(0);
return
{count}
;
}
---
<!-- _class: invert -->
# useEffect
处理副作用
---
# 自定义 Hook
function useWindowSize() {
const [size, setSize] = useState({w: 0, h: 0});
useEffect(() => {
const handler = () => setSize({w: innerWidth, h: innerHeight});
window.addEventListener('resize', handler);
return () => window.removeEventListener('resize', handler);
}, []);
return size;
}
---
<!-- _class: lead -->
# Q&A
谢谢!
实战:项目周报 PPT
---
marp: true
theme: default
paginate: true
header: '项目周报'
footer: '2026-08-02'
---
<!-- _class: lead -->
# 项目周报
张三 | 团队 A
---
# 上周进度
## 已完成
- [x] 用户模块开发
- [x] 数据库设计
- [x] API 文档
## 进行中
- [ ] 性能优化
- [ ] 测试覆盖
---
# 本周计划
| 任务 | 负责人 | 截止 |
|------|--------|------|
| 性能优化 | 张三 | 周三 |
| 单元测试 | 李四 | 周五 |
| 上线准备 | 王五 | 周日 |
---
# 风险与问题
1. **资源不足**:需要增加 1 名后端
2. **依赖延迟**:第三方 API 上线推迟
3. **测试环境**:服务器不稳定
---
<!-- _class: lead -->
# 谢谢
导出 PPT
导出 HTML
52tool 编辑器导出 HTML,可在浏览器全屏演示。
导出 PDF
浏览器打印为 PDF(Ctrl+P),选择"保存为 PDF"。
导出 PPTX
安装 Marp CLI:
npm install -g @marp-team/marp-cli
marp slides.md --pptx
得到可编辑的 .pptx 文件。
导出 PDF(命令行)
marp slides.md --pdf
主题定制
自定义主题
---
marp: true
theme: default
style: |
/* 全局样式 */
section {
font-family: 'Microsoft YaHei', sans-serif;
background: #fafafa;
color: #333;
}
/* 标题样式 */
h1 {
color: #2c3e50;
border-bottom: 3px solid #3498db;
padding-bottom: 10px;
}
/* 代码块 */
pre {
background: #2d2d2d;
color: #f8f8f2;
border-radius: 8px;
}
/* 引用 */
blockquote {
border-left: 4px solid #3498db;
background: #ecf0f1;
padding: 10px 20px;
}
---
自定义 CSS 类
<!-- _class: lead -->
# 居中页
<!-- _class: summary -->
# 总结页(自定义类)
summary {
background: linear-gradient(135deg, #667eea, #764ba2);
color: white;
}
与其他工具对比
| 工具 | 优势 | 劣势 |
| PowerPoint | 所见即所得 | 难协作、样式繁琐 |
| Keynote | 美观、动画强 | 仅 Mac |
| Google Slides | 协作好 | 需联网 |
| Marp | Markdown 写、Git 管理 | 设计感弱 |
| Reveal.js | HTML/JS 灵活 | 学习曲线陡 |
| Slidev(Vue) | 现代化、Vue 生态 | 需 Node |
适合场景
适合用 Markdown PPT
- 技术分享
- 代码演示
- 项目周报
- 内部培训
- 个人作品集
不适合用 Markdown PPT
- 商业提案(需要精美设计)
- 产品发布(需要动画)
- 客户演示(需要品牌一致性)
- 复杂图表
进阶技巧
技巧 1:用 mermaid 画流程图
graph TD
A[用户请求] --> B{已登录?}
B -- 是 --> C[返回数据]
B -- 否 --> D[跳转登录]
技巧 2:嵌入 HTML
<iframe src="https://www.youtube.com/embed/..." width="800" height="450">
</iframe>
技巧 3:动画
section {
animation: fadeIn 1s;
}
技巧 4:多列卡片
<div style="display: flex; gap: 20px;">
<div style="flex: 1; background: #f0f0f0; padding: 20px;">
<h3>卡片 1</h3>
内容
</div>
<div style="flex: 1; background: #f0f0f0; padding: 20px;">
<h3>卡片 2</h3>
内容
</div>
</div>
常见问题解答
Q: Marp 与 Slidev 哪个好?
A: Marp 更简单、跨语言;Slidev 更现代、Vue 生态。技术分享两者都行,初学者选 Marp,Vue 开发者选 Slidev。
Q: Marp 支持中文吗?
A: 支持。主题字体可设置中文字体:font-family: 'Microsoft YaHei', sans-serif;。
Q: 转出的 PPTX 能再编辑吗?
A: 能。但 Marp 转出的 PPTX 每页是图片+文字框组合,编辑不如原生 PPT 方便。
Q: Marp 主题哪里下载?
A: GitHub 搜 "marp-theme"。官方主题:default、gaia、uncover。社区主题很多。
Q: 多人协作怎么做?
A: 把 Markdown 文件存 Git 仓库,团队 PR 协作。演示时各自导出 PPT 即可。
Q: 工具会保存我的 PPT 内容吗?
A: 52tool Markdown 编辑器在浏览器端运行,内容不上传服务器。敏感内容(如内部数据)可放心使用。
总结
Markdown 转 PPT 是开发者高效演示的方案:
- 在线写作 → 52tool Markdown 编辑器
- 命令行导出 → Marp CLI
- 主题定制 → CSS 样式
- 团队协作 → Git 仓库
记住:内容用 Markdown 写,样式用 CSS 控制。比 PowerPoint 效率高 10 倍,但商业演示还是用专业设计工具。