--- title: "Marp 学习资料汇编" source: - "https://github.com/marp-team/marp" - "https://github.com/marp-team/marpit" - "https://github.com/marp-team/marp-cli" - "https://github.com/JichouP/obsidian-marp-plugin" - "https://samuele-cozzi.github.io/obsidian-marp-slides/" author: - "[[Marp Team]]" - "[[JichouP]]" - "[[Samuele Cozzi]]" created: 2026-04-07 description: "Marp 生态系统学习资料汇编:Marpit 框架、Marp CLI、Obsidian Marp 插件" tags: - "clippings" - "marp" - "presentation" - "obsidian" rating: 4 --- ## 1. Marp 生态系统概述 Marp 是一个用纯 Markdown 编写演示文稿的生态系统。 核心组件: | 组件 | 说明 | |------|------| | **Marpit** | 瘦框架,将 Markdown 转为幻灯片 | | **Marp Core** | 核心转换引擎,含内置主题 | | **Marp CLI** | 命令行工具,导出 HTML/PDF/PPTX/图片 | | **Marp for VS Code** | VS Code 扩展,实时预览 | | **Obsidian Marp Plugin** | Obsidian 集成,预览和导出 | --- ## 2. Marpit 指令系统(Directives) Marpit 通过"指令"扩展 Markdown,控制幻灯片的行为和样式。 ### 写法 **HTML 注释方式**: ```markdown ``` **Front-matter 方式**: ```markdown --- theme: default paginate: true --- ``` ### 全局指令(Global Directives) 作用于整个演示文稿,多次书写只认最后一个。 | 指令 | 说明 | |------|------| | `theme` | 指定主题 | | `style` | 自定义 CSS(避免污染其他编辑器) | | `headingDivider` | 按标题级别自动分页 | | `lang` | 设置 HTML lang 属性 | ### 局部指令(Local Directives) 作用于**当前页及后续所有页**。 | 指令 | 说明 | |------|------| | `paginate` | 显示页码(true/false/hold/skip) | | `header` | 页眉内容 | | `footer` | 页脚内容 | | `class` | 设置 `
` 的 CSS 类 | | `backgroundColor` | 背景色 | | `backgroundImage` | 背景图 | | `backgroundPosition` | 背景位置(默认 center) | | `backgroundRepeat` | 背景重复(默认 no-repeat) | | `backgroundSize` | 背景大小(默认 cover) | | `color` | 文字颜色 | ### Spot 指令(仅当前页) 在局部指令名前加 `_` 前缀,仅对当前页生效: ```markdown ``` ### 分页控制(paginate 的四种值) | 值 | 显示页码 | 递增页码 | |----|----------|----------| | `true` | ✅ | ✅ | | `false` | ❌ | ✅ | | `hold` | ✅ | ❌ | | `skip` | ❌ | ❌ | ### 标题自动分页(headingDivider) ```markdown # 1st page 内容... ## 2nd page(h2 触发分页) 内容... # 3rd page(h1 也触发分页) ``` 数值表示"大于等于该级别的标题都会分页",数组则只对指定级别生效。 --- ## 3. 内置主题 Marp Core 提供三个内置主题: | 主题 | 风格 | |------|------| | `default` | 经典白底,蓝灰色调 | | `uncover` | 现代、极简、居中布局 | | `gaia` | 彩色、大胆、左对齐 | 使用方式: ```markdown --- marp: true theme: uncover --- ``` ### 自定义主题 创建 CSS 文件,使用 Marpit 的主题规范: ```css /* @theme my-theme */ @import 'default'; section { background-color: #f5f5f5; color: #333; } h1 { color: #0066cc; } ``` --- ## 4. Marp CLI ### 安装 ```bash # npm npx @marp-team/marp-cli@latest # macOS brew install marp-cli # Windows (Scoop) scoop install marp ``` ### 基本用法 ```bash # 导出 HTML(默认) marp presentation.md # 导出 PDF marp presentation.md --pdf # 导出 PPTX marp presentation.md --pptx # 指定输出文件 marp presentation.md -o output.html # 使用特定主题 marp --theme uncover --pdf presentation.md # 导出后立即打开 marp presentation.md --pdf --open ``` > PDF/PPTX 导出需要系统安装 Chrome 或 Edge。 --- ## 5. Obsidian Marp 插件 来源: ### 功能 - **预览**:点击侧边栏按钮或命令面板运行 `Marp: Open Preview` - **自动重载**:保存文件后自动刷新预览 - **导出**:支持 PDF、PPTX、HTML(需要 Node.js) - **图片嵌入**:支持 Wikilink(`![[image.png]]`)和 CommonMark(`![](image.png)`)格式 - **过渡效果**:HTML 导出支持页面过渡动画 ### 设置 | 设置项 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | Enable Auto Reload | toggle | on | 保存时自动刷新预览 | | Open Preview in Split Tab | toggle | on | 在分栏中打开预览 | | Theme Folder Location | text | `MarpTheme` | 自定义主题 CSS 目录 | ### 自定义主题 ``` └── MarpTheme/ ├── beamer.css ├── border.css └── gradient.css ``` > 添加 CSS 后需要重启 Obsidian。 ### 图片处理 导出时图片自动转为 Base64 嵌入,支持本地图片分享。路径支持: - Wikilink:`![[path/to/image.png]]` - CommonMark:`![alt](path/to/image.png)` - 绝对路径和相对路径(相对于 vault 根目录) --- ## 6. 最小可运行示例 ```markdown --- marp: true theme: uncover paginate: true --- # 我的第一个 Marp 幻灯片 用 Markdown 写演示文稿 --- ## 第二页 - 项目一 - 项目二 - 项目三 --- ## 第三页 > 就这么简单! # 深色背景页 这段文字是浅色的 ```