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.
- package/README.md +377 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +99 -0
- package/dist/cli.js.map +1 -0
- package/dist/generator/code.d.ts +17 -0
- package/dist/generator/code.d.ts.map +1 -0
- package/dist/generator/code.js +36 -0
- package/dist/generator/code.js.map +1 -0
- package/dist/generator/image.d.ts +17 -0
- package/dist/generator/image.d.ts.map +1 -0
- package/dist/generator/image.js +186 -0
- package/dist/generator/image.js.map +1 -0
- package/dist/generator/index.d.ts +11 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +22 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/list.d.ts +17 -0
- package/dist/generator/list.d.ts.map +1 -0
- package/dist/generator/list.js +33 -0
- package/dist/generator/list.js.map +1 -0
- package/dist/generator/mermaid.d.ts +17 -0
- package/dist/generator/mermaid.d.ts.map +1 -0
- package/dist/generator/mermaid.js +192 -0
- package/dist/generator/mermaid.js.map +1 -0
- package/dist/generator/pptx.d.ts +9 -0
- package/dist/generator/pptx.d.ts.map +1 -0
- package/dist/generator/pptx.js +90 -0
- package/dist/generator/pptx.js.map +1 -0
- package/dist/generator/table.d.ts +17 -0
- package/dist/generator/table.d.ts.map +1 -0
- package/dist/generator/table.js +48 -0
- package/dist/generator/table.js.map +1 -0
- package/dist/generator/text.d.ts +21 -0
- package/dist/generator/text.d.ts.map +1 -0
- package/dist/generator/text.js +57 -0
- package/dist/generator/text.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/auto.d.ts +30 -0
- package/dist/layout/auto.d.ts.map +1 -0
- package/dist/layout/auto.js +155 -0
- package/dist/layout/auto.js.map +1 -0
- package/dist/layout/engine.d.ts +27 -0
- package/dist/layout/engine.d.ts.map +1 -0
- package/dist/layout/engine.js +59 -0
- package/dist/layout/engine.js.map +1 -0
- package/dist/layout/index.d.ts +7 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +14 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/types.d.ts +22 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +6 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/mcp-handlers.d.ts +33 -0
- package/dist/mcp-handlers.d.ts.map +1 -0
- package/dist/mcp-handlers.js +280 -0
- package/dist/mcp-handlers.js.map +1 -0
- package/dist/mcp.d.ts +7 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +44 -0
- package/dist/mcp.js.map +1 -0
- package/dist/parser/frontmatter.d.ts +19 -0
- package/dist/parser/frontmatter.d.ts.map +1 -0
- package/dist/parser/frontmatter.js +51 -0
- package/dist/parser/frontmatter.js.map +1 -0
- package/dist/parser/grid.d.ts +36 -0
- package/dist/parser/grid.d.ts.map +1 -0
- package/dist/parser/grid.js +92 -0
- package/dist/parser/grid.js.map +1 -0
- package/dist/parser/index.d.ts +7 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +17 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/markdown.d.ts +9 -0
- package/dist/parser/markdown.d.ts.map +1 -0
- package/dist/parser/markdown.js +296 -0
- package/dist/parser/markdown.js.map +1 -0
- package/dist/theme/default.d.ts +11 -0
- package/dist/theme/default.d.ts.map +1 -0
- package/dist/theme/default.js +76 -0
- package/dist/theme/default.js.map +1 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +11 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/types/index.d.ts +86 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Markdownパーサー
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.parseMarkdown = parseMarkdown;
|
|
7
|
+
const marked_1 = require("marked");
|
|
8
|
+
const frontmatter_1 = require("./frontmatter");
|
|
9
|
+
const grid_1 = require("./grid");
|
|
10
|
+
/**
|
|
11
|
+
* Markdownをパースしてドキュメント構造に変換
|
|
12
|
+
*/
|
|
13
|
+
function parseMarkdown(markdown) {
|
|
14
|
+
// グローバルFront Matterを抽出
|
|
15
|
+
const { frontmatter: globalFrontmatter, body } = (0, frontmatter_1.parseFrontmatter)(markdown);
|
|
16
|
+
// スライド区切りで分割
|
|
17
|
+
const slideContents = splitSlides(body);
|
|
18
|
+
// 各スライドをパース
|
|
19
|
+
const slides = slideContents.map((content) => parseSlide(content));
|
|
20
|
+
return {
|
|
21
|
+
globalFrontmatter,
|
|
22
|
+
slides,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* スライド区切り(---)で分割
|
|
27
|
+
*/
|
|
28
|
+
function splitSlides(content) {
|
|
29
|
+
// 改行 + --- + 改行 をスライド区切りとして扱う
|
|
30
|
+
// ただしFront Matterは除外する
|
|
31
|
+
const slideDelimiter = /\n---\s*\n/;
|
|
32
|
+
return content.split(slideDelimiter).filter((s) => s.trim().length > 0);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 1スライド分のコンテンツをパース
|
|
36
|
+
*/
|
|
37
|
+
function parseSlide(content) {
|
|
38
|
+
// スライド個別のFront Matterがあれば抽出
|
|
39
|
+
const { frontmatter, body } = (0, frontmatter_1.parseFrontmatter)(content);
|
|
40
|
+
// 要素をパース
|
|
41
|
+
const elements = parseSlideElements(body);
|
|
42
|
+
return {
|
|
43
|
+
frontmatter,
|
|
44
|
+
elements,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* スライド内の要素をパース
|
|
49
|
+
*/
|
|
50
|
+
function parseSlideElements(content) {
|
|
51
|
+
const elements = [];
|
|
52
|
+
const lines = content.split('\n');
|
|
53
|
+
let currentBlock = null;
|
|
54
|
+
let nonBlockLines = [];
|
|
55
|
+
const flushNonBlockLines = () => {
|
|
56
|
+
if (nonBlockLines.length > 0) {
|
|
57
|
+
const blockContent = nonBlockLines.join('\n');
|
|
58
|
+
if (blockContent.trim()) {
|
|
59
|
+
const blockElements = parseBlockContent(blockContent, undefined, undefined);
|
|
60
|
+
elements.push(...blockElements);
|
|
61
|
+
}
|
|
62
|
+
nonBlockLines = [];
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
for (let i = 0; i < lines.length; i++) {
|
|
66
|
+
const line = lines[i];
|
|
67
|
+
// グリッドブロックの開始をチェック
|
|
68
|
+
const { isGridBlock, position, style } = (0, grid_1.parseBlockGridLine)(line);
|
|
69
|
+
if (isGridBlock) {
|
|
70
|
+
// 前のノンブロック行があれば処理
|
|
71
|
+
flushNonBlockLines();
|
|
72
|
+
// 前のグリッドブロックがあれば処理
|
|
73
|
+
if (currentBlock && currentBlock.lines.length > 0) {
|
|
74
|
+
const blockElements = parseBlockContent(currentBlock.lines.join('\n'), currentBlock.position, currentBlock.style);
|
|
75
|
+
elements.push(...blockElements);
|
|
76
|
+
}
|
|
77
|
+
// 新しいブロックを開始
|
|
78
|
+
currentBlock = {
|
|
79
|
+
position,
|
|
80
|
+
style,
|
|
81
|
+
lines: [],
|
|
82
|
+
};
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// 現在のグリッドブロックに行を追加
|
|
86
|
+
if (currentBlock) {
|
|
87
|
+
currentBlock.lines.push(line);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// ブロック外の行はまとめておく
|
|
91
|
+
nonBlockLines.push(line);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// 最後のノンブロック行を処理
|
|
95
|
+
flushNonBlockLines();
|
|
96
|
+
// 最後のグリッドブロックを処理
|
|
97
|
+
if (currentBlock && currentBlock.lines.length > 0) {
|
|
98
|
+
const blockElements = parseBlockContent(currentBlock.lines.join('\n'), currentBlock.position, currentBlock.style);
|
|
99
|
+
elements.push(...blockElements);
|
|
100
|
+
}
|
|
101
|
+
return elements;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 1行をパース(見出しなど、インラインでグリッド指定があるケース)
|
|
105
|
+
*/
|
|
106
|
+
function _parseLine(line) {
|
|
107
|
+
const elements = [];
|
|
108
|
+
// 見出しチェック
|
|
109
|
+
const headingMatch = line.match(/^(#{1,6})\s+(.+)$/);
|
|
110
|
+
if (headingMatch) {
|
|
111
|
+
const level = headingMatch[1].length;
|
|
112
|
+
const { position, style, cleanText } = (0, grid_1.extractGridAndStyle)(headingMatch[2]);
|
|
113
|
+
elements.push({
|
|
114
|
+
type: 'heading',
|
|
115
|
+
level,
|
|
116
|
+
content: cleanText,
|
|
117
|
+
position,
|
|
118
|
+
style,
|
|
119
|
+
raw: line,
|
|
120
|
+
});
|
|
121
|
+
return elements;
|
|
122
|
+
}
|
|
123
|
+
// 画像チェック
|
|
124
|
+
const imageMatch = line.match(/^!\[([^\]]*)\]\(([^)]+)\)(.*)$/);
|
|
125
|
+
if (imageMatch) {
|
|
126
|
+
const _altText = imageMatch[1];
|
|
127
|
+
const src = imageMatch[2];
|
|
128
|
+
const rest = imageMatch[3];
|
|
129
|
+
const { position, style } = (0, grid_1.extractGridAndStyle)(rest);
|
|
130
|
+
elements.push({
|
|
131
|
+
type: 'image',
|
|
132
|
+
content: src,
|
|
133
|
+
position,
|
|
134
|
+
style,
|
|
135
|
+
raw: line,
|
|
136
|
+
});
|
|
137
|
+
return elements;
|
|
138
|
+
}
|
|
139
|
+
return elements;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* ブロックコンテンツをパース
|
|
143
|
+
*/
|
|
144
|
+
function parseBlockContent(content, position, style) {
|
|
145
|
+
const elements = [];
|
|
146
|
+
const tokens = marked_1.marked.lexer(content);
|
|
147
|
+
// グリッドブロック内の要素を収集
|
|
148
|
+
const blockElements = [];
|
|
149
|
+
for (const token of tokens) {
|
|
150
|
+
const element = tokenToElement(token);
|
|
151
|
+
if (element) {
|
|
152
|
+
blockElements.push(element);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// 位置指定がある場合、領域を要素数で分割
|
|
156
|
+
if (position && blockElements.length > 0) {
|
|
157
|
+
const totalRows = position.rowEnd - position.rowStart + 1;
|
|
158
|
+
const rowsPerElement = Math.max(1, Math.floor(totalRows / blockElements.length));
|
|
159
|
+
let currentRow = position.rowStart;
|
|
160
|
+
for (let i = 0; i < blockElements.length; i++) {
|
|
161
|
+
const element = blockElements[i];
|
|
162
|
+
const isLast = i === blockElements.length - 1;
|
|
163
|
+
const elementRowEnd = isLast ? position.rowEnd : Math.min(currentRow + rowsPerElement - 1, position.rowEnd);
|
|
164
|
+
element.position = {
|
|
165
|
+
colStart: position.colStart,
|
|
166
|
+
colEnd: position.colEnd,
|
|
167
|
+
rowStart: currentRow,
|
|
168
|
+
rowEnd: elementRowEnd,
|
|
169
|
+
};
|
|
170
|
+
if (style && !element.style) {
|
|
171
|
+
element.style = style;
|
|
172
|
+
}
|
|
173
|
+
elements.push(element);
|
|
174
|
+
currentRow = elementRowEnd + 1;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
// 位置指定がない場合はそのまま追加
|
|
179
|
+
elements.push(...blockElements);
|
|
180
|
+
}
|
|
181
|
+
return elements;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* marked トークンをSlideElementに変換
|
|
185
|
+
*/
|
|
186
|
+
function tokenToElement(token) {
|
|
187
|
+
switch (token.type) {
|
|
188
|
+
case 'heading': {
|
|
189
|
+
const headingToken = token;
|
|
190
|
+
const { position, style, cleanText } = (0, grid_1.extractGridAndStyle)(headingToken.text);
|
|
191
|
+
return {
|
|
192
|
+
type: 'heading',
|
|
193
|
+
level: headingToken.depth,
|
|
194
|
+
content: cleanText,
|
|
195
|
+
position,
|
|
196
|
+
style,
|
|
197
|
+
raw: headingToken.raw,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
case 'paragraph': {
|
|
201
|
+
const paragraphToken = token;
|
|
202
|
+
const { position, style, cleanText } = (0, grid_1.extractGridAndStyle)(paragraphToken.text);
|
|
203
|
+
// 画像をチェック
|
|
204
|
+
const imageMatch = paragraphToken.text.match(/^!\[([^\]]*)\]\(([^)]+)\)(.*)$/);
|
|
205
|
+
if (imageMatch) {
|
|
206
|
+
const src = imageMatch[2];
|
|
207
|
+
const rest = imageMatch[3];
|
|
208
|
+
const { position: imgPos, style: imgStyle } = (0, grid_1.extractGridAndStyle)(rest);
|
|
209
|
+
return {
|
|
210
|
+
type: 'image',
|
|
211
|
+
content: src,
|
|
212
|
+
position: imgPos || position,
|
|
213
|
+
style: imgStyle || style,
|
|
214
|
+
raw: paragraphToken.raw,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
type: 'paragraph',
|
|
219
|
+
content: cleanText,
|
|
220
|
+
position,
|
|
221
|
+
style,
|
|
222
|
+
raw: paragraphToken.raw,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
case 'list': {
|
|
226
|
+
const listToken = token;
|
|
227
|
+
const items = parseListItems(listToken.items, listToken.ordered);
|
|
228
|
+
return {
|
|
229
|
+
type: 'list',
|
|
230
|
+
content: items,
|
|
231
|
+
raw: listToken.raw,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
case 'table': {
|
|
235
|
+
const tableToken = token;
|
|
236
|
+
const tableData = {
|
|
237
|
+
headers: tableToken.header.map((h) => h.text),
|
|
238
|
+
rows: tableToken.rows.map((row) => row.map((cell) => cell.text)),
|
|
239
|
+
};
|
|
240
|
+
return {
|
|
241
|
+
type: 'table',
|
|
242
|
+
content: tableData,
|
|
243
|
+
raw: tableToken.raw,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
case 'code': {
|
|
247
|
+
const codeToken = token;
|
|
248
|
+
// mermaid記法の場合は別タイプとして扱う
|
|
249
|
+
if (codeToken.lang === 'mermaid') {
|
|
250
|
+
return {
|
|
251
|
+
type: 'mermaid',
|
|
252
|
+
content: codeToken.text,
|
|
253
|
+
raw: codeToken.raw,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
type: 'code',
|
|
258
|
+
content: codeToken.text,
|
|
259
|
+
raw: codeToken.raw,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
case 'blockquote': {
|
|
263
|
+
const blockquoteToken = token;
|
|
264
|
+
return {
|
|
265
|
+
type: 'blockquote',
|
|
266
|
+
content: blockquoteToken.text,
|
|
267
|
+
raw: blockquoteToken.raw,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
default:
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* リストアイテムをパース
|
|
276
|
+
*/
|
|
277
|
+
function parseListItems(items, ordered) {
|
|
278
|
+
return items.map((item) => ({
|
|
279
|
+
content: item.text.split('\n')[0], // 最初の行のみ
|
|
280
|
+
level: 0,
|
|
281
|
+
ordered,
|
|
282
|
+
children: item.tokens
|
|
283
|
+
? parseNestedList(item.tokens)
|
|
284
|
+
: undefined,
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* ネストしたリストをパース
|
|
289
|
+
*/
|
|
290
|
+
function parseNestedList(tokens) {
|
|
291
|
+
const listToken = tokens.find((t) => t.type === 'list');
|
|
292
|
+
if (!listToken)
|
|
293
|
+
return undefined;
|
|
294
|
+
return parseListItems(listToken.items, listToken.ordered);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/parser/markdown.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAkBH,sCAcC;AA9BD,mCAAyD;AAUzD,+CAAiD;AACjD,iCAAiE;AAEjE;;GAEG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,uBAAuB;IACvB,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,IAAA,8BAAgB,EAAC,QAAQ,CAAC,CAAC;IAE5E,aAAa;IACb,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAExC,YAAY;IACZ,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,iBAAiB;QACjB,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,8BAA8B;IAC9B,uBAAuB;IACvB,MAAM,cAAc,GAAG,YAAY,CAAC;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IACjC,4BAA4B;IAC5B,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC;IAExD,SAAS;IACT,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO;QACL,WAAW;QACX,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,YAAY,GAIL,IAAI,CAAC;IAEhB,IAAI,aAAa,GAAa,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC5E,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YAClC,CAAC;YACD,aAAa,GAAG,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,mBAAmB;QACnB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAC;QAElE,IAAI,WAAW,EAAE,CAAC;YAChB,kBAAkB;YAClB,kBAAkB,EAAE,CAAC;YAErB,mBAAmB;YACnB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,MAAM,aAAa,GAAG,iBAAiB,CACrC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,KAAK,CACnB,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YAClC,CAAC;YAED,aAAa;YACb,YAAY,GAAG;gBACb,QAAQ;gBACR,KAAK;gBACL,KAAK,EAAE,EAAE;aACV,CAAC;YACF,SAAS;QACX,CAAC;QAED,mBAAmB;QACnB,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,iBAAiB;YACjB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,kBAAkB,EAAE,CAAC;IAErB,iBAAiB;IACjB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,aAAa,GAAG,iBAAiB,CACrC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,KAAK,CACnB,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,UAAU;IACV,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAA,0BAAmB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,SAAS;YACf,KAAK;YACL,OAAO,EAAE,SAAS;YAClB,QAAQ;YACR,KAAK;YACL,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS;IACT,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAA,0BAAmB,EAAC,IAAI,CAAC,CAAC;QAEtD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,QAAQ;YACR,KAAK;YACL,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,OAAe,EACf,QAAuB,EACvB,KAAoB;IAEpB,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAErC,kBAAkB;IAClB,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjF,IAAI,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,CAAC,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,cAAc,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE5G,OAAO,CAAC,QAAQ,GAAG;gBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,aAAa;aACtB,CAAC;YAEF,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,UAAU,GAAG,aAAa,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAY;IAClC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,YAAY,GAAG,KAAuB,CAAC;YAC7C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAA,0BAAmB,EAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9E,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,OAAO,EAAE,SAAS;gBAClB,QAAQ;gBACR,KAAK;gBACL,GAAG,EAAE,YAAY,CAAC,GAAG;aACtB,CAAC;QACJ,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,cAAc,GAAG,KAAyB,CAAC;YACjD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAA,0BAAmB,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAEhF,UAAU;YACV,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC/E,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAmB,EAAC,IAAI,CAAC,CAAC;gBACxE,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,MAAM,IAAI,QAAQ;oBAC5B,KAAK,EAAE,QAAQ,IAAI,KAAK;oBACxB,GAAG,EAAE,cAAc,CAAC,GAAG;iBACxB,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,SAAS;gBAClB,QAAQ;gBACR,KAAK;gBACL,GAAG,EAAE,cAAc,CAAC,GAAG;aACxB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,KAAoB,CAAC;YACvC,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC;QACJ,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,UAAU,GAAG,KAAqB,CAAC;YACzC,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7C,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjE,CAAC;YACF,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,SAAS;gBAClB,GAAG,EAAE,UAAU,CAAC,GAAG;aACpB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,KAAoB,CAAC;YACvC,yBAAyB;YACzB,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,SAAS,CAAC,IAAI;oBACvB,GAAG,EAAE,SAAS,CAAC,GAAG;iBACnB,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,SAAS,CAAC,IAAI;gBACvB,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC;QACJ,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,eAAe,GAAG,KAA0B,CAAC;YACnD,OAAO;gBACL,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,eAAe,CAAC,IAAI;gBAC7B,GAAG,EAAE,eAAe,CAAC,GAAG;aACzB,CAAC;QACJ,CAAC;QAED;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAwB,EAAE,OAAgB;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS;QAC5C,KAAK,EAAE,CAAC;QACR,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,MAAM;YACnB,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,CAAC,CAAC,SAAS;KACd,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,MAAe;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAA4B,CAAC;IACnF,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* デフォルトテーマ
|
|
3
|
+
*/
|
|
4
|
+
import type { ThemeConfig } from '../types/index.js';
|
|
5
|
+
export declare const defaultTheme: ThemeConfig;
|
|
6
|
+
export declare const styleClasses: Record<string, Record<string, unknown>>;
|
|
7
|
+
/**
|
|
8
|
+
* スタイルクラスをpptxgenjs形式に変換
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveStyleClasses(classes: string[]): Record<string, unknown>;
|
|
11
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/theme/default.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,YAAY,EAAE,WAqB1B,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoChE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW9E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* デフォルトテーマ
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.styleClasses = exports.defaultTheme = void 0;
|
|
7
|
+
exports.resolveStyleClasses = resolveStyleClasses;
|
|
8
|
+
exports.defaultTheme = {
|
|
9
|
+
name: 'default',
|
|
10
|
+
colors: {
|
|
11
|
+
primary: '#2563eb', // 青
|
|
12
|
+
secondary: '#64748b', // グレー
|
|
13
|
+
accent: '#f59e0b', // オレンジ
|
|
14
|
+
background: '#ffffff', // 白
|
|
15
|
+
text: '#1e293b', // ダークグレー
|
|
16
|
+
},
|
|
17
|
+
fonts: {
|
|
18
|
+
title: 'Arial',
|
|
19
|
+
body: 'Arial',
|
|
20
|
+
code: 'Courier New',
|
|
21
|
+
},
|
|
22
|
+
fontSize: {
|
|
23
|
+
h1: 36,
|
|
24
|
+
h2: 28,
|
|
25
|
+
h3: 24,
|
|
26
|
+
body: 18,
|
|
27
|
+
small: 14,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
// スタイルクラスの定義
|
|
31
|
+
exports.styleClasses = {
|
|
32
|
+
// 配置
|
|
33
|
+
center: { align: 'center', valign: 'middle' },
|
|
34
|
+
left: { align: 'left' },
|
|
35
|
+
right: { align: 'right' },
|
|
36
|
+
// 色
|
|
37
|
+
red: { color: '#dc2626' },
|
|
38
|
+
blue: { color: '#2563eb' },
|
|
39
|
+
green: { color: '#16a34a' },
|
|
40
|
+
gray: { color: '#6b7280' },
|
|
41
|
+
orange: { color: '#ea580c' },
|
|
42
|
+
purple: { color: '#9333ea' },
|
|
43
|
+
// 背景色
|
|
44
|
+
'bg-red': { fill: { color: '#fef2f2' } },
|
|
45
|
+
'bg-blue': { fill: { color: '#eff6ff' } },
|
|
46
|
+
'bg-green': { fill: { color: '#f0fdf4' } },
|
|
47
|
+
'bg-gray': { fill: { color: '#f9fafb' } },
|
|
48
|
+
// サイズ
|
|
49
|
+
small: { fontSize: 14 },
|
|
50
|
+
large: { fontSize: 24 },
|
|
51
|
+
// 装飾
|
|
52
|
+
bold: { bold: true },
|
|
53
|
+
highlight: { fill: { color: '#fef3c7' } },
|
|
54
|
+
card: {
|
|
55
|
+
fill: { color: '#f8fafc' },
|
|
56
|
+
line: { color: '#e2e8f0', width: 1 },
|
|
57
|
+
},
|
|
58
|
+
// 特殊
|
|
59
|
+
header: { fill: { color: '#1e40af' }, color: '#ffffff' },
|
|
60
|
+
footer: { fontSize: 12, color: '#9ca3af' },
|
|
61
|
+
note: { fontSize: 12, color: '#6b7280', italic: true },
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* スタイルクラスをpptxgenjs形式に変換
|
|
65
|
+
*/
|
|
66
|
+
function resolveStyleClasses(classes) {
|
|
67
|
+
let result = {};
|
|
68
|
+
for (const className of classes) {
|
|
69
|
+
const style = exports.styleClasses[className];
|
|
70
|
+
if (style) {
|
|
71
|
+
result = { ...result, ...style };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/theme/default.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* テーマモジュール
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveStyleClasses = exports.styleClasses = exports.defaultTheme = void 0;
|
|
7
|
+
var default_js_1 = require("./default.js");
|
|
8
|
+
Object.defineProperty(exports, "defaultTheme", { enumerable: true, get: function () { return default_js_1.defaultTheme; } });
|
|
9
|
+
Object.defineProperty(exports, "styleClasses", { enumerable: true, get: function () { return default_js_1.styleClasses; } });
|
|
10
|
+
Object.defineProperty(exports, "resolveStyleClasses", { enumerable: true, get: function () { return default_js_1.resolveStyleClasses; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2CAA+E;AAAtE,0GAAA,YAAY,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,iHAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* marhup 型定義
|
|
3
|
+
*/
|
|
4
|
+
export interface GridPosition {
|
|
5
|
+
colStart: number;
|
|
6
|
+
colEnd: number;
|
|
7
|
+
rowStart: number;
|
|
8
|
+
rowEnd: number;
|
|
9
|
+
}
|
|
10
|
+
export interface StyleOptions {
|
|
11
|
+
classes: string[];
|
|
12
|
+
properties: Record<string, string>;
|
|
13
|
+
}
|
|
14
|
+
export interface ListItem {
|
|
15
|
+
content: string;
|
|
16
|
+
level: number;
|
|
17
|
+
ordered: boolean;
|
|
18
|
+
children?: ListItem[];
|
|
19
|
+
}
|
|
20
|
+
export interface TableData {
|
|
21
|
+
headers: string[];
|
|
22
|
+
rows: string[][];
|
|
23
|
+
}
|
|
24
|
+
export type ElementType = 'heading' | 'paragraph' | 'list' | 'image' | 'table' | 'code' | 'blockquote' | 'mermaid';
|
|
25
|
+
export interface SlideElement {
|
|
26
|
+
type: ElementType;
|
|
27
|
+
content: string | ListItem[] | TableData;
|
|
28
|
+
level?: number;
|
|
29
|
+
position?: GridPosition;
|
|
30
|
+
style?: StyleOptions;
|
|
31
|
+
raw?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface PlacedElement extends SlideElement {
|
|
34
|
+
position: GridPosition;
|
|
35
|
+
}
|
|
36
|
+
export interface SlideFrontmatter {
|
|
37
|
+
title?: string;
|
|
38
|
+
grid?: string;
|
|
39
|
+
layout?: string;
|
|
40
|
+
theme?: string;
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
}
|
|
43
|
+
export interface Slide {
|
|
44
|
+
frontmatter: SlideFrontmatter;
|
|
45
|
+
elements: SlideElement[];
|
|
46
|
+
}
|
|
47
|
+
export interface ParsedDocument {
|
|
48
|
+
globalFrontmatter: SlideFrontmatter;
|
|
49
|
+
slides: Slide[];
|
|
50
|
+
}
|
|
51
|
+
export interface GridConfig {
|
|
52
|
+
cols: number;
|
|
53
|
+
rows: number;
|
|
54
|
+
}
|
|
55
|
+
export interface ThemeConfig {
|
|
56
|
+
name: string;
|
|
57
|
+
colors: {
|
|
58
|
+
primary: string;
|
|
59
|
+
secondary: string;
|
|
60
|
+
accent: string;
|
|
61
|
+
background: string;
|
|
62
|
+
text: string;
|
|
63
|
+
};
|
|
64
|
+
fonts: {
|
|
65
|
+
title: string;
|
|
66
|
+
body: string;
|
|
67
|
+
code: string;
|
|
68
|
+
};
|
|
69
|
+
fontSize: {
|
|
70
|
+
h1: number;
|
|
71
|
+
h2: number;
|
|
72
|
+
h3: number;
|
|
73
|
+
body: number;
|
|
74
|
+
small: number;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export interface ConvertOptions {
|
|
78
|
+
output: string;
|
|
79
|
+
theme?: string;
|
|
80
|
+
grid?: string;
|
|
81
|
+
watch?: boolean;
|
|
82
|
+
basePath?: string;
|
|
83
|
+
}
|
|
84
|
+
export declare const DEFAULT_GRID: GridConfig;
|
|
85
|
+
export declare const DEFAULT_ELEMENT_HEIGHT: Record<ElementType, number>;
|
|
86
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* marhup 型定義
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DEFAULT_ELEMENT_HEIGHT = exports.DEFAULT_GRID = void 0;
|
|
7
|
+
// デフォルトグリッド
|
|
8
|
+
exports.DEFAULT_GRID = {
|
|
9
|
+
cols: 12,
|
|
10
|
+
rows: 9,
|
|
11
|
+
};
|
|
12
|
+
// デフォルト要素高さ(行数)
|
|
13
|
+
exports.DEFAULT_ELEMENT_HEIGHT = {
|
|
14
|
+
heading: 1,
|
|
15
|
+
paragraph: 2,
|
|
16
|
+
list: 3,
|
|
17
|
+
image: 4,
|
|
18
|
+
table: 3,
|
|
19
|
+
code: 3,
|
|
20
|
+
blockquote: 2,
|
|
21
|
+
mermaid: 4,
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAoHH,YAAY;AACC,QAAA,YAAY,GAAe;IACtC,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,gBAAgB;AACH,QAAA,sBAAsB,GAAgC;IACjE,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;CACX,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "marhup",
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"description": "Markdownからグリッドベースのレイアウトで PowerPoint (PPTX) を生成するCLIツール",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"marhup": "./dist/cli.js",
|
|
9
|
+
"marhup-mcp": "./dist/mcp.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "run-s lint build:tsc",
|
|
13
|
+
"build:tsc": "tsc",
|
|
14
|
+
"dev": "tsc --watch",
|
|
15
|
+
"start": "node dist/cli.js",
|
|
16
|
+
"mcp": "node dist/mcp.js",
|
|
17
|
+
"test": "vitest run",
|
|
18
|
+
"test:watch": "vitest",
|
|
19
|
+
"typecheck": "tsc --noEmit",
|
|
20
|
+
"lint": "eslint src --ext .ts",
|
|
21
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
22
|
+
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
23
|
+
"format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
24
|
+
"example": "npm run build && node dist/cli.js examples/sample.md -o examples/output.pptx"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"markdown",
|
|
28
|
+
"powerpoint",
|
|
29
|
+
"pptx",
|
|
30
|
+
"presentation",
|
|
31
|
+
"slides",
|
|
32
|
+
"grid-layout"
|
|
33
|
+
],
|
|
34
|
+
"author": "",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/ukiuni/marhup.git"
|
|
38
|
+
},
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@mermaid-js/mermaid-cli": "^11.12.0",
|
|
42
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
43
|
+
"commander": "^12.1.0",
|
|
44
|
+
"image-size": "^2.0.2",
|
|
45
|
+
"marked": "^11.2.0",
|
|
46
|
+
"pptxgenjs": "^3.12.0",
|
|
47
|
+
"yaml": "^2.3.4"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/node": "^20.11.0",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
52
|
+
"@typescript-eslint/parser": "^6.19.0",
|
|
53
|
+
"eslint": "^8.56.0",
|
|
54
|
+
"npm-run-all": "^4.1.5",
|
|
55
|
+
"prettier": "^3.2.0",
|
|
56
|
+
"typescript": "^5.3.3",
|
|
57
|
+
"vitest": "^1.2.0"
|
|
58
|
+
},
|
|
59
|
+
"engines": {
|
|
60
|
+
"node": ">=18.0.0"
|
|
61
|
+
},
|
|
62
|
+
"files": [
|
|
63
|
+
"dist",
|
|
64
|
+
"README.md"
|
|
65
|
+
]
|
|
66
|
+
}
|