制作演示文稿时,最困难的部分就是确定好故事情节。你想要表达什么?整个结构是怎样的?哪些部分应该相互衔接?数据应该以表格还是列表的形式呈现?是在对比之前还是之后展示这些数据呢?
如果有可以依据来进行修改的内容,就会方便很多。从零开始制作演示文稿确实很困难,而根据初稿进行修改则要容易得多。“把这个内容放在那个前面”显然比“我应该说些什么”更容易操作。
这就是我想向你们展示的工作流程。我会使用Claude Code和Marp来构思演示文稿的内容。Claude能帮助我进行头脑风暴,生成初稿供我参考,然后我就可以通过“对话”或直接编辑Markdown格式来进行后续修改。整个过程其实都是基于文本文件完成的。🎉
(我在撰写这篇文章时也是使用这个流程来组织思路的。你们可以在这里找到相关资料。)
我们将涵盖以下内容:
工作流程
整个过程分为四个阶段:头脑风暴、根据初稿修改、迭代优化和导出演示文稿。下面我来详细解释每一个阶段。
头脑风暴
你可以使用一个斜杠命令来开始这个过程(稍后我会告诉你们具体的命令格式):
/create-marp-deck API rate limiting
Claude会首先与你进行交流,询问你的目标、受众群体、关键信息以及你希望包含的数据。这一环节迫使你在制作任何幻灯片之前先明确整个故事情节。

~/projects/my-app $ claude
> /create-marp-deck API rate limiting
─────────────────────────────────────────────
Claude: 这个演示是关于什么的?听众应该了解哪些内容?
User: 是关于我们的速率限制机制是如何工作的,我们选择了哪种算法以及选择它的原因,还有他们需要知道如何为自己的服务配置这种机制。
Claude: 面向的受众是谁?
User: 是平台工程团队——他们熟悉我们的技术栈,但还不了解速率限制的内部原理。
Claude: 你打算涵盖哪些关键点或章节呢?
User: 1. 为什么我们需要实施速率限制(比如上个月发生的那个事件);
2. 令牌桶机制与滑动窗口机制的对比以及我们的最终选择;
3. 如何为不同的服务配置速率限制机制;
4. 监控仪表盘的用法说明。
可以把这个过程看作是一次简单的头脑风暴:你先把自己的想法表达出来,而Claude会帮你整理这些思路,使其结构更加清晰。
React
一旦大家就内容结构达成一致,Claude就会生成完整的Marp Markdown文件并导出出来。这样你就得到了一个初稿,可以根据需要进行修改和调整。

那个标题幻灯片就是根据以下Markdown代码生成的:
<!-- _class: lead title-slide -->
# API速率限制
## 技术深度解析
**团队**: 平台工程部
**日期**: 2026年2月
这个稿件完美吗?可能并不完美。但至少你现在有了一个结构清晰、内容完整的初稿,可以在此基础上继续修改和完善。这比从零开始创作要快得多。
当你浏览这些幻灯片时,就能立刻判断整个讲述的内容是否连贯、是否易于理解。
迭代优化
在审阅初稿的过程中,肯定会产生一些新的想法:“哦,这里应该加一个对比表”,“这个章节内容太密集了,也许应该分成两部分”,“把这个总结放在最前面会更好”。
有一种方法可以让Claude Code自动帮你完成这些修改:
"第6页的内容太密集了。把算法对比部分分成两页,一页介绍令牌桶机制,另一页介绍滑动窗口机制。"

> 第6页的内容太密集了。把算法对比部分分成两页——一页介绍令牌桶机制,另一页介绍滑动窗口机制。
Claude: 我会把第6页分成两页,分别介绍这两种算法。
修改文件:presentations/api-rate-limiting.md
───────────────────────────────────────
- # 算法对比
- | 特点 | 令牌桶机制 | 滑动窗口机制 |
+ # 令牌桶机制
+ 令牌以固定速率进行补充……
+ ---
+ # 滑动窗口机制
+ 能准确记录每个请求的时间戳……
> 在第1页添加一段解释“为什么选择令牌桶机制”的文字
你也可以在VS Code中使用Marp扩展进行实时预览编辑。打开.md文件,按下Ctrl+Shift+V键,左侧会显示源代码,右侧则会呈现渲染后的幻灯片效果。当Claude Code修改文件内容时,VS Code会自动检测到变化,并更新预览结果。我通常会将这两个窗口并排打开,使用起来非常方便。

导出
完成编辑后,你会得到三个文件:
-
.md– 源代码文件(支持版本控制及差异对比) -
.html– 可在任意浏览器中打开,也可通过Slack分享 -
.pptx– 可在PowerPoint中打开,适用于各种演示场合
$ marp --no-stdin deck.md -o deck.html
[ INFO ] 正在转换1个markdown文件...
[ INFO ] deck.md => deck.html
$ marp --no-stdin --pptx deck.md -o deck.pptx
[ INFO ] 正在转换1个markdown文件...
[ INFO ] deck.md => deck.pptx
$ ls presentations/
api-rate-limiting.md
api-rate-limiting.html ✓ 可在浏览器中打开,也可通过Slack分享
api-rate-limiting.pptx ✓ 可在PowerPoint中打开,适用于各种演示场合

该工具会在生成演示文稿后自动执行导出操作。一个包含15张幻灯片的文件,大约需要2秒钟就能完成转换。
可编辑的PPTX格式
标准格式的PPTX文件会将每张幻灯片都渲染成图片形式——图像质量非常精确,但你在PowerPoint或Google Slides中无法直接编辑文本。如果你需要可编辑的文本功能,Marp提供了--pptx-editable选项,该选项会使用LibreOffice来生成真正的文本框。
不过需要注意的是,LibreOffice生成的文本框宽度往往较窄,导致文字会自动换行并重叠。为此,该工具附带了一个python-pptx后处理脚本,可以自动调整文本框的宽度以解决这个问题。只需选择“可编辑的PPTX格式”,其余步骤都会由该工具自动完成——包括LibreOffice的转换操作以及文本框的优化处理。
5分钟内即可开始使用
好的,你准备好了吗?以下是所需的所有步骤:
1. 安装Marp命令行工具:
npm install -g @marp-team/marp-cli
2. 通过skills.sh安装该工具:
npx skills add Omerr/claude-skills
这个工具可以与Claude Code、Cursor、GitHub Copilot等其他AI辅助工具一起使用。你也可以手动进行安装(具体操作请参见仓库页面)。
3. 开始使用它:
/create-marp-deck 在这里输入你的主题
4. 迭代优化:
根据初稿进行修改,通过讨论或使用VS Code进一步完善内容,最后导出成果。
就是这么简单。只需四个步骤:克隆仓库后,根据个人习惯调整相关格式规范即可。
应用案例:这篇文章本身
想看看这种工作流程在实际中的应用吗?你现在看到的就是例子。
我撰写这篇文章时,首先按照上述步骤制作了幻灯片。我运行了/create-marp-deck命令,回答了相关问题,得到了初稿,然后不断迭代修改,直到内容表达得恰到好处。你可以在这里查看这些幻灯片。
为什么要从制作幻灯片开始呢?因为这个过程会迫使你条理清晰、逻辑连贯地组织内容。如果15张幻灯片都无法完整表达一个想法,那么1500字的文章也很难写得通顺。这些幻灯片成为了我的写作大纲,一旦有了清晰的框架,撰写文章就会变得容易许多。
所以,如果你正在看着空白的文档思考“应该写一篇关于X的博客文章”,不妨先尝试制作一份幻灯片。你会发现,当故事情节已经清晰明确时,写作速度会快很多呢。😎
技术原理
如果你对这一流程背后的技术原理感兴趣,请继续阅读;如果不感兴趣的话,直接跳过这部分也完全没问题。🙌🏻
Marp:将Markdown转换为幻灯片
Marp(Markdown演示文稿工具)可以将.md文件转换为幻灯片。制作幻灯片时,首先需要编写一些前置代码:
---
marp: true
theme: default
paginate: true
size: 16:9
---
只需四行代码,就能得到宽屏布局、支持分页的幻灯片。在Markdown中,使用---即可分隔不同的幻灯片部分。你的演示文稿实际上就是一个文本文件,可以进行版本控制、差异对比,甚至还能用人工智能工具进行编辑。
技能脚本
每次你都可以让Claude Code来为你生成Marp格式的演示文稿,但你会花费大量时间去解释自己喜欢的格式设置、颜色方案和幻灯片结构。
为此,我专门编写了一个Claude Code技能脚本(详见这里),这套脚本每次被调用时都会自动执行相应的操作。它包含两个部分:
-
“访谈阶段”:在开始生成内容之前,会收集相关背景信息(例如头脑风暴中提出的5个问题)。
-
“生成阶段”:按照Marp的标准格式进行内容制作,包括选择CSS样式、确定幻灯片结构、添加导航条、设置格式规则以及执行导出操作。
整个脚本大约有200行代码。虽然看起来有些复杂,但只需编写一次,之后每次创建新演示文稿时,这些规范都会自动被应用。
章节分隔符
演示文稿的每个部分都会使用不同的渐变背景色。因此,在进行演示时,观众能够直观地判断出您是否切换到了新的主题:

这是通过CSS类来实现的:
<!-- _class: lead part-problem -->
# 第一部分:问题所在
面包屑导航
这是整个演示设置中我最喜欢的部分。
每张内容幻灯片的顶部都会显示面包屑导航标题,从而让观众清楚自己当前处于演示文稿的哪个位置:
<!-- header: "问题所在 > **算法** > 实现" -->
被加粗的文本会显示为蓝色(这是通过CSS代码header strong { color: #2563eb; }实现的),而其余部分则保持灰色。您只需为每个章节设置一次这样的格式,之后这个设置就会一直保持有效,直到您再次进行修改。
有多少次,在观看演示时,你会忍不住心想“等等,我们现在讲到哪里了?”🤔
总结
演示文稿中最困难的部分就是讲述一个连贯的故事。先写出初稿,根据反馈进行修改,直到内容流畅自然,然后再导出文件即可。
如果您想尝试使用这个工具:请执行npm install -g @marp-team/marp-cli,然后运行npx skills add Omerr/claude-skills,最后输入/create-marp-deck。几分钟内,您就能制作出一个演示文稿模板,之后每次进行演示时都可以重复使用这个模板。
关于作者
Omer Rosenbaum是Brief频道的主创。他同时也是一位网络安全培训专家,还是Checkpoint Security Academy的创始人。他还撰写了多本专业书籍,包括《以产品为导向的研究》、《高效完成工作》(英文版)以及《计算机网络》(希伯来文版)。您可以在Twitter上找到他。

