# Marp 高度な機能リファレンス
Marp CoreとMarpitの高度な機能。
## Fragmented List(段階的表示)
リストアイテムを段階的に表示する機能(アニメーション効果)。
公式ドキュメント: https://github.com/marp-team/marpit/tree/main/docs/fragmented-list
### 基本的な使い方
```markdown
* Item 1
* Item 2
* Item 3
```
通常、すべてのアイテムが一度に表示されます。
### アスタリスク(*)の使用
```markdown
* Item 1
* Item 2
* Item 3
```
Marp CLIで`--html`オプション使用時、各アイテムが順次表示されます。
### 注意事項
- **HTML出力時のみ有効**: PDF/PPTX/画像では効果なし
- **プレゼンテーションモード**: ブラウザでのプレゼンテーション時に機能
- **Marp for VS Code**: プレビューでは動作しない場合あり
## 数式記法(Marp Core拡張)
Pandoc形式の数式をサポート。KaTeXを使用してレンダリング。
公式: https://github.com/marp-team/marp-core#math-typesetting
### インライン数式
```markdown
文中に $E = mc^2$ を挿入
```
### ブロック数式
```markdown
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
```
### 複数行の数式
```markdown
$$
\begin{aligned}
f(x) &= x^2 + 2x + 1 \\
&= (x + 1)^2
\end{aligned}
$$
```
### 数式の例
```markdown
## 二次方程式の解
$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$
## オイラーの等式
$$
e^{i\pi} + 1 = 0
$$
```
### 注意事項
- **KaTeX記法**: LaTeX構文のサブセット
- **サポート外の記法**: 一部のLaTeX機能は非対応
- **KaTeX公式**: https://katex.org/docs/supported.html
## 絵文字(Marp Core拡張)
GitHub Emoji記法をサポート。
公式: https://github.com/marp-team/marp-core#emoji
### 使用方法
```markdown
:smile: :heart: :+1: :sparkles:
```
レンダリング結果: 😄 ❤️ 👍 ✨
### よく使う絵文字
```markdown
:arrow_right: →
:check: ✓
:x: ✗
:bulb: 💡
:warning: ⚠️
:rocket: 🚀
:tada: 🎉
```
### 絵文字リスト
完全なリスト: https://github.com/ikatyang/emoji-cheat-sheet
## Auto-scaling(自動スケーリング)
テキストが多い場合、自動的にフォントサイズを調整。
### 無効化
```markdown
---
marp: true
---
# 自動スケーリングなし
```
カスタムCSSで制御:
```css
section.no-scaling {
--marpit-auto-scaling: off;
}
```
## HTMLタグの使用
Markdown内で直接HTMLを記述可能。
### 配置制御
```markdown
中央配置のテキスト
```
### 2カラムレイアウト
```markdown
## 左側
- ポイント1
- ポイント2
## 右側
- ポイント3
- ポイント4
```
### スタイル付きボックス
```markdown
**重要なポイント**
ここに重要な内容を記述
```
## Marp CLI 詳細オプション
公式: https://github.com/marp-team/marp-cli
### 基本的なコマンド
```bash
# HTMLに変換
marp slide.md
# PDFに変換
marp slide.md --pdf
# PowerPointに変換
marp slide.md --pptx
# 画像に変換
marp slide.md --images png
```
### 監視モード
```bash
# ファイルを監視して自動変換
marp -w slide.md
# サーバーモードで監視
marp -s -w slide.md
```
### テーマ指定
```bash
# カスタムテーマを使用
marp slide.md --theme custom-theme.css
# テーマディレクトリを指定
marp slide.md --theme-set themes/
```
### 複数ファイルの一括変換
```bash
# ディレクトリ内のすべてのMarkdownを変換
marp slides/*.md
# 出力ディレクトリを指定
marp slides/*.md -o output/
```
### HTML出力オプション
```bash
# HTML出力(単一ファイル)
marp slide.md -o output.html
# スタンドアロンHTML(CDN使用)
marp slide.md --html
```
### PDF出力オプション
```bash
# PDF出力
marp slide.md --pdf --allow-local-files
# ページ番号なしでPDF
marp slide.md --pdf --pdf-notes
```
### 画像出力
```bash
# PNG画像として出力
marp slide.md --images png
# JPEG画像として出力
marp slide.md --images jpeg
# 解像度指定
marp slide.md --images png --image-scale 2
```
## Marp for VS Code
公式: https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode
### 有効化
Markdownファイルのフロントマターに記述:
```markdown
---
marp: true
---
```
### プレビュー
- `Ctrl+Shift+V` (Win/Linux)
- `Cmd+Shift+V` (Mac)
### エクスポート
1. コマンドパレット (`Ctrl+Shift+P`)
2. "Marp: Export slide deck..."を選択
3. 形式を選択(HTML/PDF/PPTX/PNG/JPEG)
### 設定
VS Codeの設定でカスタマイズ可能:
```json
{
"markdown.marp.themes": [
"./themes/custom-theme.css"
],
"markdown.marp.enableHtml": true
}
```
## GitHub Actions での自動ビルド
公式: https://github.com/marketplace/actions/marp-action
### 基本的なワークフロー
```yaml
name: Marp Build
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Marp Build
uses: docker://marpteam/marp-cli:latest
with:
args: slides.md --pdf --allow-local-files
- name: Upload PDF
uses: actions/upload-artifact@v3
with:
name: slides
path: slides.pdf
```
### GitHub Pagesへの公開
```yaml
- name: Marp to Pages
uses: docker://marpteam/marp-cli:latest
with:
args: slides.md -o index.html
- name: Deploy to Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./
```
## Tips & Tricks
### 1. スライド番号のカスタマイズ
```css
section::after {
content: 'Page ' attr(data-marpit-pagination);
}
```
### 2. 背景のグラデーション
```markdown
---
backgroundImage: linear-gradient(135deg, #667eea 0%, #764ba2 100%)
color: white
---
```
### 3. 2段組レイアウト
```markdown
```
### 4. プログレスバー
```css
section::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: calc(var(--paginate) / var(--paginate-total) * 100%);
height: 5px;
background-color: #3b82f6;
}
```
## トラブルシューティング
### PDFが生成されない
- ChromeまたはEdgeがインストールされているか確認
- `--allow-local-files`オプションを追加
### フォントが表示されない
- Google Fontsなどは`@import`で読み込む
- ローカルフォントは絶対パスで指定
### 画像が表示されない
- 画像の相対パスを確認
- `--allow-local-files`が必要な場合あり
## 公式リファレンス集
- **Marp公式サイト**: https://marp.app/
- **Marpit Directives**: https://marpit.marp.app/directives
- **Image Syntax**: https://marpit.marp.app/image-syntax
- **Theme CSS**: https://marpit.marp.app/theme-css
- **Marp Core**: https://github.com/marp-team/marp-core
- **Marp CLI**: https://github.com/marp-team/marp-cli
- **VS Code Extension**: https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode