Marp:Markdown プレゼンテーションツール(そして PowerPoint への書き出し方法)
Marp はオープンソース(MIT)の Markdown プレゼンテーションエコシステムです。Markdown でスライドを書き、Marp CLI で HTML、PDF、PowerPoint に書き出せます。本ガイドでは、Marp のテーマ、Markdown での執筆、marp-cli による pptx(画像として)への書き出し、reveal.js や Slidev との比較、そして Agent-Native Design Workspace が活きる場面を解説します。
「marp」を歯科や矯正の用語だと思って検索したなら、これはそれとは別物です。Marp は Markdown プレゼンテーションエコシステム(Markdown Presentation Ecosystem)——GitHub の marp-team による、プレーンな Markdown を書いてスライドデッキを作るためのオープンソース(MIT)プロジェクトです。キャンバス上でボックスをドラッグすることも、独自のファイル形式もありません。# Slide title といくつかの箇条書きを書き、ディレクティブを一つ二つ加えれば、Marp がそれをプレゼンテーションに変えてくれます。(見かけたかもしれない無関係な「MARPE」は矯正歯科の上顎拡大術のことで、スライドとは何の関係もありません。本記事はプレゼンテーションツールの Marp だけを扱います。)
オープンソースのプレゼンテーションツールの中で、Marp は最もシンプルで最も Markdown ネイティブな選択肢であり、まさにそれが開発者に選ばれる理由です。本記事は、Marp とは何か、執筆とテーマの仕組み、Marp CLI がどう PowerPoint と PDF に書き出すのか(そして人がつまずく一つの注意点)、reveal.js や Slidev との比較、そして Markdown が行き詰まったときにデザインワークスペースがどこで引き継ぐのかを、正直に解説するガイドです。
Marp とは
Marp は一つの発想を中心に構築された小さなツール群です:スライドは Markdown。三つの構成要素があります。Marpit は、Markdown とテーマをスライドの HTML と CSS に変換する低レベルのフレームワークです。Marp Core は Marpit の上に載る、デフォルトテーマ・画像処理・数式サポートを備えた「電池同梱」のエンジンです。Marp CLI(marp-team/marp-cli)は、あなたの Markdown ファイルを HTML、PDF、PowerPoint にレンダリングするコマンドラインツールです。さらに、入力しながらリアルタイムで横並びプレビューを見せてくれる公式の VS Code 拡張もあります。
執筆は一つの .md ファイルで行います。スライドは --- で区切り、スライドごとおよびグローバルの設定は Marp のディレクティブ(theme:、paginate:、class: など)で指定し、すべてがバージョン管理可能なプレーンテキストのままです。それこそが最大の魅力です。あなたのデッキは Git できれいに差分が取れ、コードの隣に置け、バイナリ形式に縛られることもありません。
Marp のテーマと Markdown での執筆
Marp デッキの執筆は意図的に最小限です。ファイル冒頭の front-matter ブロックがグローバルディレクティブを設定し、--- がスライドを区切り、標準の Markdown——見出し、リスト、コードフェンス、画像、表——がそのままコンテンツになります。Marp は内部で HTML と CSS にレンダリングするため、Markdown で表現できるものは追加の構文を覚えることなくスライドに対応します。
Marp のテーマはただの CSS です。Marp Core はいくつかの組み込みテーマ(default、gaia、uncover)を同梱しており、たった一つの theme: ディレクティブで切り替えられます。組み込みでは足りないときは、自分のテーマを CSS ファイルとして書きます——Marpit が公開するクラスを対象にし、--theme または --theme-set で CLI に登録すれば、すべてのスライドがそれを取り込みます。インラインの微調整には、一枚のスライドにスコープ付きの <style> ブロックを差し込めます。この CSS ネイティブなモデルこそが Marp の天井であり床でもあります。CSS に慣れていれば完全に制御でき、そうでなくてもデフォルトのままきれいに見えます。
Marp を PowerPoint と PDF に書き出す
書き出しこそ Marp CLI が真価を発揮する場面です。Markdown を指定し、ターゲットを選びます:
- HTML——
marp deck.md -o deck.htmlは、ブラウザで発表できる自己完結型の Web デッキを生成します。 - PDF——
marp deck.md --pdfは印刷対応の PDF をレンダリングし、配布資料や共有に最適です。 - PowerPoint——
marp deck.md --pptxは、PowerPoint や Keynote で開ける.pptxファイルを書き出します。
はっきり述べておくべき一つの注意点があります:Marp の PPTX 書き出しは各スライドを画像としてレンダリングします。ネイティブで編集可能な PowerPoint の図形ではありません。すべてのスライドは .pptx ラッパーの中で全面の画像になります。PowerPoint から離れられない、発表するだけの相手にファイルを渡すときには完璧です——しかし書き出した後は、テキストボックスに入って編集したり、図形の色を変えたり、箇条書きを動かしたりはできません。あとで PowerPoint で編集し続ける必要があるワークフローなら、Marp の pptx はソース形式ではなく配布形式として扱いましょう。(実験的な「編集可能」書き出しモードは現れては消えてきました。信頼でき、文書化された挙動は一スライド一画像です。)
Marp と Slidev、reveal.js の比較
Marp は Markdown ファーストのプレゼンテーションツールの唯一の選択肢ではありません。選択を左右する観点で、正直に比較してみましょう:
| ツール | 執筆方法 | 編集可能な PPTX 書き出し | テンプレート化 | ライセンス |
|---|---|---|---|---|
| Marp | 純粋な Markdown + ディレクティブ | pptx は画像(編集可能な図形ではない) | CSS テーマ | MIT |
| reveal.js | HTML(Markdown プラグインは任意) | ネイティブ pptx なし | HTML/CSS テーマ | MIT |
| Slidev | Markdown + Vue コンポーネント | ネイティブ pptx なし(PDF/PNG/SPA) | Vue + Windi/UnoCSS テーマ | MIT |
| Open Design | エージェントに説明する | デザインシステムに沿って編集可能なデッキ | デザインシステム + テンプレートライブラリ | Apache-2.0 |
Marp は、最も手間をかけたくないとき——一つの Markdown ファイルと CLI だけ——に選ぶツールです。reveal.js は成熟した Web スライドフレームワークです。HTML ファーストで、際限なくカスタマイズでき、ブラウザ内で最も豊かな体験を提供しますが、書くのは HTML で、ネイティブの PowerPoint 経路はありません。Slidev はその中間で、Markdown に加えて本物の Vue コンポーネント、コードハイライト、インタラクティブな埋め込みを求める開発者向けです——Marp より強力ですが、セットアップも多くなります。三つとも MIT ライセンスで、いずれも PowerPoint で直接編集できるものは書き出しません。
Open Design が活きる場面
Marp はまさに一つのことに秀でています:あなたがすでに書いた Markdown をスライドに変えることです。しかしそれはあなたにデッキを書くこと——構成、言い回し、テーマ CSS——を求めます。コンテンツを生成したり、プロジェクトをまたいでブランドに沿って保ったり、書き出した後に編集可能な成果物を渡したりはしません。
Open Design はその一段上のレイヤーです。すでに使っているコーディングエージェントの外側に位置する、オープンソース(Apache-2.0)、ローカルファースト、キー持ち込み方式の Agent-Native Design Workspace です。Markdown を手書きする代わりに、欲しいデッキを説明すると、エージェントがデザインシステムに沿って編集可能なものを生成します——出発点となるファーストパーティの HTML デッキテンプレートをプラグインライブラリに備えています。これは Markdown で書く Marp の置き換えではありません。すでに Markdown にコンテンツがあり、コマンドラインから手早くデッキがほしいなら、Marp が適切なツールです。デッキを生成させ、ブランドに沿わせ、より大きなデザインワークフローの一部として編集可能なままにしたいなら、それはワークスペースの仕事です。すでにコーディングエージェントでスライドを作っているなら、コーディングエージェントでのスライド作成方法をご覧ください。
FAQ
Marp とは? Marp は GitHub の marp-team によるオープンソースの Markdown プレゼンテーションエコシステムです。Markdown でスライドを書くと、Marp CLI がそれを HTML、PDF、PowerPoint に書き出します。MIT ライセンスで、Marp Core、Marpit フレームワーク、VS Code 拡張を含みます。矯正歯科の「MARPE」という用語とは関係ありません。
Marp デッキを PowerPoint に書き出すには? Marp CLI(marp-cli)をインストールし、marp deck.md --pptx を実行します。書き出された .pptx は各スライドを画像としてレンダリングし、ネイティブで編集可能な PowerPoint の図形ではない点に注意してください——受け渡しには最適ですが、その後 PowerPoint 内でテキストや図形を編集することはできません。
Marp は編集可能な PowerPoint ファイルを書き出せますか? 確実にはできません。Marp の文書化された PPTX の挙動は一スライド一画像です。本物のテキストボックスや図形を持つネイティブに編集可能な .pptx が必要なら、その工程には Marp は不向きです。
Marp は無料ですか? はい。Marp は MIT ライセンスのオープンソースなので、無料で使え、セルフホストでき、改変もできます。
Marp、reveal.js、Slidev——どれを使うべき? 最もシンプルな純 Markdown デッキと手軽な PDF/pptx 書き出しなら Marp、深いカスタマイズができる成熟した HTML ファーストの Web スライドフレームワークなら reveal.js、Markdown に加えてインタラクティブな Vue コンポーネントなら Slidev を選びましょう。三つとも MIT ライセンスで、いずれも編集可能な PowerPoint を直接は書き出しません。
まとめ
Marp は、すでに手元にある Markdown をスライドに変える最もすっきりした方法です——一つの .md ファイル、CSS テーマ、そして HTML、PDF、PowerPoint を書き出す CLI。ただ一つの正直な制約だけは忘れないでください:pptx は画像として出てくるので、PowerPoint で編集し続けるものではなく配布形式として扱いましょう。「Markdown はある、デッキがほしい」というニーズなら、Marp を超えるものはなかなかありません。デッキを生成させ、ブランドに沿わせ、より大きなデザインワークフローの中で編集可能なままにする必要があるとき——そこで Agent-Native Design Workspace が引き継ぎます。