marhup 0.1.7

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 (94) hide show
  1. package/README.md +377 -0
  2. package/dist/cli.d.ts +6 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +99 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/generator/code.d.ts +17 -0
  7. package/dist/generator/code.d.ts.map +1 -0
  8. package/dist/generator/code.js +36 -0
  9. package/dist/generator/code.js.map +1 -0
  10. package/dist/generator/image.d.ts +17 -0
  11. package/dist/generator/image.d.ts.map +1 -0
  12. package/dist/generator/image.js +186 -0
  13. package/dist/generator/image.js.map +1 -0
  14. package/dist/generator/index.d.ts +11 -0
  15. package/dist/generator/index.d.ts.map +1 -0
  16. package/dist/generator/index.js +22 -0
  17. package/dist/generator/index.js.map +1 -0
  18. package/dist/generator/list.d.ts +17 -0
  19. package/dist/generator/list.d.ts.map +1 -0
  20. package/dist/generator/list.js +33 -0
  21. package/dist/generator/list.js.map +1 -0
  22. package/dist/generator/mermaid.d.ts +17 -0
  23. package/dist/generator/mermaid.d.ts.map +1 -0
  24. package/dist/generator/mermaid.js +192 -0
  25. package/dist/generator/mermaid.js.map +1 -0
  26. package/dist/generator/pptx.d.ts +9 -0
  27. package/dist/generator/pptx.d.ts.map +1 -0
  28. package/dist/generator/pptx.js +90 -0
  29. package/dist/generator/pptx.js.map +1 -0
  30. package/dist/generator/table.d.ts +17 -0
  31. package/dist/generator/table.d.ts.map +1 -0
  32. package/dist/generator/table.js +48 -0
  33. package/dist/generator/table.js.map +1 -0
  34. package/dist/generator/text.d.ts +21 -0
  35. package/dist/generator/text.d.ts.map +1 -0
  36. package/dist/generator/text.js +57 -0
  37. package/dist/generator/text.js.map +1 -0
  38. package/dist/index.d.ts +20 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +73 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/layout/auto.d.ts +30 -0
  43. package/dist/layout/auto.d.ts.map +1 -0
  44. package/dist/layout/auto.js +155 -0
  45. package/dist/layout/auto.js.map +1 -0
  46. package/dist/layout/engine.d.ts +27 -0
  47. package/dist/layout/engine.d.ts.map +1 -0
  48. package/dist/layout/engine.js +59 -0
  49. package/dist/layout/engine.js.map +1 -0
  50. package/dist/layout/index.d.ts +7 -0
  51. package/dist/layout/index.d.ts.map +1 -0
  52. package/dist/layout/index.js +14 -0
  53. package/dist/layout/index.js.map +1 -0
  54. package/dist/layout/types.d.ts +22 -0
  55. package/dist/layout/types.d.ts.map +1 -0
  56. package/dist/layout/types.js +6 -0
  57. package/dist/layout/types.js.map +1 -0
  58. package/dist/mcp-handlers.d.ts +33 -0
  59. package/dist/mcp-handlers.d.ts.map +1 -0
  60. package/dist/mcp-handlers.js +280 -0
  61. package/dist/mcp-handlers.js.map +1 -0
  62. package/dist/mcp.d.ts +7 -0
  63. package/dist/mcp.d.ts.map +1 -0
  64. package/dist/mcp.js +44 -0
  65. package/dist/mcp.js.map +1 -0
  66. package/dist/parser/frontmatter.d.ts +19 -0
  67. package/dist/parser/frontmatter.d.ts.map +1 -0
  68. package/dist/parser/frontmatter.js +51 -0
  69. package/dist/parser/frontmatter.js.map +1 -0
  70. package/dist/parser/grid.d.ts +36 -0
  71. package/dist/parser/grid.d.ts.map +1 -0
  72. package/dist/parser/grid.js +92 -0
  73. package/dist/parser/grid.js.map +1 -0
  74. package/dist/parser/index.d.ts +7 -0
  75. package/dist/parser/index.d.ts.map +1 -0
  76. package/dist/parser/index.js +17 -0
  77. package/dist/parser/index.js.map +1 -0
  78. package/dist/parser/markdown.d.ts +9 -0
  79. package/dist/parser/markdown.d.ts.map +1 -0
  80. package/dist/parser/markdown.js +296 -0
  81. package/dist/parser/markdown.js.map +1 -0
  82. package/dist/theme/default.d.ts +11 -0
  83. package/dist/theme/default.d.ts.map +1 -0
  84. package/dist/theme/default.js +76 -0
  85. package/dist/theme/default.js.map +1 -0
  86. package/dist/theme/index.d.ts +5 -0
  87. package/dist/theme/index.d.ts.map +1 -0
  88. package/dist/theme/index.js +11 -0
  89. package/dist/theme/index.js.map +1 -0
  90. package/dist/types/index.d.ts +86 -0
  91. package/dist/types/index.d.ts.map +1 -0
  92. package/dist/types/index.js +23 -0
  93. package/dist/types/index.js.map +1 -0
  94. package/package.json +66 -0
package/README.md ADDED
@@ -0,0 +1,377 @@
1
+ # marhup
2
+
3
+ Markdownからグリッドベースのレイアウトで PowerPoint (PPTX) を生成するCLIツール
4
+
5
+ ## 特徴
6
+
7
+ - 📐 **グリッドベースレイアウト** - 12×9グリッドで直感的な位置指定
8
+ - 🎯 **シンプルな記法** - 位置指定は省略可能、自動レイアウト
9
+ - 🎨 **スタイル指定** - クラスベースの柔軟なスタイリング
10
+ - 📝 **Markdown完全互換** - 標準Markdown記法をそのまま使用
11
+ - 🧩 **Mermaid対応** - Mermaid記法の図を自動で画像化
12
+
13
+ ## インストール
14
+
15
+ ```bash
16
+ npm install -g marhup
17
+ ```
18
+
19
+ ## 基本的な使い方
20
+
21
+ ```bash
22
+ # 基本的な変換
23
+ marhup input.md -o output.pptx
24
+
25
+ # テーマを指定
26
+ marhup input.md -o output.pptx --theme corporate
27
+
28
+ # 監視モード(変更時に自動再生成)
29
+ marhup input.md -o output.pptx --watch
30
+ ```
31
+
32
+ ## 記法ガイド
33
+
34
+ ### スライドの区切り
35
+
36
+ `---` でスライドを区切ります:
37
+
38
+ ```markdown
39
+ # スライド1
40
+
41
+ 内容...
42
+
43
+ ---
44
+
45
+ # スライド2
46
+
47
+ 内容...
48
+ ```
49
+
50
+ ### Front Matter
51
+
52
+ 各スライドの先頭でオプションを指定できます:
53
+
54
+ ```markdown
55
+ ---
56
+ title: プレゼンテーション
57
+ grid: 12x9
58
+ theme: default
59
+ ---
60
+ ```
61
+
62
+ | プロパティ | 説明 | デフォルト |
63
+ |-----------|------|-----------|
64
+ | `title` | ドキュメントタイトル | なし |
65
+ | `grid` | グリッドサイズ(列x行) | `12x9` |
66
+ | `theme` | テーマ名 | `default` |
67
+ | `layout` | プリセットレイアウト | なし |
68
+
69
+ ### グリッド位置指定
70
+
71
+ `[列, 行]` 形式で要素の位置を指定します:
72
+
73
+ ```markdown
74
+ # タイトル [1-12, 1]
75
+
76
+ [1-6, 2-8]
77
+ 左側のコンテンツ
78
+
79
+ [7-12, 2-8]
80
+ 右側のコンテンツ
81
+ ```
82
+
83
+ #### 記法
84
+
85
+ | 記法 | 説明 | 例 |
86
+ |------|------|-----|
87
+ | `[列, 行]` | 1セル | `[1, 1]` |
88
+ | `[列1-列2, 行]` | 列の範囲 | `[1-6, 1]` |
89
+ | `[列, 行1-行2]` | 行の範囲 | `[1, 1-3]` |
90
+ | `[列1-列2, 行1-行2]` | 矩形範囲 | `[1-6, 2-8]` |
91
+
92
+ #### グリッドイメージ
93
+
94
+ ```
95
+ 1 2 3 4 5 6 7 8 9 10 11 12
96
+ ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
97
+ 1 │ [1-12, 1] │
98
+ ├───┴───┴───┬───┴───┴───┴───┴───┴───┼───┴───┴───┤
99
+ 2 │ │ │ │
100
+ 3 │ [1-3, │ [4-9, 2-5] │ [10-12, │
101
+ 4 │ 2-5] │ │ 2-5] │
102
+ 5 │ │ │ │
103
+ ├───────────┴───────────────────────┴───────────┤
104
+ 6 │ │
105
+ 7 │ [1-12, 6-9] │
106
+ 8 │ │
107
+ 9 │ │
108
+ └───────────────────────────────────────────────┘
109
+ ```
110
+
111
+ ### スタイル指定
112
+
113
+ `{.クラス名}` 形式でスタイルを指定します:
114
+
115
+ ```markdown
116
+ # タイトル [1-12, 1] {.center}
117
+
118
+ テキスト {.red .bold}
119
+ ```
120
+
121
+ #### 利用可能なクラス
122
+
123
+ | カテゴリ | クラス | 説明 |
124
+ |---------|--------|------|
125
+ | 配置 | `.center` | 中央揃え |
126
+ | | `.left` | 左揃え |
127
+ | | `.right` | 右揃え |
128
+ | 色 | `.red` | 赤色 |
129
+ | | `.blue` | 青色 |
130
+ | | `.green` | 緑色 |
131
+ | | `.gray` | グレー |
132
+ | サイズ | `.small` | 小さいフォント |
133
+ | | `.large` | 大きいフォント |
134
+ | 装飾 | `.bold` | 太字 |
135
+ | | `.highlight` | ハイライト背景 |
136
+ | | `.card` | カード風背景 |
137
+ | 特殊 | `.header` | ヘッダー領域 |
138
+ | | `.footer` | フッター領域 |
139
+ | | `.note` | 注釈スタイル |
140
+
141
+ ### 省略時のデフォルト動作
142
+
143
+ 位置やスタイルは省略可能です:
144
+
145
+ ```markdown
146
+ # タイトル
147
+
148
+ 本文テキスト
149
+
150
+ - 箇条書き1
151
+ - 箇条書き2
152
+ ```
153
+
154
+ | 省略した場合 | デフォルト動作 |
155
+ |------------|---------------|
156
+ | `grid:` | `12x9` を使用 |
157
+ | `[位置]` | 上から順に自動配置、全幅 |
158
+ | `{スタイル}` | テーマのデフォルト |
159
+
160
+ ## 完全なサンプル
161
+
162
+ ### シンプルなスライド
163
+
164
+ ```markdown
165
+ ---
166
+ title: 月次報告
167
+ ---
168
+
169
+ # 2026年1月 月次報告
170
+
171
+ 営業部 山田太郎
172
+
173
+ ---
174
+
175
+ # 今月の成果
176
+
177
+ - 新規顧客獲得: 15社
178
+ - 売上達成率: 120%
179
+ - 顧客満足度: 4.5/5.0
180
+ ```
181
+
182
+ ### グリッドレイアウト使用
183
+
184
+ ```markdown
185
+ ---
186
+ grid: 12x9
187
+ ---
188
+
189
+ # 売上推移と分析 [1-12, 1]
190
+
191
+ [1-7, 2-8]
192
+ ![売上グラフ](./charts/sales.png)
193
+
194
+ [8-12, 2-4]
195
+ ## 好調要因
196
+ - 新製品のヒット
197
+ - リピート率向上
198
+
199
+ [8-12, 5-8]
200
+ ## 課題
201
+ - 原価率の上昇
202
+ - 人材不足
203
+ ```
204
+
205
+ ### ダッシュボード風
206
+
207
+ ```markdown
208
+ ---
209
+ grid: 12x9
210
+ ---
211
+
212
+ # KPIダッシュボード [1-12, 1]
213
+
214
+ [1-3, 2-4] {.card .blue}
215
+ ### 売上
216
+ **¥128M**
217
+ 前年比 +12%
218
+
219
+ [4-6, 2-4] {.card .green}
220
+ ### 利益
221
+ **¥32M**
222
+ 前年比 +8%
223
+
224
+ [7-9, 2-4] {.card .orange}
225
+ ### 顧客数
226
+ **1,240社**
227
+ 前年比 +15%
228
+
229
+ [10-12, 2-4] {.card}
230
+ ### NPS
231
+ **72**
232
+ 前年比 +5pt
233
+
234
+ [1-6, 5-9]
235
+ ![売上推移](./charts/trend.png)
236
+
237
+ [7-12, 5-9]
238
+ ![地域別](./charts/region.png)
239
+ ```
240
+
241
+ ### Mermaid図を含むスライド
242
+
243
+ ````markdown
244
+ ---
245
+ grid: 12x9
246
+ ---
247
+
248
+ # システム構成図 [1-12, 1]
249
+
250
+ [1-6, 2-8]
251
+ ```mermaid
252
+ graph TD
253
+ A[ユーザー] --> B[Webサーバー]
254
+ B --> C[APIサーバー]
255
+ C --> D[(データベース)]
256
+ C --> E[キャッシュ]
257
+ ```
258
+
259
+ [7-12, 2-5]
260
+ ## アーキテクチャ
261
+ - Webサーバー: nginx
262
+ - API: Node.js
263
+ - DB: PostgreSQL
264
+
265
+ [7-12, 6-8]
266
+ ### 特徴
267
+ - スケーラブル
268
+ - 高可用性
269
+ - セキュア
270
+ ````
271
+
272
+ ## CLIオプション
273
+
274
+ ```
275
+ Usage: marhup [options] <input>
276
+
277
+ Markdownから PowerPoint を生成します
278
+
279
+ Arguments:
280
+ input 入力Markdownファイル
281
+
282
+ Options:
283
+ -o, --output <file> 出力ファイル名 (default: "output.pptx")
284
+ -t, --theme <name> テーマ名 (default: "default")
285
+ -w, --watch 監視モード
286
+ --grid <size> デフォルトグリッドサイズ (default: "12x9")
287
+ -v, --version バージョン表示
288
+ -h, --help ヘルプ表示
289
+ ```
290
+
291
+ ## プログラムからの使用
292
+
293
+ ```typescript
294
+ import { marhup } from 'marhup';
295
+
296
+ const markdown = `
297
+ # タイトル
298
+
299
+ 内容...
300
+ `;
301
+
302
+ await marhup(markdown, {
303
+ output: 'output.pptx',
304
+ theme: 'default'
305
+ });
306
+ ```
307
+
308
+ ## MCPサーバーとしての使用
309
+
310
+ marhupはModel Context Protocol (MCP) サーバーとして動作し、Claude Desktop等のAIアシスタントから直接呼び出すことができます。
311
+
312
+ ### 提供されるツール
313
+
314
+ | ツール名 | 説明 |
315
+ |---------|------|
316
+ | `convert_markdown_to_pptx` | Markdownテキストから直接PPTXを生成 |
317
+ | `convert_file_to_pptx` | MarkdownファイルからPPTXを生成 |
318
+ | `get_marhup_guide` | marhup記法ガイドを取得 |
319
+
320
+ ### Claude Desktopでの設定
321
+
322
+ `~/Library/Application Support/Claude/claude_desktop_config.json` に以下を追加:
323
+
324
+ ```json
325
+ {
326
+ "mcpServers": {
327
+ "marhup": {
328
+ "command": "node",
329
+ "args": ["/path/to/marhup/dist/mcp.js"]
330
+ }
331
+ }
332
+ }
333
+ ```
334
+
335
+ npmでグローバルインストールしている場合:
336
+
337
+ ```json
338
+ {
339
+ "mcpServers": {
340
+ "marhup": {
341
+ "command": "marhup-mcp"
342
+ }
343
+ }
344
+ }
345
+ ```
346
+
347
+ ### 使用例
348
+
349
+ AIアシスタントに以下のように依頼できます:
350
+
351
+ - 「このMarkdownをPowerPointに変換して」
352
+ - 「プレゼン資料を作成して、/path/to/output.pptx に保存して」
353
+ - 「marhupの記法を教えて」
354
+
355
+ ## 対応Markdown記法
356
+
357
+ | 記法 | 対応 |
358
+ |------|------|
359
+ | 見出し (`#`, `##`, ...) | ✅ |
360
+ | 段落 | ✅ |
361
+ | 箇条書き (`-`, `*`, `1.`) | ✅ |
362
+ | 画像 (`![](...)`) | ✅ |
363
+ | 表 | ✅ |
364
+ | コードブロック | ✅ |
365
+ | Mermaid図 (` ```mermaid `) | ✅ |
366
+ | 太字・斜体 | ✅ |
367
+ | リンク | ✅ |
368
+ | 引用 | ✅ |
369
+
370
+ ## ライセンス
371
+
372
+ MIT
373
+
374
+ ## 関連リンク
375
+
376
+ - [pptxgenjs](https://github.com/gitbrent/PptxGenJS) - PPTX生成ライブラリ
377
+ - [Marp](https://marp.app/) - 類似ツール(参考)
package/dist/cli.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * marhup CLI
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG"}
package/dist/cli.js ADDED
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * marhup CLI
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const commander_1 = require("commander");
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const index_js_1 = require("./index.js");
44
+ const program = new commander_1.Command();
45
+ program
46
+ .name('marhup')
47
+ .description('Markdownからグリッドベースのレイアウトで PowerPoint (PPTX) を生成')
48
+ .version('0.1.0')
49
+ .argument('<input>', '入力Markdownファイル')
50
+ .option('-o, --output <file>', '出力ファイル名', 'output.pptx')
51
+ .option('-t, --theme <name>', 'テーマ名', 'default')
52
+ .option('-w, --watch', '監視モード', false)
53
+ .option('--grid <size>', 'デフォルトグリッドサイズ', '12x9')
54
+ .action(async (input, options) => {
55
+ try {
56
+ // 入力ファイルの存在確認
57
+ const inputPath = path.resolve(input);
58
+ if (!fs.existsSync(inputPath)) {
59
+ console.error(`エラー: ファイルが見つかりません: ${inputPath}`);
60
+ process.exit(1);
61
+ }
62
+ // 出力パス
63
+ const outputPath = path.resolve(options.output);
64
+ console.log(`📝 ${input} を変換中...`);
65
+ // 変換実行
66
+ await (0, index_js_1.marhupFile)(inputPath, {
67
+ output: outputPath,
68
+ theme: options.theme,
69
+ grid: options.grid,
70
+ });
71
+ console.log(`✅ 生成完了: ${outputPath}`);
72
+ // 監視モード
73
+ if (options.watch) {
74
+ console.log('\n👀 監視モード開始... (Ctrl+C で終了)');
75
+ fs.watch(inputPath, async (eventType) => {
76
+ if (eventType === 'change') {
77
+ console.log(`\n🔄 変更を検出: ${input}`);
78
+ try {
79
+ await (0, index_js_1.marhupFile)(inputPath, {
80
+ output: outputPath,
81
+ theme: options.theme,
82
+ grid: options.grid,
83
+ });
84
+ console.log(`✅ 再生成完了: ${outputPath}`);
85
+ }
86
+ catch (error) {
87
+ console.error('❌ 変換エラー:', error);
88
+ }
89
+ }
90
+ });
91
+ }
92
+ }
93
+ catch (error) {
94
+ console.error('❌ エラー:', error);
95
+ process.exit(1);
96
+ }
97
+ });
98
+ program.parse();
99
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,yCAAwC;AAExC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,gDAAgD,CAAC;KAC7D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,qBAAqB,EAAE,SAAS,EAAE,aAAa,CAAC;KACvD,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,SAAS,CAAC;KAC/C,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC;KACrC,MAAM,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAK7B,EAAE,EAAE;IACH,IAAI,CAAC;QACH,cAAc;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO;QACP,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAEnC,OAAO;QACP,MAAM,IAAA,qBAAU,EAAC,SAAS,EAAE;YAC1B,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QAErC,QAAQ;QACR,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAE5C,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;gBACtC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;oBACpC,IAAI,CAAC;wBACH,MAAM,IAAA,qBAAU,EAAC,SAAS,EAAE;4BAC1B,MAAM,EAAE,UAAU;4BAClB,KAAK,EAAE,OAAO,CAAC,KAAK;4BACpB,IAAI,EAAE,OAAO,CAAC,IAAI;yBACnB,CAAC,CAAC;wBACH,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * コード要素の生成
3
+ */
4
+ import type PptxGenJS from 'pptxgenjs';
5
+ import type { PlacedElement } from '../layout/index';
6
+ interface Coordinates {
7
+ x: number;
8
+ y: number;
9
+ w: number;
10
+ h: number;
11
+ }
12
+ /**
13
+ * コード要素を追加
14
+ */
15
+ export declare function addCodeElement(slide: PptxGenJS.Slide, element: PlacedElement, coords: Coordinates, styleProps: Record<string, unknown>): void;
16
+ export {};
17
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/generator/code.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,UAAU,WAAW;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CA0BN"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * コード要素の生成
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addCodeElement = addCodeElement;
7
+ const index_1 = require("../theme/index");
8
+ /**
9
+ * コード要素を追加
10
+ */
11
+ function addCodeElement(slide, element, coords, styleProps) {
12
+ const content = element.content;
13
+ // 背景
14
+ slide.addShape('rect', {
15
+ x: coords.x,
16
+ y: coords.y,
17
+ w: coords.w,
18
+ h: coords.h,
19
+ fill: { color: '1e293b' },
20
+ line: { color: '334155', width: 1 },
21
+ });
22
+ // コードテキスト
23
+ slide.addText(content, {
24
+ x: coords.x + 0.1,
25
+ y: coords.y + 0.1,
26
+ w: coords.w - 0.2,
27
+ h: coords.h - 0.2,
28
+ fontSize: 14,
29
+ color: 'e2e8f0',
30
+ fontFace: index_1.defaultTheme.fonts.code,
31
+ align: 'left',
32
+ valign: 'top',
33
+ ...styleProps,
34
+ });
35
+ }
36
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/generator/code.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgBH,wCA+BC;AA3CD,0CAA8C;AAS9C;;GAEG;AACH,SAAgB,cAAc,CAC5B,KAAsB,EACtB,OAAsB,EACtB,MAAmB,EACnB,UAAmC;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAiB,CAAC;IAE1C,KAAK;IACL,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;QACrB,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;QACzB,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;KACpC,CAAC,CAAC;IAEH,UAAU;IACV,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QACrB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG;QACjB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG;QACjB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG;QACjB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG;QACjB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,oBAAY,CAAC,KAAK,CAAC,IAAI;QACjC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,KAAK;QACb,GAAG,UAAU;KACd,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 画像要素の生成
3
+ */
4
+ import type PptxGenJS from 'pptxgenjs';
5
+ import type { PlacedElement } from '../layout/index';
6
+ interface Coordinates {
7
+ x: number;
8
+ y: number;
9
+ w: number;
10
+ h: number;
11
+ }
12
+ /**
13
+ * 画像要素を追加
14
+ */
15
+ export declare function addImageElement(slide: PptxGenJS.Slide, element: PlacedElement, coords: Coordinates, styleProps: Record<string, unknown>, basePath?: string): void;
16
+ export {};
17
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/generator/image.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,UAAU,WAAW;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAyDD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CA+DN"}