Marp CLI 解决方案从 Markdown 到专业演示文稿的自动化工作流【免费下载链接】marp-cliA CLI interface for Marp and Marpit based converters项目地址: https://gitcode.com/gh_mirrors/ma/marp-cliMarp CLI 是一个基于 Marp/Marpit 框架的命令行工具专为技术演讲者、文档工程师和内容创作者设计能够将 Markdown 文件快速转换为 HTML、PDF、PowerPoint 和图像格式的专业演示文稿。通过简洁的命令行界面它解决了传统演示工具中内容创作与格式调整分离的痛点让用户专注于内容本身而非排版细节。痛点分析传统演示文稿制作的局限性传统方式痛点Marp CLI 解决方案格式与内容分离在 PowerPoint/Keynote 中需要反复调整样式内容优先Markdown 语法专注内容样式由主题统一管理版本控制困难二进制文件难以追踪修改历史Git 友好纯文本 Markdown 完美兼容版本控制系统多格式输出繁琐需要手动导出不同格式版本一键多格式单条命令生成 HTML、PDF、PPTX、图像等多种格式实时预览缺失保存后才能查看最终效果热重载支持监视模式和服务器模式实现实时预览跨平台协作障碍不同操作系统间格式兼容性问题标准化输出基于 Web 技术栈确保跨平台一致性核心功能解析按使用场景分类格式转换场景多格式输出功能详解Marp CLI 支持将 Markdown 幻灯片转换为多种专业格式满足不同演示场景需求。适用场景线上分享需要 HTML 格式打印分发需要 PDF 格式传统演示需要 PowerPoint 格式社交媒体分享需要图像格式配置要点# HTML 转换默认格式 marp slide.md -o presentation.html # PDF 转换带大纲和备注 marp slide.md --pdf --pdf-outlines --pdf-notes # PowerPoint 转换 marp slide.md --pptx # 多图像输出 marp slide.md --images png最佳实践使用--pdf-outlines为 PDF 添加导航大纲结合--pdf-notes导出演讲者备注对于复杂演示优先使用 HTML 格式以获得最佳交互体验图Marp CLI 的 PDF 输出选项界面支持大纲生成和演讲者备注导出开发工作流场景实时预览与服务器模式监视模式边写边看的开发体验# 启动监视模式文件变更自动重新转换 marp -w slide.md服务器模式团队协作与即时预览# 启动本地服务器支持按需转换 marp -s ./slides-directory服务器模式支持通过 URL 参数动态转换格式http://localhost:8080/deck.md- HTML 预览http://localhost:8080/deck.md?pdf- PDF 下载http://localhost:8080/deck.md?pptx- PPTX 下载图Marp CLI 服务器模式实时预览效果支持热重载和动态格式转换主题定制场景灵活的风格管理系统Marp CLI 提供多层次的样式控制机制从内置主题到完全自定义。内置主题使用# 使用 Gaia 主题现代风格 marp slide.md --theme gaia # 使用自定义 CSS 主题 marp slide.md --theme custom-theme.css主题集管理# 注册多个主题文件 marp --theme-set theme-a.css theme-b.css theme-c.css # 使用主题目录 marp --theme-set ./themes配置示例marp.config.jsexport default { themeSet: [./themes], theme: corporate, // 默认主题 bespoke: { osc: true, // 启用屏幕控制器 progress: true, // 显示进度条 transition: true // 启用过渡动画 } }引擎扩展场景自定义转换逻辑Marp CLI 支持替换默认的 Marp Core 引擎实现高度定制化的转换逻辑。使用纯 Marpit 框架# 安装 Marpit npm install marp-team/marpit # 指定使用 Marpit 引擎 marp --engine marp-team/marpit slide.md自定义功能引擎custom-engine.mjsimport markdownItMark from markdown-it-mark import markdownItContainer from markdown-it-container export default ({ marp }) { // 扩展 Markdown 语法 marp.use(markdownItMark) // 支持 高亮 语法 marp.use(markdownItContainer, warning) // 支持 :::warning 容器 return marp }# 使用自定义引擎 marp --engine ./custom-engine.mjs slide.md实战案例技术分享完整解决方案案例一企业技术培训材料制作需求场景需要制作系列培训材料支持 HTML 在线学习和 PDF 打印版本保持统一的品牌风格支持演讲者备注解决方案项目结构配置tech-training/ ├── slides/ │ ├── 01-introduction.md │ ├── 02-core-concepts.md │ └── 03-advanced-topics.md ├── themes/ │ └── corporate.css └── marp.config.js配置文件marp.config.jsexport default { inputDir: ./slides, output: ./dist, themeSet: ./themes, theme: corporate, pdf: true, pdfNotes: true, pdfOutlines: true, html: true }批量转换脚本# 一键生成所有格式 marp --config-file marp.config.js # 或使用 npm scripts npm run build:slides企业主题定制themes/corporate.css/* theme corporate */ section { background: linear-gradient(135deg, #1a237e 0%, #283593 100%); color: white; font-family: Helvetica Neue, Arial, sans-serif; } h1 { color: #ffd740; border-bottom: 3px solid #ffd740; } /* 公司 logo 水印 */ section::after { content: url(company-logo.svg); position: absolute; bottom: 20px; right: 20px; opacity: 0.3; }案例二持续集成中的自动化演示生成需求场景API 文档自动生成演示文稿每次发布时更新演示材料集成到现有 CI/CD 流程GitHub Actions 工作流.github/workflows/slides.ymlname: Generate Slides on: push: branches: [ main ] release: types: [published] jobs: generate-slides: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Setup Node.js uses: actions/setup-nodev3 with: node-version: 18 - name: Generate slides run: | npx marp-team/marp-clilatest \ --input-dir ./docs/slides \ --output ./dist \ --pdf \ --pptx \ --theme gaia \ --pdf-outlines \ --pdf-notes - name: Upload artifacts uses: actions/upload-artifactv3 with: name: presentation-slides path: ./dist/案例三学术会议演示优化需求场景严格的演讲时间控制复杂的数学公式和代码展示多语言支持演讲者视图和计时功能高级配置方案时间控制脚本// timer.js - 集成演讲计时器 document.addEventListener(DOMContentLoaded, () { let startTime Date.now() const timerElement document.createElement(div) timerElement.style.cssText position: fixed; bottom: 10px; right: 10px; background: rgba(0,0,0,0.7); color: white; padding: 5px 10px; border-radius: 3px; font-family: monospace; z-index: 1000; document.body.appendChild(timerElement) setInterval(() { const elapsed Math.floor((Date.now() - startTime) / 1000) const minutes Math.floor(elapsed / 60) const seconds elapsed % 60 timerElement.textContent ${minutes}:${seconds.toString().padStart(2, 0)} }, 1000) })集成到 Marp 配置// marp.config.js export default { engine: ({ marp }) { // 添加自定义插件 marp.use(markdownItKatex) // 数学公式支持 marp.use(markdownItHighlightjs) // 代码高亮 return marp }, bespoke: { progress: true, transition: true } }图Marp CLI 生成的 PowerPoint 文档保持与 HTML 版本一致的视觉效果性能优化与最佳实践并行处理优化# 调整并行处理数量默认5根据CPU核心数调整 marp --parallel 8 slide-*.md # 禁用并行处理单文件或调试时 marp --no-parallel slide.md浏览器选择策略# 指定浏览器按优先级 marp --browser chrome,firefox slide.md --pdf # 自定义浏览器路径 marp --browser-path /usr/bin/chromium slide.md --pptx图像输出优化# 高质量图像输出 marp --images png --image-scale 2 slide.md # JPEG 质量调整 marp --images jpeg --jpeg-quality 90 slide.md常见问题解答Q1为什么 PDF/PPTX 转换需要浏览器AMarp CLI 使用浏览器引擎进行渲染以确保最佳的视觉一致性。需要安装 Chrome、Edge 或 Firefox 中的任意一个。Q2如何解决本地文件引用问题A出于安全考虑默认禁止访问本地文件。如需启用使用--allow-local-files选项marp --pdf --allow-local-files slide-with-local-images.mdQ3自定义主题不生效怎么办A检查主题 CSS 是否包含theme元注释或确保在 Marp CLI 中正确引用/* theme custom-theme */ section { /* 样式规则 */ }Q4如何集成到现有构建系统AMarp CLI 提供 Node.js API可直接在构建脚本中调用import { marpCli } from marp-team/marp-cli // 在构建流程中调用 await marpCli([slide.md, --pdf, --output, dist/slide.pdf])Q5服务器模式无法访问怎么办A检查端口占用情况或通过环境变量指定端口PORT3000 marp -s ./slides下一步学习路径基础掌握从单文件 HTML 转换开始熟悉基本命令和工作流主题定制学习 CSS 主题创建实现品牌风格统一高级功能探索过渡动画、演讲者视图、自定义引擎等高级特性集成开发将 Marp CLI 集成到现有项目构建流程中社区贡献参与主题分享、插件开发或文档改进通过 Marp CLI技术团队可以将演示文稿制作从繁琐的手工操作转变为高效的自动化流程让创作者真正专注于内容质量而非格式调整。无论是技术分享、产品演示还是培训材料Marp CLI 都能提供专业、一致且高效的解决方案。图Marp CLI 命令行转换流程展示从 Markdown 到多种输出格式的一站式解决方案【免费下载链接】marp-cliA CLI interface for Marp and Marpit based converters项目地址: https://gitcode.com/gh_mirrors/ma/marp-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考