@mcpcn/markdown-converter 1.0.10

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 (46) hide show
  1. package/README.md +210 -0
  2. package/dist/config/word.d.ts +67 -0
  3. package/dist/config/word.d.ts.map +1 -0
  4. package/dist/config/word.js +86 -0
  5. package/dist/config/word.js.map +1 -0
  6. package/dist/core/BaseConverter.d.ts +104 -0
  7. package/dist/core/BaseConverter.d.ts.map +1 -0
  8. package/dist/core/BaseConverter.js +203 -0
  9. package/dist/core/BaseConverter.js.map +1 -0
  10. package/dist/core/BrowserPool.d.ts +25 -0
  11. package/dist/core/BrowserPool.d.ts.map +1 -0
  12. package/dist/core/BrowserPool.js +152 -0
  13. package/dist/core/BrowserPool.js.map +1 -0
  14. package/dist/core/CacheManager.d.ts +26 -0
  15. package/dist/core/CacheManager.d.ts.map +1 -0
  16. package/dist/core/CacheManager.js +74 -0
  17. package/dist/core/CacheManager.js.map +1 -0
  18. package/dist/core/MarkdownRenderer.d.ts +19 -0
  19. package/dist/core/MarkdownRenderer.d.ts.map +1 -0
  20. package/dist/core/MarkdownRenderer.js +160 -0
  21. package/dist/core/MarkdownRenderer.js.map +1 -0
  22. package/dist/core/PDFConverter.d.ts +81 -0
  23. package/dist/core/PDFConverter.d.ts.map +1 -0
  24. package/dist/core/PDFConverter.js +284 -0
  25. package/dist/core/PDFConverter.js.map +1 -0
  26. package/dist/core/PDFGenerator.d.ts +32 -0
  27. package/dist/core/PDFGenerator.d.ts.map +1 -0
  28. package/dist/core/PDFGenerator.js +352 -0
  29. package/dist/core/PDFGenerator.js.map +1 -0
  30. package/dist/core/TemplateManager.d.ts +16 -0
  31. package/dist/core/TemplateManager.d.ts.map +1 -0
  32. package/dist/core/TemplateManager.js +321 -0
  33. package/dist/core/TemplateManager.js.map +1 -0
  34. package/dist/core/WordConverter.d.ts +44 -0
  35. package/dist/core/WordConverter.d.ts.map +1 -0
  36. package/dist/core/WordConverter.js +409 -0
  37. package/dist/core/WordConverter.js.map +1 -0
  38. package/dist/index.d.ts +36 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +507 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/types/index.d.ts +69 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/types/index.js +2 -0
  45. package/dist/types/index.js.map +1 -0
  46. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PDFGenerator.js","sourceRoot":"","sources":["../../src/core/PDFGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Template } from '../types/index.js';
2
+ /**
3
+ * 模板管理器
4
+ * 支持多种预设模板和自定义模板
5
+ */
6
+ export declare class TemplateManager {
7
+ private templates;
8
+ private readonly templateDir;
9
+ constructor(templateDir?: string);
10
+ private loadBuiltinTemplates;
11
+ getTemplate(name: string): Promise<Template | null>;
12
+ saveTemplate(template: Template): Promise<void>;
13
+ listTemplates(): Template[];
14
+ getTemplateNames(): string[];
15
+ }
16
+ //# sourceMappingURL=TemplateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/core/TemplateManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,WAAW,CAAC,EAAE,MAAM;IAKhC,OAAO,CAAC,oBAAoB;IA+QtB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAqBnD,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrD,aAAa,IAAI,QAAQ,EAAE;IAI3B,gBAAgB,IAAI,MAAM,EAAE;CAG7B"}
@@ -0,0 +1,321 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ /**
4
+ * 模板管理器
5
+ * 支持多种预设模板和自定义模板
6
+ */
7
+ export class TemplateManager {
8
+ templates = new Map();
9
+ templateDir;
10
+ constructor(templateDir) {
11
+ this.templateDir = templateDir || path.join(process.cwd(), 'templates');
12
+ this.loadBuiltinTemplates();
13
+ }
14
+ loadBuiltinTemplates() {
15
+ // 默认模板
16
+ this.templates.set('default', {
17
+ name: 'default',
18
+ description: '默认样式模板',
19
+ css: `
20
+ body {
21
+ font-family: "Times New Roman", Times, serif;
22
+ font-size: 14px;
23
+ line-height: 1.6;
24
+ color: #333;
25
+ max-width: 800px;
26
+ margin: 0 auto;
27
+ padding: 20px;
28
+ }
29
+
30
+ h1, h2, h3, h4, h5, h6 {
31
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
32
+ font-weight: 500;
33
+ line-height: 1.2;
34
+ margin-top: 24px;
35
+ margin-bottom: 16px;
36
+ }
37
+
38
+ h1 { font-size: 2.5em; border-bottom: 2px solid #eee; padding-bottom: 10px; }
39
+ h2 { font-size: 2em; border-bottom: 1px solid #eee; padding-bottom: 8px; }
40
+ h3 { font-size: 1.5em; }
41
+
42
+ code {
43
+ font-family: Consolas, Monaco, "Courier New", monospace;
44
+ background-color: #f6f8fa;
45
+ padding: 2px 4px;
46
+ border-radius: 3px;
47
+ font-size: 0.9em;
48
+ }
49
+
50
+ pre {
51
+ background-color: #f6f8fa;
52
+ padding: 16px;
53
+ border-radius: 6px;
54
+ overflow-x: auto;
55
+ border: 1px solid #e1e4e8;
56
+ }
57
+
58
+ pre code {
59
+ background: none;
60
+ padding: 0;
61
+ }
62
+
63
+ blockquote {
64
+ border-left: 4px solid #dfe2e5;
65
+ padding-left: 16px;
66
+ margin-left: 0;
67
+ color: #6a737d;
68
+ font-style: italic;
69
+ }
70
+
71
+ table {
72
+ border-collapse: collapse;
73
+ width: 100%;
74
+ margin: 16px 0;
75
+ }
76
+
77
+ th, td {
78
+ border: 1px solid #e1e4e8;
79
+ padding: 8px 12px;
80
+ text-align: left;
81
+ }
82
+
83
+ th {
84
+ background-color: #f6f8fa;
85
+ font-weight: 600;
86
+ }
87
+
88
+ img {
89
+ max-width: 100%;
90
+ height: auto;
91
+ }
92
+
93
+ .mermaid {
94
+ text-align: center;
95
+ margin: 20px 0;
96
+ }
97
+
98
+ @media print {
99
+ body {
100
+ margin: 0;
101
+ padding: 0;
102
+ }
103
+
104
+ h1 {
105
+ page-break-before: auto;
106
+ }
107
+
108
+ h1, h2, h3, h4, h5, h6 {
109
+ page-break-after: avoid;
110
+ }
111
+
112
+ pre, blockquote {
113
+ page-break-inside: avoid;
114
+ }
115
+
116
+ table {
117
+ page-break-inside: avoid;
118
+ }
119
+ }
120
+ `
121
+ });
122
+ // 学术论文模板
123
+ this.templates.set('academic', {
124
+ name: 'academic',
125
+ description: '学术论文样式模板',
126
+ css: `
127
+ @import url('https://fonts.googleapis.com/css2?family=Crimson+Text:ital,wght@0,400;0,600;1,400&display=swap');
128
+
129
+ body {
130
+ font-family: "Crimson Text", "Times New Roman", serif;
131
+ font-size: 12pt;
132
+ line-height: 1.8;
133
+ color: #2c3e50;
134
+ max-width: 210mm;
135
+ margin: 0 auto;
136
+ padding: 25mm;
137
+ }
138
+
139
+ h1 {
140
+ font-size: 18pt;
141
+ font-weight: 600;
142
+ text-align: center;
143
+ margin: 30pt 0 20pt 0;
144
+ page-break-after: avoid;
145
+ }
146
+
147
+ h2 {
148
+ font-size: 14pt;
149
+ font-weight: 600;
150
+ margin-top: 24pt;
151
+ margin-bottom: 12pt;
152
+ page-break-after: avoid;
153
+ }
154
+
155
+ h3 {
156
+ font-size: 12pt;
157
+ font-weight: 600;
158
+ margin-top: 18pt;
159
+ margin-bottom: 9pt;
160
+ page-break-after: avoid;
161
+ }
162
+
163
+ p {
164
+ text-align: justify;
165
+ text-indent: 2em;
166
+ margin-bottom: 6pt;
167
+ }
168
+
169
+ .abstract {
170
+ font-style: italic;
171
+ margin: 20pt 40pt;
172
+ text-align: justify;
173
+ }
174
+
175
+ .references {
176
+ font-size: 10pt;
177
+ line-height: 1.4;
178
+ }
179
+
180
+ @page {
181
+ margin: 25mm;
182
+ @bottom-center {
183
+ content: counter(page);
184
+ font-size: 10pt;
185
+ }
186
+ }
187
+ `
188
+ });
189
+ // 现代简洁模板
190
+ this.templates.set('modern', {
191
+ name: 'modern',
192
+ description: '现代简洁样式模板',
193
+ css: `
194
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
195
+
196
+ body {
197
+ font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
198
+ font-size: 14px;
199
+ line-height: 1.7;
200
+ color: #1a202c;
201
+ max-width: 800px;
202
+ margin: 0 auto;
203
+ padding: 40px 20px;
204
+ font-weight: 400;
205
+ }
206
+
207
+ h1, h2, h3, h4, h5, h6 {
208
+ font-weight: 600;
209
+ line-height: 1.3;
210
+ margin-top: 32px;
211
+ margin-bottom: 16px;
212
+ letter-spacing: -0.025em;
213
+ }
214
+
215
+ h1 {
216
+ font-size: 36px;
217
+ font-weight: 700;
218
+ color: #2d3748;
219
+ margin-bottom: 24px;
220
+ }
221
+
222
+ h2 {
223
+ font-size: 28px;
224
+ color: #2d3748;
225
+ padding-bottom: 8px;
226
+ border-bottom: 2px solid #e2e8f0;
227
+ }
228
+
229
+ h3 {
230
+ font-size: 22px;
231
+ color: #4a5568;
232
+ }
233
+
234
+ code {
235
+ font-family: "SF Mono", "Monaco", "Consolas", monospace;
236
+ background-color: #f7fafc;
237
+ color: #e53e3e;
238
+ padding: 3px 6px;
239
+ border-radius: 4px;
240
+ font-size: 13px;
241
+ border: 1px solid #e2e8f0;
242
+ }
243
+
244
+ pre {
245
+ background-color: #1a202c;
246
+ color: #e2e8f0;
247
+ padding: 20px;
248
+ border-radius: 8px;
249
+ overflow-x: auto;
250
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
251
+ }
252
+
253
+ pre code {
254
+ background: none;
255
+ color: inherit;
256
+ padding: 0;
257
+ border: none;
258
+ }
259
+
260
+ blockquote {
261
+ border-left: 4px solid #4299e1;
262
+ background-color: #f7fafc;
263
+ padding: 16px 20px;
264
+ margin: 20px 0;
265
+ border-radius: 0 6px 6px 0;
266
+ font-style: italic;
267
+ }
268
+
269
+ a {
270
+ color: #4299e1;
271
+ text-decoration: none;
272
+ border-bottom: 1px solid transparent;
273
+ transition: border-color 0.2s ease;
274
+ }
275
+
276
+ a:hover {
277
+ border-bottom-color: #4299e1;
278
+ }
279
+ `
280
+ });
281
+ }
282
+ async getTemplate(name) {
283
+ // 先检查内置模板
284
+ const builtinTemplate = this.templates.get(name);
285
+ if (builtinTemplate) {
286
+ return builtinTemplate;
287
+ }
288
+ // 尝试从文件系统加载
289
+ try {
290
+ const templatePath = path.join(this.templateDir, `${name}.json`);
291
+ const templateData = await fs.readFile(templatePath, 'utf-8');
292
+ const template = JSON.parse(templateData);
293
+ // 缓存模板
294
+ this.templates.set(name, template);
295
+ return template;
296
+ }
297
+ catch (error) {
298
+ return null;
299
+ }
300
+ }
301
+ async saveTemplate(template) {
302
+ // 保存到内存
303
+ this.templates.set(template.name, template);
304
+ // 保存到文件系统
305
+ try {
306
+ await fs.mkdir(this.templateDir, { recursive: true });
307
+ const templatePath = path.join(this.templateDir, `${template.name}.json`);
308
+ await fs.writeFile(templatePath, JSON.stringify(template, null, 2));
309
+ }
310
+ catch (error) {
311
+ console.warn(`保存模板失败: ${error}`);
312
+ }
313
+ }
314
+ listTemplates() {
315
+ return Array.from(this.templates.values());
316
+ }
317
+ getTemplateNames() {
318
+ return Array.from(this.templates.keys());
319
+ }
320
+ }
321
+ //# sourceMappingURL=TemplateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/core/TemplateManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Word转换器
3
+ * 基于md-to-word-mcp项目的成功实现,继承BaseConverter
4
+ */
5
+ import { BaseConverter, ConversionResult, BaseConversionOptions } from './BaseConverter.js';
6
+ import { WordConversionOptions } from '../config/word.js';
7
+ export declare class WordConverter extends BaseConverter {
8
+ private styleConfig;
9
+ private codeBlockTheme;
10
+ constructor(options?: WordConversionOptions & {
11
+ cacheEnabled?: boolean;
12
+ cacheDir?: string;
13
+ });
14
+ /**
15
+ * 转换Markdown为Word文档
16
+ */
17
+ convert(markdownContent: string, outputPath: string, options?: BaseConversionOptions & WordConversionOptions): Promise<ConversionResult>;
18
+ convertFromFile(markdownPath: string, outputPath?: string, options?: BaseConversionOptions & WordConversionOptions): Promise<ConversionResult>;
19
+ /**
20
+ * 处理Markdown内容转换为Word段落
21
+ */
22
+ private processMarkdownToWord;
23
+ /**
24
+ * 创建优化的代码块 - 基于成功的实现
25
+ */
26
+ private createOptimizedCodeBlock;
27
+ /**
28
+ * 创建标题段落
29
+ */
30
+ private createHeading;
31
+ /**
32
+ * 创建普通段落
33
+ */
34
+ private createParagraph;
35
+ /**
36
+ * 处理行内Markdown语法
37
+ */
38
+ private processInlineMarkdown;
39
+ /**
40
+ * 创建Word文档
41
+ */
42
+ private createDocument;
43
+ }
44
+ //# sourceMappingURL=WordConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WordConverter.d.ts","sourceRoot":"","sources":["../../src/core/WordConverter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAGL,qBAAqB,EAGtB,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,OAAO,GAAE,qBAAqB,GAAG;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;IAgB/F;;OAEG;IACG,OAAO,CACX,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,qBAAqB,GAAG,qBAA0B,GAC1D,OAAO,CAAC,gBAAgB,CAAC;IAqGtB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,qBAAqB,GAAG,qBAA0B,GAC1D,OAAO,CAAC,gBAAgB,CAAC;IAe5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwE7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyEhC;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgE7B;;OAEG;IACH,OAAO,CAAC,cAAc;CAmCvB"}