marhup 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +481 -4
  2. package/dist/cli.js +659 -78
  3. package/dist/cli.js.map +1 -1
  4. package/dist/errors.d.ts +29 -0
  5. package/dist/errors.d.ts.map +1 -0
  6. package/dist/errors.js +62 -0
  7. package/dist/errors.js.map +1 -0
  8. package/dist/generator/code.d.ts +4 -3
  9. package/dist/generator/code.d.ts.map +1 -1
  10. package/dist/generator/code.js +7 -7
  11. package/dist/generator/code.js.map +1 -1
  12. package/dist/generator/gen-animations.d.ts +13 -0
  13. package/dist/generator/gen-animations.d.ts.map +1 -0
  14. package/dist/generator/gen-animations.js +77 -0
  15. package/dist/generator/gen-animations.js.map +1 -0
  16. package/dist/generator/image.d.ts +4 -3
  17. package/dist/generator/image.d.ts.map +1 -1
  18. package/dist/generator/image.js +67 -80
  19. package/dist/generator/image.js.map +1 -1
  20. package/dist/generator/index.d.ts +2 -0
  21. package/dist/generator/index.d.ts.map +1 -1
  22. package/dist/generator/index.js +9 -18
  23. package/dist/generator/index.js.map +1 -1
  24. package/dist/generator/list.d.ts +4 -3
  25. package/dist/generator/list.d.ts.map +1 -1
  26. package/dist/generator/list.js +15 -17
  27. package/dist/generator/list.js.map +1 -1
  28. package/dist/generator/mermaid.d.ts +9 -4
  29. package/dist/generator/mermaid.d.ts.map +1 -1
  30. package/dist/generator/mermaid.js +120 -85
  31. package/dist/generator/mermaid.js.map +1 -1
  32. package/dist/generator/pptx.d.ts +1 -1
  33. package/dist/generator/pptx.d.ts.map +1 -1
  34. package/dist/generator/pptx.js +232 -60
  35. package/dist/generator/pptx.js.map +1 -1
  36. package/dist/generator/presentation.d.ts +149 -0
  37. package/dist/generator/presentation.d.ts.map +1 -0
  38. package/dist/generator/presentation.js +163 -0
  39. package/dist/generator/presentation.js.map +1 -0
  40. package/dist/generator/table.d.ts +4 -3
  41. package/dist/generator/table.d.ts.map +1 -1
  42. package/dist/generator/table.js +12 -33
  43. package/dist/generator/table.js.map +1 -1
  44. package/dist/generator/text.d.ts +5 -4
  45. package/dist/generator/text.d.ts.map +1 -1
  46. package/dist/generator/text.js +34 -20
  47. package/dist/generator/text.js.map +1 -1
  48. package/dist/generator/video.d.ts +18 -0
  49. package/dist/generator/video.d.ts.map +1 -0
  50. package/dist/generator/video.js +83 -0
  51. package/dist/generator/video.js.map +1 -0
  52. package/dist/index.d.ts +8 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +144 -55
  55. package/dist/index.js.map +1 -1
  56. package/dist/layout/auto.d.ts +14 -2
  57. package/dist/layout/auto.d.ts.map +1 -1
  58. package/dist/layout/auto.js +129 -37
  59. package/dist/layout/auto.js.map +1 -1
  60. package/dist/layout/engine.d.ts +1 -1
  61. package/dist/layout/engine.d.ts.map +1 -1
  62. package/dist/layout/engine.js +10 -12
  63. package/dist/layout/engine.js.map +1 -1
  64. package/dist/layout/index.d.ts +1 -1
  65. package/dist/layout/index.d.ts.map +1 -1
  66. package/dist/layout/index.js +2 -10
  67. package/dist/layout/index.js.map +1 -1
  68. package/dist/layout/types.d.ts +1 -0
  69. package/dist/layout/types.d.ts.map +1 -1
  70. package/dist/layout/types.js +1 -2
  71. package/dist/layout/types.js.map +1 -1
  72. package/dist/mcp-handlers.d.ts.map +1 -1
  73. package/dist/mcp-handlers.js +45 -54
  74. package/dist/mcp-handlers.js.map +1 -1
  75. package/dist/mcp.js +10 -12
  76. package/dist/mcp.js.map +1 -1
  77. package/dist/parser/frontmatter.d.ts.map +1 -1
  78. package/dist/parser/frontmatter.js +95 -16
  79. package/dist/parser/frontmatter.js.map +1 -1
  80. package/dist/parser/grid.d.ts +5 -7
  81. package/dist/parser/grid.d.ts.map +1 -1
  82. package/dist/parser/grid.js +217 -30
  83. package/dist/parser/grid.js.map +1 -1
  84. package/dist/parser/index.js +3 -13
  85. package/dist/parser/index.js.map +1 -1
  86. package/dist/parser/markdown.d.ts +1 -1
  87. package/dist/parser/markdown.d.ts.map +1 -1
  88. package/dist/parser/markdown.js +249 -137
  89. package/dist/parser/markdown.js.map +1 -1
  90. package/dist/theme/default.d.ts +1 -1
  91. package/dist/theme/default.d.ts.map +1 -1
  92. package/dist/theme/default.js +16 -8
  93. package/dist/theme/default.js.map +1 -1
  94. package/dist/theme/index.d.ts +11 -0
  95. package/dist/theme/index.d.ts.map +1 -1
  96. package/dist/theme/index.js +70 -7
  97. package/dist/theme/index.js.map +1 -1
  98. package/dist/types/index.d.ts +56 -2
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/types/index.js +4 -6
  101. package/dist/types/index.js.map +1 -1
  102. package/dist/types/plugin.d.ts +50 -0
  103. package/dist/types/plugin.d.ts.map +1 -0
  104. package/dist/types/plugin.js +5 -0
  105. package/dist/types/plugin.js.map +1 -0
  106. package/dist/utils/file-lock.d.ts +27 -0
  107. package/dist/utils/file-lock.d.ts.map +1 -0
  108. package/dist/utils/file-lock.js +118 -0
  109. package/dist/utils/file-lock.js.map +1 -0
  110. package/dist/utils/i18n.d.ts +5 -0
  111. package/dist/utils/i18n.d.ts.map +1 -0
  112. package/dist/utils/i18n.js +41 -0
  113. package/dist/utils/i18n.js.map +1 -0
  114. package/dist/utils/logger.d.ts +7 -0
  115. package/dist/utils/logger.d.ts.map +1 -0
  116. package/dist/utils/logger.js +43 -0
  117. package/dist/utils/logger.js.map +1 -0
  118. package/dist/utils/path-validation.d.ts +20 -0
  119. package/dist/utils/path-validation.d.ts.map +1 -0
  120. package/dist/utils/path-validation.js +39 -0
  121. package/dist/utils/path-validation.js.map +1 -0
  122. package/dist/utils/plugin-manager.d.ts +18 -0
  123. package/dist/utils/plugin-manager.d.ts.map +1 -0
  124. package/dist/utils/plugin-manager.js +108 -0
  125. package/dist/utils/plugin-manager.js.map +1 -0
  126. package/dist/utils/sanitizer.d.ts +14 -0
  127. package/dist/utils/sanitizer.d.ts.map +1 -0
  128. package/dist/utils/sanitizer.js +73 -0
  129. package/dist/utils/sanitizer.js.map +1 -0
  130. package/package.json +23 -8
package/README.md CHANGED
@@ -4,11 +4,69 @@ Markdownからグリッドベースのレイアウトで PowerPoint (PPTX) を
4
4
 
5
5
  ## 特徴
6
6
 
7
- - 📐 **グリッドベースレイアウト** - 12×9グリッドで直感的な位置指定
7
+ - 📐 **グリッドベースレイアウト** - 設定可能なグリッド(デフォルト12×9)で直感的な位置指定
8
8
  - 🎯 **シンプルな記法** - 位置指定は省略可能、自動レイアウト
9
9
  - 🎨 **スタイル指定** - クラスベースの柔軟なスタイリング
10
+ - 🎬 **アニメーション対応** - PowerPointアニメーションの指定が可能(`{animation=fadein}` など)
11
+ - 🎭 **スライド遷移** - スライド間の遷移効果を指定可能
10
12
  - 📝 **Markdown完全互換** - 標準Markdown記法をそのまま使用
11
13
  - 🧩 **Mermaid対応** - Mermaid記法の図を自動で画像化
14
+ - 🎥 **動画埋め込み対応** - PowerPointに動画を埋め込み可能
15
+ - 🔌 **プラグイン拡張** - カスタム機能の追加が可能
16
+
17
+ ## プラグイン
18
+
19
+ marhupはプラグインアーキテクチャをサポートしており、独自の要素タイプや機能を追加できます。
20
+
21
+ ### プラグインの使用
22
+
23
+ ```bash
24
+ # プラグインディレクトリを指定
25
+ marhup input.md -o output.pptx --plugin-dir ./plugins
26
+ ```
27
+
28
+ ### プラグインの作成
29
+
30
+ プラグインはJavaScriptまたはTypeScriptファイルとして作成します。以下はカスタム要素を追加する例:
31
+
32
+ ```javascript
33
+ // plugins/custom-box.js
34
+ import type { Plugin } from 'marhup';
35
+
36
+ const plugin = {
37
+ name: 'custom-box',
38
+ version: '1.0.0',
39
+ elementParsers: {
40
+ paragraph: (token, aliases) => {
41
+ const text = token.text || '';
42
+ const match = text.match(/^:::custombox\s+(.+?)\s*:::$/);
43
+ if (match) {
44
+ return {
45
+ type: 'custombox',
46
+ content: match[1],
47
+ };
48
+ }
49
+ return null;
50
+ },
51
+ },
52
+ elementGenerators: {
53
+ custombox: async (element, slide, context) => {
54
+ slide.addText(element.content, {
55
+ x: context.coords.x,
56
+ y: context.coords.y,
57
+ w: context.coords.w,
58
+ h: context.coords.h,
59
+ fill: { color: 'FFFF00' }, // Yellow background
60
+ });
61
+ return [];
62
+ },
63
+ },
64
+ };
65
+
66
+ export default plugin;
67
+ ```
68
+
69
+ 詳細なAPIドキュメントは[プラグイン開発ガイド](docs/plugins.md)を参照してください。
12
70
 
13
71
  ## インストール
14
72
 
@@ -29,6 +87,31 @@ marhup input.md -o output.pptx --theme corporate
29
87
  marhup input.md -o output.pptx --watch
30
88
  ```
31
89
 
90
+ ## ログ出力
91
+
92
+ marhupは詳細なログ出力を提供し、デバッグやトラブルシューティングを支援します:
93
+
94
+ ```bash
95
+ # デフォルト(infoレベル)
96
+ marhup input.md -o output.pptx
97
+
98
+ # 詳細ログ(debugレベル)
99
+ LOG_LEVEL=debug marhup input.md -o output.pptx
100
+
101
+ # 最小ログ(errorのみ)
102
+ LOG_LEVEL=error marhup input.md -o output.pptx
103
+
104
+ # ログをファイルに出力
105
+ LOG_FILE=marhup.log marhup input.md -o output.pptx
106
+ ```
107
+
108
+ ログレベル:
109
+ - `error`: エラーのみ
110
+ - `warn`: 警告以上
111
+ - `info`: 情報メッセージ(デフォルト)
112
+ - `debug`: デバッグ情報
113
+ - `trace`: 詳細トレース
114
+
32
115
  ## 記法ガイド
33
116
 
34
117
  ### スライドの区切り
@@ -56,6 +139,27 @@ marhup input.md -o output.pptx --watch
56
139
  title: プレゼンテーション
57
140
  grid: 12x9
58
141
  theme: default
142
+ aliases:
143
+ title: "[1-12, 1]"
144
+ contents: "[1-12, 2-8]"
145
+ left: "[1-6, 2-8]"
146
+ right: "[7-12, 2-8]"
147
+ ---
148
+ ```
149
+
150
+ または、テーマをカスタマイズ:
151
+
152
+ ```markdown
153
+ ---
154
+ title: プレゼンテーション
155
+ theme:
156
+ fonts:
157
+ title: "Times New Roman"
158
+ body: "Georgia"
159
+ code: "Consolas"
160
+ colors:
161
+ primary: "#ff6b6b"
162
+ text: "#2c3e50"
59
163
  ---
60
164
  ```
61
165
 
@@ -63,21 +167,27 @@ theme: default
63
167
  |-----------|------|-----------|
64
168
  | `title` | ドキュメントタイトル | なし |
65
169
  | `grid` | グリッドサイズ(列x行) | `12x9` |
66
- | `theme` | テーマ名 | `default` |
170
+ | `theme` | テーマ名またはテーマ設定オブジェクト | `default` |
67
171
  | `layout` | プリセットレイアウト | なし |
172
+ | `aliases` | グリッド位置の別名定義 | なし |
173
+ | `classes` | カスタムスタイルクラス | なし |
68
174
 
69
175
  ### グリッド位置指定
70
176
 
71
- `[列, 行]` 形式で要素の位置を指定します:
177
+ `[列, 行]` 形式または定義した別名で要素の位置を指定します:
72
178
 
73
179
  ```markdown
74
180
  # タイトル [1-12, 1]
181
+ # タイトル [title] # 別名使用
75
182
 
76
183
  [1-6, 2-8]
77
184
  左側のコンテンツ
78
185
 
79
186
  [7-12, 2-8]
80
187
  右側のコンテンツ
188
+
189
+ [contents] # 別名使用
190
+ 中央のコンテンツ
81
191
  ```
82
192
 
83
193
  #### 記法
@@ -125,10 +235,16 @@ theme: default
125
235
  | 配置 | `.center` | 中央揃え |
126
236
  | | `.left` | 左揃え |
127
237
  | | `.right` | 右揃え |
128
- | | `.red` | 赤色 |
238
+ | 文字色 | `.red` | 赤色 |
129
239
  | | `.blue` | 青色 |
130
240
  | | `.green` | 緑色 |
131
241
  | | `.gray` | グレー |
242
+ | | `.orange` | オレンジ色 |
243
+ | | `.purple` | 紫色 |
244
+ | 背景色 | `.bg-red` | 薄い赤背景 |
245
+ | | `.bg-blue` | 薄い青背景 |
246
+ | | `.bg-green` | 薄い緑背景 |
247
+ | | `.bg-gray` | 薄い灰背景 |
132
248
  | サイズ | `.small` | 小さいフォント |
133
249
  | | `.large` | 大きいフォント |
134
250
  | 装飾 | `.bold` | 太字 |
@@ -138,6 +254,20 @@ theme: default
138
254
  | | `.footer` | フッター領域 |
139
255
  | | `.note` | 注釈スタイル |
140
256
 
257
+ **カスタムクラス**: Front Matterで独自のスタイルクラスを定義できます。定義したクラスはMarkdown内で使用可能です。
258
+
259
+ ```markdown
260
+ ---
261
+ classes:
262
+ myclass:
263
+ color: '#ff0000'
264
+ bold: true
265
+ fill: { color: '#ffe6e6' }
266
+ ---
267
+
268
+ # タイトル {.myclass}
269
+ ```
270
+
141
271
  ### 省略時のデフォルト動作
142
272
 
143
273
  位置やスタイルは省略可能です:
@@ -157,6 +287,323 @@ theme: default
157
287
  | `[位置]` | 上から順に自動配置、全幅 |
158
288
  | `{スタイル}` | テーマのデフォルト |
159
289
 
290
+ ### アニメーション指定
291
+
292
+ `{animation=タイプ}` 形式でPowerPointアニメーションを指定できます:
293
+
294
+ ```markdown
295
+ # タイトル {animation=appear}
296
+
297
+ テキスト {animation=fade animation-delay=1}
298
+
299
+ ![画像](image.jpg) {animation=zoom animation-direction=left}
300
+
301
+ !v[動画](video.mp4) {animation=appear}
302
+ ```
303
+
304
+ #### アニメーションタイプ
305
+
306
+ | タイプ | 説明 |
307
+ |--------|------|
308
+ | `appear` | 出現 |
309
+ | `fade` | フェードイン/アウト |
310
+ | `fly` | 飛んで入る |
311
+ | `zoom` | ズーム |
312
+ | `wipe` | ワイプ |
313
+ | `split` | 分割 |
314
+ | `wheel` | 車輪 |
315
+ | `randomBars` | ランダムバー |
316
+ | `growShrink` | 拡大縮小 |
317
+ | `spin` | 回転 |
318
+ | `float` | 浮遊 |
319
+ | `shape` | シェイプ |
320
+ | `bounce` | バウンス |
321
+ | `pulse` | パルス |
322
+ | `teeter` | 揺れ |
323
+ | `blink` | 点滅 |
324
+ | `flicker` | ちらつき |
325
+ | `swivel` | 旋回 |
326
+ | `spring` | スプリング |
327
+
328
+ #### アニメーションオプション
329
+
330
+ | オプション | 説明 | 例 |
331
+ |-----------|------|-----|
332
+ | `animation-delay` | 遅延時間(秒) | `animation-delay=2` |
333
+ | `animation-duration` | 継続時間(秒) | `animation-duration=1.5` |
334
+ | `animation-direction` | 方向 | `animation-direction=left` |
335
+ | `animation-trigger` | トリガー | `animation-trigger=onClick` |
336
+ | `animation-repeat` | 繰り返し回数 | `animation-repeat=3` |
337
+ | `animation-speed` | 速度 | `animation-speed=fast` |
338
+
339
+ ### スライド遷移
340
+
341
+ スライドごとに遷移効果を指定できます:
342
+
343
+ ```markdown
344
+ ---
345
+ title: プレゼンテーション
346
+ ---
347
+
348
+ # スライド1
349
+
350
+ 通常のスライド
351
+
352
+ ---
353
+
354
+ # スライド2
355
+ transition:
356
+ type: fade
357
+ duration: 1
358
+ speed: medium
359
+
360
+ フェードイン効果のスライド
361
+
362
+ ---
363
+
364
+ # スライド3
365
+ transition:
366
+ type: push
367
+ direction: left
368
+ duration: 0.5
369
+
370
+ 左から押し出す効果のスライド
371
+ ```
372
+
373
+ #### 遷移タイプ
374
+
375
+ | タイプ | 説明 |
376
+ |--------|------|
377
+ | `none` | 遷移なし |
378
+ | `fade` | フェード |
379
+ | `push` | 押し出し |
380
+ | `wipe` | ワイプ |
381
+ | `split` | 分割 |
382
+ | `reveal` | 現れる |
383
+ | `randomBars` | ランダムバー |
384
+ | `shape` | シェイプ |
385
+ | `uncover` | アンカバー |
386
+ | `cover` | カバー |
387
+ | `flash` | フラッシュ |
388
+ | `checker` | チェッカー |
389
+ | `blinds` | ブラインド |
390
+ | `clock` | 時計 |
391
+ | `ripple` | リップル |
392
+ | `honeycomb` | ハニカム |
393
+ | `glitter` | グリッター |
394
+ | `sphere` | スフィア |
395
+ | `newsflash` | ニュースフラッシュ |
396
+ | `plus` | プラス |
397
+ | `diamond` | ダイヤモンド |
398
+ | `wedge` | ウェッジ |
399
+ | `wheel` | 車輪 |
400
+ | `circle` | 円 |
401
+ | `box` | ボックス |
402
+ | `zoom` | ズーム |
403
+ | `dissolve` | 溶解 |
404
+
405
+ #### 遷移オプション
406
+
407
+ | オプション | 説明 | 例 |
408
+ |-----------|------|-----|
409
+ | `type` | 遷移タイプ | `type: fade` |
410
+ | `duration` | 継続時間(秒) | `duration: 1` |
411
+ | `direction` | 方向 | `direction: left` |
412
+ | `speed` | 速度 | `speed: medium` |
413
+
414
+ ## 高度な機能
415
+
416
+ ### 高度なテーマカスタマイズ
417
+
418
+ marhupでは、Front Matterでテーマを詳細にカスタマイズできます。デフォルトテーマをベースに、色、フォント、フォントサイズ、グラデーションなどを上書きできます。
419
+
420
+ #### テーマ設定の構造
421
+
422
+ ```yaml
423
+ ---
424
+ theme:
425
+ colors:
426
+ primary: '#ff6b6b' # メインカラー
427
+ secondary: '#4ecdc4' # セカンダリカラー
428
+ accent: '#ffe66d' # アクセントカラー
429
+ background: '#ffffff' # 背景色
430
+ text: '#2c3e50' # テキスト色
431
+ fonts:
432
+ title: 'Times New Roman' # タイトルフォント
433
+ body: 'Georgia' # 本文フォント
434
+ code: 'Consolas' # コードフォント
435
+ fontSize:
436
+ h1: 44 # H1サイズ
437
+ h2: 32 # H2サイズ
438
+ h3: 28 # H3サイズ
439
+ body: 20 # 本文サイズ
440
+ small: 16 # 小サイズ
441
+ slideMaster:
442
+ backgroundColor: '#ffffff'
443
+ margin:
444
+ top: 0.5
445
+ bottom: 0.5
446
+ left: 0.5
447
+ right: 0.5
448
+ ---
449
+ ```
450
+
451
+ #### カラーテーマの例
452
+
453
+ ```markdown
454
+ ---
455
+ theme:
456
+ colors:
457
+ primary: '#e74c3c' # 赤系
458
+ secondary: '#95a5a6' # グレー
459
+ accent: '#f39c12' # オレンジ
460
+ background: '#ecf0f1' # ライトグレー
461
+ text: '#2c3e50' # ダーク
462
+ ---
463
+
464
+ # 企業プレゼンテーション [1-12, 1]
465
+
466
+ [1-6, 2-8]
467
+ ## 製品概要
468
+ {.primary} <!-- プライマリカラーのテキスト -->
469
+
470
+ [7-12, 2-8]
471
+ ## 特徴
472
+ - 高品質
473
+ - 信頼性
474
+ - 使いやすさ
475
+ ```
476
+
477
+ #### フォントテーマの例
478
+
479
+ ```markdown
480
+ ---
481
+ theme:
482
+ fonts:
483
+ title: 'Arial Black'
484
+ body: 'Arial'
485
+ code: 'Courier New'
486
+ fontSize:
487
+ h1: 48
488
+ h2: 36
489
+ body: 24
490
+ ---
491
+
492
+ # モダンスタイル [1-12, 1]
493
+
494
+ 本文はArialフォントで大きめに表示されます。
495
+ ```
496
+
497
+ ### 高度なアニメーション
498
+
499
+ アニメーションは要素ごとに細かく制御できます。複数のオプションを組み合わせることで、プロフェッショナルなプレゼンテーションを作成できます。
500
+
501
+ #### アニメーションのタイミング制御
502
+
503
+ ```markdown
504
+ # タイトル {animation=appear animation-delay=0}
505
+
506
+ ## サブタイトル {animation=fade animation-delay=0.5}
507
+
508
+ - 項目1 {animation=fly animation-direction=left animation-delay=1}
509
+ - 項目2 {animation=fly animation-direction=left animation-delay=1.2}
510
+ - 項目3 {animation=fly animation-direction=left animation-delay=1.4}
511
+
512
+ ![グラフ](chart.png) {animation=zoom animation-delay=2 animation-duration=1.5}
513
+ ```
514
+
515
+ #### トリガーと繰り返し
516
+
517
+ ```markdown
518
+ # クリックで開始 {animation=appear animation-trigger=onClick}
519
+
520
+ # 自動再生 {animation=spin animation-repeat=3 animation-speed=fast}
521
+
522
+ # 前の要素と同時 {animation=bounce animation-trigger=withPrevious}
523
+ ```
524
+
525
+ #### 複雑なアニメーションシーケンス
526
+
527
+ ```markdown
528
+ ---
529
+ grid: 12x9
530
+ ---
531
+
532
+ # ダッシュボード表示 [1-12, 1] {animation=appear}
533
+
534
+ [1-3, 2-4] {.card} {animation=fly animation-direction=left animation-delay=0.5}
535
+ ### KPI 1
536
+ **100%**
537
+
538
+ [4-6, 2-4] {.card} {animation=fly animation-direction=top animation-delay=1}
539
+ ### KPI 2
540
+ **85%**
541
+
542
+ [7-9, 2-4] {.card} {animation=zoom animation-delay=1.5}
543
+ ### KPI 3
544
+ **92%**
545
+
546
+ [10-12, 2-4] {.card} {animation=bounce animation-delay=2}
547
+ ### KPI 4
548
+ **78%**
549
+
550
+ [1-12, 5-9] {animation=fade animation-delay=2.5}
551
+ ![トレンドグラフ](./trend.png)
552
+ ```
553
+
554
+ #### アニメーションの方向指定
555
+
556
+ ```markdown
557
+ # 左から飛んでくる {animation=fly animation-direction=left}
558
+
559
+ # 右から {animation=fly animation-direction=right}
560
+
561
+ # 上から {animation=fly animation-direction=top}
562
+
563
+ # 対角線 {animation=fly animation-direction=topLeft}
564
+
565
+ # 回転方向 {animation=spin animation-direction=clockwise}
566
+ ```
567
+
568
+ ### カスタムスタイルクラスの活用
569
+
570
+ Front Matterで独自のスタイルクラスを定義し、再利用できます。
571
+
572
+ ```markdown
573
+ ---
574
+ classes:
575
+ highlight-box:
576
+ fill: { color: '#e3f2fd' }
577
+ line: { color: '#2196f3', width: 2 }
578
+ bold: true
579
+ fontSize: 24
580
+ warning:
581
+ color: '#f57c00'
582
+ fill: { color: '#fff3e0' }
583
+ bold: true
584
+ success:
585
+ color: '#388e3c'
586
+ fill: { color: '#e8f5e8' }
587
+ ---
588
+
589
+ # プロジェクトステータス [1-12, 1]
590
+
591
+ [1-4, 2-4] {.highlight-box}
592
+ ### 完了
593
+ - 設計
594
+ - 開発
595
+
596
+ [5-8, 2-4] {.warning}
597
+ ### 進行中
598
+ - テスト
599
+ - ドキュメント
600
+
601
+ [9-12, 2-4] {.success}
602
+ ### 予定
603
+ - リリース
604
+ - メンテナンス
605
+ ```
606
+
160
607
  ## 完全なサンプル
161
608
 
162
609
  ### シンプルなスライド
@@ -351,6 +798,35 @@ AIアシスタントに以下のように依頼できます:
351
798
  - 「このMarkdownをPowerPointに変換して」
352
799
  - 「プレゼン資料を作成して、/path/to/output.pptx に保存して」
353
800
  - 「marhupの記法を教えて」
801
+ - 「カスタムスタイルを使ってプレゼンを作成して」
802
+
803
+ #### カスタムクラスを使用した例
804
+
805
+ ```markdown
806
+ ---
807
+ classes:
808
+ highlight:
809
+ color: '#ff6b35'
810
+ bold: true
811
+ fill: { color: '#fff3cd' }
812
+ note:
813
+ fontSize: 12
814
+ color: '#6c757d'
815
+ italic: true
816
+ ---
817
+
818
+ # プロジェクト概要 [1-12, 1]
819
+
820
+ [1-6, 2-8]
821
+ ## 主な機能 {.highlight}
822
+ - 自動レイアウト
823
+ - スタイルカスタマイズ
824
+ - Mermaid図対応
825
+
826
+ [7-12, 2-8]
827
+ ## 注意事項 {.note}
828
+ カスタムクラスはFront Matterで定義できます。
829
+ ```
354
830
 
355
831
  ## 対応Markdown記法
356
832
 
@@ -360,6 +836,7 @@ AIアシスタントに以下のように依頼できます:
360
836
  | 段落 | ✅ |
361
837
  | 箇条書き (`-`, `*`, `1.`) | ✅ |
362
838
  | 画像 (`![](...)`) | ✅ |
839
+ | 動画 (`!v(...)`) | ✅ |
363
840
  | 表 | ✅ |
364
841
  | コードブロック | ✅ |
365
842
  | Mermaid図 (` ```mermaid `) | ✅ |