Marp

关注
义项:Markdown演示文稿工具
Marp

Marp(Markdown Presentation Ecosystem)是一套以 Markdown 编写演示文稿的开源工具生态,由 Yuki Hattori 发起并维护,采用 MIT 许可证发布。[1] 它把纯文本的 Markdown 文档转换为 HTML、PDF 或 PowerPoint 幻灯片,并把版式交给 CSS 主题处理,从而实现内容与样式的分离。[2] 该生态由 Marpit 框架、Marp Core 转换引擎、Marp CLI 命令行工具和 Marp for VS Code 扩展等模块构成,常用于技术分享、教学和工程团队的文档化演示。[2]

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Marp 是一套把 Markdown 文档转换成幻灯片的工具生态,官方称其为「Markdown Presentation Ecosystem」。[2] 它并非一款独立的图形化演示软件,而是一组转换器与编辑辅助工具的集合,作者只需按 Marp 的规则书写文本,即可得到可放映的幻灯片文件。[1]

Marp 明确以 CommonMark 规范为基础,只在该规范之上少量增加面向幻灯片的语法,因此同一份文档用普通 Markdown 编辑器打开时仍能正常阅读。[1] 与基于 TeX 的学术排版方案相比,它的语法门槛更低,输出速度更快,面向的是轻量级、需要频繁修改的演示场景。

原理

Marp 的转换核心建立在 Marpit 框架之上,该框架的职责是把 Markdown 与 CSS 主题加工成只含静态 HTML 与 CSS 的最小资产集合,幻灯片放映过程本身不需要 JavaScript 参与。[3] 在实际渲染中,每张幻灯片会被内联 SVG 包裹,以便实现像素级缩放,并隔离幻灯片内容与主题样式,避免相互干扰。[3]

在上层,Marp Core 为 Marpit 补充了实用语法与内置主题,是官方各类工具共同使用的引擎。[2] 它提供 KaTeX 数学排版、Emoji 支持、字号全局指令、内容自动缩放,以及用 注释让标题自适应的能力。[3] 幻灯片的样式与行为通过 YAML Front Matter 和 HTML 注释写成的指令控制,例如设定主题、页面尺寸、页码、页眉页脚或按标题层级自动分页。[1]

分页规则是 Marp 格式与普通 Markdown 最主要的差别:一行 --- 即可切分出一张新幻灯片。[2] 主题系统只要求编写纯 CSS,设计者针对 HTML 语义元素设定样式即可,内容作者则可以套用他人分享的主题文件,从而在同一套内容上切换不同视觉风格。[1]

发展历程

Marp 最早源于作者 Yuki Hattori 为个人使用而写的一个小工具,当时名为「mdSlide」,首个版本约在 2016 年发布。[3] 早期它以基于 Electron 的桌面应用形态分发,提供 Markdown 编辑与幻灯片预览功能。[4] 该经典版本自 2017 年起停止维护,并因存在安全隐患而终止发布。[4]

2019 年 3 月 1 日,维护者公布了完全重写的「Marp Next」计划,把单一应用拆分为由多个模块组成的生态,改用 JavaScript 与 TypeScript 开发,以提升可维护性。[3] 新生态包含 Marpit 框架、Marp Core、Marp CLI、面向 Visual Studio Code 的扩展以及基于 PWA 的 Marp Web 等组件,其中用 Electron 封装的桌面客户端在仓库中列为计划项。[5]

官方推荐原桌面应用的使用者迁移到 Visual Studio Code 扩展,它以实时预览、导出 HTML/PDF/PPTX 以及对 3 种内置主题和自定义 CSS 的支持,承接了旧版应用的主要能力。[4]

应用

Marp 主要面向需要反复修改、便于协作文档的演示场景。由于幻灯片内容是纯文本,它可以纳入 Git 做版本管理与差异审查。[6] 设计者把主题写成独立 CSS 文件后,多份幻灯片可以共用同一套视觉规范,实现版式统一。[6]

在工程实践中,Marp CLI 作为命令行接口,可以转换文件、监视 Markdown 与主题的变化,并启动本地服务按需渲染,便于接入自动化流程或静态站点发布。[2] 该工具基于 Node.js 生态分发,可与包管理器及各种构建工具配合,也提供了供扩展使用的插件机制。[1]

使用时,作者在 Markdown 文件开头写入 marp: true 即可启用 Marp 语法,写完后通过命令行或编辑器命令导出为 HTML、PDF、PPTX 或图片序列。[2] 编辑器扩展把 VS Code 的 Markdown 预览窗格直接变成幻灯片预览,编辑时即时更新。[2]

局限

Marp 并不把自己定位成独立的放映软件,官方给出的推荐做法是先导出为 PDF 再放映,因此无法直接使用某一台机器上的演示程序所提供的全部功能。[1] 导出 PDF 与 PPTX 依赖本机安装的 Chromium 内核浏览器,如 Chrome 或 Edge,缺少相应浏览器时会受到限制。[1]

几种输出格式的保真度并不完全一致。HTML 与 PDF 属于一等支持对象,而导出 PowerPoint 格式的用途主要是让使用者在其中继续手工补充内容。[1] 幻灯片中若嵌入了交互行为或依赖脚本的特性,在面向打印的 PDF 输出中也难以完整保留。[1]

此外,Marp 的语法扩展以不破坏 CommonMark 文档为前提,这限制了它在排版控制上能达到的精细程度,复杂的分栏、精细的对齐等需求往往要借助自定义 CSS 实现。[3] 早期经典桌面版本的维护已经终止,使用者需要迁移到新生态中的工具。[4]

参见

  • Markdown —— Marp 用它作为书写幻灯片的输入语法。

  • Marpit —— Marp 生态中负责把 Markdown 与 CSS 主题转换为 HTML 幻灯片的底层框架。

  • Marp Core —— 在 Marpit 之上扩展实用语法与内置主题的转换引擎。

  • CommonMark —— Marp 格式所遵循的 Markdown 规范。

  • Visual Studio Code —— Marp 提供官方扩展、可在其中实时预览与导出幻灯片的编辑器。

参考资料

  1. Introduction > What's Marp? | Docs | Marp [引用日期2026-10-14]
  2. Marp: Markdown Presentation Ecosystem [引用日期2026-10-14]
  3. The story of Marp Next | Blog | Marp [引用日期2026-10-14]
  4. marp [引用日期2026-10-14]
  5. README [引用日期2026-10-14]
  6. MarpでMarkdownからスライドを作成しよう - JBS Tech Blog [引用日期2026-10-14]
词条评价
词条统计

浏览次数:3 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T21:38:18Z

历史版本

本条目引用的词条
Markdown CommonMark Marpit SVG Visual Studio Code Git Node.js Chromium PowerPoint Marp Core