md-preview-pdf 1.0.4
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/.editorconfig +37 -0
- package/CHANGELOG.md +405 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +170 -0
- package/LICENSE +21 -0
- package/README.md +391 -0
- package/SECURITY.md +100 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +275 -0
- package/dist/cli.js.map +1 -0
- package/dist/converter.d.ts +58 -0
- package/dist/converter.d.ts.map +1 -0
- package/dist/converter.js +301 -0
- package/dist/converter.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/index.d.ts +40 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +100 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/markdown-parser.d.ts +12 -0
- package/dist/parser/markdown-parser.d.ts.map +1 -0
- package/dist/parser/markdown-parser.js +260 -0
- package/dist/parser/markdown-parser.js.map +1 -0
- package/dist/renderers/html-renderer.d.ts +19 -0
- package/dist/renderers/html-renderer.d.ts.map +1 -0
- package/dist/renderers/html-renderer.js +451 -0
- package/dist/renderers/html-renderer.js.map +1 -0
- package/dist/renderers/index.d.ts +8 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +21 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/mermaid-renderer.d.ts +31 -0
- package/dist/renderers/mermaid-renderer.d.ts.map +1 -0
- package/dist/renderers/mermaid-renderer.js +221 -0
- package/dist/renderers/mermaid-renderer.js.map +1 -0
- package/dist/renderers/pdf-renderer.d.ts +40 -0
- package/dist/renderers/pdf-renderer.d.ts.map +1 -0
- package/dist/renderers/pdf-renderer.js +253 -0
- package/dist/renderers/pdf-renderer.js.map +1 -0
- package/dist/themes/github-dark.d.ts +7 -0
- package/dist/themes/github-dark.d.ts.map +1 -0
- package/dist/themes/github-dark.js +400 -0
- package/dist/themes/github-dark.js.map +1 -0
- package/dist/themes/github.d.ts +7 -0
- package/dist/themes/github.d.ts.map +1 -0
- package/dist/themes/github.js +362 -0
- package/dist/themes/github.js.map +1 -0
- package/dist/themes/highlight.d.ts +21 -0
- package/dist/themes/highlight.d.ts.map +1 -0
- package/dist/themes/highlight.js +384 -0
- package/dist/themes/highlight.js.map +1 -0
- package/dist/themes/index.d.ts +41 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +83 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/vscode-dark.d.ts +7 -0
- package/dist/themes/vscode-dark.d.ts.map +1 -0
- package/dist/themes/vscode-dark.js +312 -0
- package/dist/themes/vscode-dark.js.map +1 -0
- package/dist/themes/vscode-light.d.ts +7 -0
- package/dist/themes/vscode-light.d.ts.map +1 -0
- package/dist/themes/vscode-light.js +259 -0
- package/dist/themes/vscode-light.js.map +1 -0
- package/dist/types/index.d.ts +170 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +34 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/error-handler.d.ts +39 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +136 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/file-utils.d.ts +78 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +234 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +30 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +61 -0
- package/dist/utils/logger.js.map +1 -0
- package/eslint.config.js +70 -0
- package/index.d.ts +43 -0
- package/package.json +81 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* MD Preview PDF CLI
|
|
5
|
+
* Command-line interface for converting Markdown to PDF
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
const commander_1 = require("commander");
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
48
|
+
const ora_1 = __importDefault(require("ora"));
|
|
49
|
+
const converter_1 = require("./converter");
|
|
50
|
+
const utils_1 = require("./utils");
|
|
51
|
+
const themes_1 = require("./themes");
|
|
52
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
53
|
+
// Create CLI program
|
|
54
|
+
const program = new commander_1.Command();
|
|
55
|
+
program
|
|
56
|
+
.name('md-preview-pdf')
|
|
57
|
+
.description('Convert Markdown files to PDF with Mermaid diagrams, syntax highlighting, and more')
|
|
58
|
+
.version(package_json_1.default.version);
|
|
59
|
+
// Main convert command
|
|
60
|
+
program
|
|
61
|
+
.argument('<input>', 'Input markdown file or glob pattern')
|
|
62
|
+
.argument('[output]', 'Output PDF file path (optional)')
|
|
63
|
+
.option('-t, --theme <theme>', `Theme to use (${(0, themes_1.getAvailableThemes)().join(', ')})`, 'github')
|
|
64
|
+
.option('-f, --format <format>', 'Page format (A4, A3, A5, Letter, Legal, Tabloid)', 'A4')
|
|
65
|
+
.option('--landscape', 'Use landscape orientation')
|
|
66
|
+
.option('--no-background', 'Disable background printing')
|
|
67
|
+
.option('-m, --margin <margin>', 'Page margins (e.g., "20mm" or "10mm,15mm,20mm,15mm")')
|
|
68
|
+
.option('--toc', 'Generate table of contents')
|
|
69
|
+
.option('--toc-depth <depth>', 'TOC depth (1-6)', '3')
|
|
70
|
+
.option('--html', 'Also output HTML file')
|
|
71
|
+
.option('--no-math', 'Disable math (KaTeX) rendering')
|
|
72
|
+
.option('--no-emoji', 'Disable emoji conversion')
|
|
73
|
+
.option('--no-highlight', 'Disable syntax highlighting')
|
|
74
|
+
.option('--mermaid-theme <theme>', 'Mermaid theme (default, forest, dark, neutral)', 'default')
|
|
75
|
+
.option('--header <template>', 'Custom header HTML template')
|
|
76
|
+
.option('--footer <template>', 'Custom footer HTML template')
|
|
77
|
+
.option('--page-numbers', 'Add page numbers to footer')
|
|
78
|
+
.option('--css <path>', 'Custom CSS file path')
|
|
79
|
+
.option('--debug', 'Run in debug mode (show browser)')
|
|
80
|
+
.option('-v, --verbose', 'Verbose output')
|
|
81
|
+
.option('-q, --quiet', 'Quiet mode (minimal output)')
|
|
82
|
+
.action(async (input, output, opts) => {
|
|
83
|
+
// Set log level
|
|
84
|
+
if (opts.quiet) {
|
|
85
|
+
(0, utils_1.setLogLevel)('error');
|
|
86
|
+
}
|
|
87
|
+
else if (opts.verbose) {
|
|
88
|
+
(0, utils_1.setLogLevel)('debug');
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
(0, utils_1.setLogLevel)('info');
|
|
92
|
+
}
|
|
93
|
+
// Parse options
|
|
94
|
+
const options = parseOptions(opts);
|
|
95
|
+
// Check if input is a glob pattern or multiple files
|
|
96
|
+
const inputFiles = resolveInputFiles(input);
|
|
97
|
+
if (inputFiles.length === 0) {
|
|
98
|
+
console.error(chalk_1.default.red(`Error: No files found matching "${input}"`));
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
// Create converter
|
|
102
|
+
const converter = new converter_1.Converter(options);
|
|
103
|
+
const spinner = (0, ora_1.default)();
|
|
104
|
+
let successCount = 0;
|
|
105
|
+
let failCount = 0;
|
|
106
|
+
try {
|
|
107
|
+
for (const inputFile of inputFiles) {
|
|
108
|
+
const outputFile = inputFiles.length === 1 && output
|
|
109
|
+
? output
|
|
110
|
+
: undefined;
|
|
111
|
+
spinner.start(chalk_1.default.blue(`Converting ${path.basename(inputFile)}...`));
|
|
112
|
+
const result = await converter.convertFile(inputFile, outputFile);
|
|
113
|
+
if (result.success) {
|
|
114
|
+
successCount++;
|
|
115
|
+
spinner.succeed(chalk_1.default.green(`${path.basename(inputFile)} → ${path.basename(result.outputPath)}`) +
|
|
116
|
+
chalk_1.default.gray(` (${(0, utils_1.formatFileSize)(result.stats?.fileSize || 0)}, ${result.stats?.duration}ms)`));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
failCount++;
|
|
120
|
+
spinner.fail(chalk_1.default.red(`Failed: ${inputFile} - ${result.error}`));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Summary
|
|
124
|
+
if (inputFiles.length > 1) {
|
|
125
|
+
console.log();
|
|
126
|
+
console.log(chalk_1.default.bold('Summary:'));
|
|
127
|
+
console.log(chalk_1.default.green(` ✓ ${successCount} succeeded`));
|
|
128
|
+
if (failCount > 0) {
|
|
129
|
+
console.log(chalk_1.default.red(` ✗ ${failCount} failed`));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
process.exit(failCount > 0 ? 1 : 0);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
spinner.fail(chalk_1.default.red('Conversion failed'));
|
|
136
|
+
console.error(chalk_1.default.red(error instanceof Error ? error.message : 'Unknown error'));
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
await converter.cleanup();
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
// List themes command
|
|
144
|
+
program
|
|
145
|
+
.command('themes')
|
|
146
|
+
.description('List available themes')
|
|
147
|
+
.action(() => {
|
|
148
|
+
console.log(chalk_1.default.bold('\nAvailable Themes:\n'));
|
|
149
|
+
const themes = (0, themes_1.getAvailableThemes)();
|
|
150
|
+
themes.forEach((theme) => {
|
|
151
|
+
console.log(` • ${chalk_1.default.cyan(theme)}`);
|
|
152
|
+
});
|
|
153
|
+
console.log();
|
|
154
|
+
});
|
|
155
|
+
// Parse margin string to object
|
|
156
|
+
function parseMargin(margin) {
|
|
157
|
+
// Support both comma-separated and space-separated formats
|
|
158
|
+
// Comma format: "10mm,15mm,20mm,15mm"
|
|
159
|
+
// Space format: "10mm 15mm 20mm 15mm" (standard CSS format)
|
|
160
|
+
const separator = margin.includes(',') ? ',' : ' ';
|
|
161
|
+
const parts = margin.split(separator).map(s => s.trim()).filter(s => s.length > 0);
|
|
162
|
+
if (parts.length === 1) {
|
|
163
|
+
return {
|
|
164
|
+
top: parts[0],
|
|
165
|
+
right: parts[0],
|
|
166
|
+
bottom: parts[0],
|
|
167
|
+
left: parts[0],
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
if (parts.length === 2) {
|
|
171
|
+
return {
|
|
172
|
+
top: parts[0],
|
|
173
|
+
right: parts[1],
|
|
174
|
+
bottom: parts[0],
|
|
175
|
+
left: parts[1],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if (parts.length === 4) {
|
|
179
|
+
return {
|
|
180
|
+
top: parts[0],
|
|
181
|
+
right: parts[1],
|
|
182
|
+
bottom: parts[2],
|
|
183
|
+
left: parts[3],
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
// Parse CLI options to ConverterOptions
|
|
189
|
+
function parseOptions(opts) {
|
|
190
|
+
const options = {
|
|
191
|
+
theme: {
|
|
192
|
+
name: opts.theme,
|
|
193
|
+
},
|
|
194
|
+
pdf: {
|
|
195
|
+
format: opts.format,
|
|
196
|
+
landscape: opts.landscape || false,
|
|
197
|
+
printBackground: opts.background !== false,
|
|
198
|
+
},
|
|
199
|
+
mermaid: {
|
|
200
|
+
theme: opts.mermaidTheme,
|
|
201
|
+
},
|
|
202
|
+
toc: opts.toc || false,
|
|
203
|
+
tocDepth: parseInt(opts.tocDepth, 10),
|
|
204
|
+
outputHtml: opts.html || false,
|
|
205
|
+
math: opts.math !== false,
|
|
206
|
+
emoji: opts.emoji !== false,
|
|
207
|
+
highlight: opts.highlight !== false,
|
|
208
|
+
debug: opts.debug || false,
|
|
209
|
+
};
|
|
210
|
+
// Parse margins
|
|
211
|
+
if (opts.margin) {
|
|
212
|
+
options.pdf.margin = parseMargin(opts.margin);
|
|
213
|
+
}
|
|
214
|
+
// Custom CSS
|
|
215
|
+
if (opts.css) {
|
|
216
|
+
options.theme.customCSSPath = opts.css;
|
|
217
|
+
}
|
|
218
|
+
// Headers and footers
|
|
219
|
+
if (opts.header) {
|
|
220
|
+
options.pdf.headerTemplate = opts.header;
|
|
221
|
+
options.pdf.displayHeaderFooter = true;
|
|
222
|
+
}
|
|
223
|
+
if (opts.footer) {
|
|
224
|
+
options.pdf.footerTemplate = opts.footer;
|
|
225
|
+
options.pdf.displayHeaderFooter = true;
|
|
226
|
+
}
|
|
227
|
+
// Page numbers
|
|
228
|
+
if (opts.pageNumbers) {
|
|
229
|
+
options.pdf.displayHeaderFooter = true;
|
|
230
|
+
if (!opts.footer) {
|
|
231
|
+
options.pdf.footerTemplate = `
|
|
232
|
+
<div style="font-size: 10px; color: #666; width: 100%; text-align: center; padding: 10px;">
|
|
233
|
+
<span class="pageNumber"></span> / <span class="totalPages"></span>
|
|
234
|
+
</div>
|
|
235
|
+
`;
|
|
236
|
+
}
|
|
237
|
+
if (!opts.header) {
|
|
238
|
+
options.pdf.headerTemplate = '<div></div>';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return options;
|
|
242
|
+
}
|
|
243
|
+
// Resolve input files from path or glob
|
|
244
|
+
function resolveInputFiles(input) {
|
|
245
|
+
const absolutePath = path.resolve(input);
|
|
246
|
+
// Check if it's a directory
|
|
247
|
+
if (fs.existsSync(absolutePath) && fs.statSync(absolutePath).isDirectory()) {
|
|
248
|
+
// Get all .md files in directory
|
|
249
|
+
return fs.readdirSync(absolutePath)
|
|
250
|
+
.filter(file => file.endsWith('.md'))
|
|
251
|
+
.map(file => path.join(absolutePath, file));
|
|
252
|
+
}
|
|
253
|
+
// Check if file exists
|
|
254
|
+
if (fs.existsSync(absolutePath)) {
|
|
255
|
+
return [absolutePath];
|
|
256
|
+
}
|
|
257
|
+
// Try as glob pattern (basic implementation)
|
|
258
|
+
const dir = path.dirname(absolutePath);
|
|
259
|
+
const pattern = path.basename(absolutePath);
|
|
260
|
+
if (fs.existsSync(dir)) {
|
|
261
|
+
const files = fs.readdirSync(dir);
|
|
262
|
+
const regex = new RegExp('^' + pattern.replace(/\*/g, '.*').replace(/\?/g, '.') + '$');
|
|
263
|
+
return files
|
|
264
|
+
.filter(file => regex.test(file) && file.endsWith('.md'))
|
|
265
|
+
.map(file => path.join(dir, file));
|
|
266
|
+
}
|
|
267
|
+
return [];
|
|
268
|
+
}
|
|
269
|
+
// Parse arguments
|
|
270
|
+
program.parse(process.argv);
|
|
271
|
+
// Show help if no arguments
|
|
272
|
+
if (process.argv.length === 2) {
|
|
273
|
+
program.help();
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MD Preview PDF Converter
|
|
3
|
+
* Main converter class that orchestrates the conversion process
|
|
4
|
+
*/
|
|
5
|
+
import { ConverterOptions, ConversionResult, ParsedMarkdown } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* MD Preview PDF Converter class
|
|
8
|
+
*/
|
|
9
|
+
export declare class Converter {
|
|
10
|
+
private options;
|
|
11
|
+
constructor(options?: ConverterOptions);
|
|
12
|
+
/**
|
|
13
|
+
* Convert markdown string to PDF buffer
|
|
14
|
+
*/
|
|
15
|
+
convertString(markdown: string, basePath?: string): Promise<Buffer>;
|
|
16
|
+
/**
|
|
17
|
+
* Convert markdown file to PDF file
|
|
18
|
+
*/
|
|
19
|
+
convertFile(inputPath: string, outputPath?: string): Promise<ConversionResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Convert multiple files
|
|
22
|
+
*/
|
|
23
|
+
convertFiles(inputPaths: string[], outputDir?: string): Promise<ConversionResult[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Parse markdown and return structured result (useful for previewing)
|
|
26
|
+
*/
|
|
27
|
+
parseMarkdown(markdown: string): ParsedMarkdown;
|
|
28
|
+
/**
|
|
29
|
+
* Generate HTML from markdown (useful for previewing)
|
|
30
|
+
*/
|
|
31
|
+
generateHtml(markdown: string, basePath?: string): Promise<string>;
|
|
32
|
+
/**
|
|
33
|
+
* Update converter options
|
|
34
|
+
*/
|
|
35
|
+
setOptions(options: Partial<ConverterOptions>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Get current options
|
|
38
|
+
*/
|
|
39
|
+
getOptions(): ConverterOptions;
|
|
40
|
+
/**
|
|
41
|
+
* Clean up resources (close browser)
|
|
42
|
+
*/
|
|
43
|
+
cleanup(): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Create a converter instance with options
|
|
47
|
+
*/
|
|
48
|
+
export declare function createConverter(options?: ConverterOptions): Converter;
|
|
49
|
+
/**
|
|
50
|
+
* Quick convert function for simple use cases
|
|
51
|
+
*/
|
|
52
|
+
export declare function convert(input: string, output?: string, options?: ConverterOptions): Promise<ConversionResult>;
|
|
53
|
+
/**
|
|
54
|
+
* Convert markdown string to PDF buffer
|
|
55
|
+
*/
|
|
56
|
+
export declare function convertString(markdown: string, options?: ConverterOptions): Promise<Buffer>;
|
|
57
|
+
export default Converter;
|
|
58
|
+
//# sourceMappingURL=converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,SAAS,CAAC;AAsEjB;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAmB;gBAEtB,OAAO,GAAE,gBAAqB;IAc1C;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBzE;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAoF5B;;OAEG;IACG,YAAY,CAChB,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAkB9B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAI/C;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxE;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIpD;;OAEG;IACH,UAAU,IAAI,gBAAgB;IAI9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MD Preview PDF Converter
|
|
4
|
+
* Main converter class that orchestrates the conversion process
|
|
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
|
+
exports.Converter = void 0;
|
|
41
|
+
exports.createConverter = createConverter;
|
|
42
|
+
exports.convert = convert;
|
|
43
|
+
exports.convertString = convertString;
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const parser_1 = require("./parser");
|
|
46
|
+
const renderers_1 = require("./renderers");
|
|
47
|
+
const utils_1 = require("./utils");
|
|
48
|
+
const themes_1 = require("./themes");
|
|
49
|
+
/**
|
|
50
|
+
* Default converter options
|
|
51
|
+
*/
|
|
52
|
+
const defaultOptions = {
|
|
53
|
+
pdf: {
|
|
54
|
+
format: 'A4',
|
|
55
|
+
margin: {
|
|
56
|
+
top: '10mm',
|
|
57
|
+
right: '10mm',
|
|
58
|
+
bottom: '10mm',
|
|
59
|
+
left: '10mm',
|
|
60
|
+
},
|
|
61
|
+
printBackground: true,
|
|
62
|
+
},
|
|
63
|
+
theme: {
|
|
64
|
+
name: 'github',
|
|
65
|
+
},
|
|
66
|
+
mermaid: {
|
|
67
|
+
theme: 'default',
|
|
68
|
+
},
|
|
69
|
+
toc: false,
|
|
70
|
+
tocDepth: 3,
|
|
71
|
+
outputHtml: false,
|
|
72
|
+
math: true,
|
|
73
|
+
emoji: true,
|
|
74
|
+
highlight: true,
|
|
75
|
+
debug: false,
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Merge user options with defaults
|
|
79
|
+
*/
|
|
80
|
+
function mergeOptions(userOptions) {
|
|
81
|
+
return {
|
|
82
|
+
...defaultOptions,
|
|
83
|
+
...userOptions,
|
|
84
|
+
pdf: {
|
|
85
|
+
...defaultOptions.pdf,
|
|
86
|
+
...userOptions.pdf,
|
|
87
|
+
margin: {
|
|
88
|
+
...defaultOptions.pdf?.margin,
|
|
89
|
+
...userOptions.pdf?.margin,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
theme: {
|
|
93
|
+
name: userOptions.theme?.name || defaultOptions.theme?.name || 'github',
|
|
94
|
+
...defaultOptions.theme,
|
|
95
|
+
...userOptions.theme,
|
|
96
|
+
},
|
|
97
|
+
mermaid: {
|
|
98
|
+
...defaultOptions.mermaid,
|
|
99
|
+
...userOptions.mermaid,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* MD Preview PDF Converter class
|
|
105
|
+
*/
|
|
106
|
+
class Converter {
|
|
107
|
+
options;
|
|
108
|
+
constructor(options = {}) {
|
|
109
|
+
this.options = mergeOptions(options);
|
|
110
|
+
// Set highlight theme based on document theme
|
|
111
|
+
if (!this.options.theme?.highlightTheme) {
|
|
112
|
+
const themeName = this.options.theme?.name || 'github';
|
|
113
|
+
this.options.theme = {
|
|
114
|
+
name: this.options.theme?.name || 'github',
|
|
115
|
+
...this.options.theme,
|
|
116
|
+
highlightTheme: (0, themes_1.getMatchingHighlightTheme)(themeName),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Convert markdown string to PDF buffer
|
|
122
|
+
*/
|
|
123
|
+
async convertString(markdown, basePath) {
|
|
124
|
+
const options = {
|
|
125
|
+
...this.options,
|
|
126
|
+
basePath: basePath || process.cwd(),
|
|
127
|
+
};
|
|
128
|
+
// Parse markdown
|
|
129
|
+
utils_1.logger.info('Parsing markdown content...');
|
|
130
|
+
const parsed = (0, parser_1.parseMarkdown)(markdown, options);
|
|
131
|
+
// Generate HTML
|
|
132
|
+
utils_1.logger.info('Generating HTML...');
|
|
133
|
+
const html = await (0, renderers_1.generateHtml)(parsed, options);
|
|
134
|
+
// Generate PDF
|
|
135
|
+
utils_1.logger.info('Generating PDF...');
|
|
136
|
+
const pdfBuffer = await (0, renderers_1.renderPDF)(html, {
|
|
137
|
+
pdf: options.pdf,
|
|
138
|
+
mermaid: options.mermaid,
|
|
139
|
+
debug: options.debug,
|
|
140
|
+
});
|
|
141
|
+
return pdfBuffer;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Convert markdown file to PDF file
|
|
145
|
+
*/
|
|
146
|
+
async convertFile(inputPath, outputPath) {
|
|
147
|
+
const startTime = Date.now();
|
|
148
|
+
try {
|
|
149
|
+
const absoluteInputPath = path.resolve(inputPath);
|
|
150
|
+
const absoluteOutputPath = outputPath
|
|
151
|
+
? path.resolve(outputPath)
|
|
152
|
+
: (0, utils_1.changeExtension)(absoluteInputPath, 'pdf');
|
|
153
|
+
const basePath = path.dirname(absoluteInputPath);
|
|
154
|
+
utils_1.logger.info(`Converting: ${absoluteInputPath}`);
|
|
155
|
+
utils_1.logger.debug(`Output: ${absoluteOutputPath}`);
|
|
156
|
+
// Read markdown file
|
|
157
|
+
const markdown = await (0, utils_1.readFile)(absoluteInputPath);
|
|
158
|
+
// Set base path for relative resources
|
|
159
|
+
const options = {
|
|
160
|
+
...this.options,
|
|
161
|
+
basePath,
|
|
162
|
+
};
|
|
163
|
+
// Parse markdown
|
|
164
|
+
utils_1.logger.info('Parsing markdown...');
|
|
165
|
+
const parsed = (0, parser_1.parseMarkdown)(markdown, options);
|
|
166
|
+
// Merge front matter options
|
|
167
|
+
if (parsed.frontMatter.pdf) {
|
|
168
|
+
options.pdf = { ...options.pdf, ...parsed.frontMatter.pdf };
|
|
169
|
+
}
|
|
170
|
+
// Generate HTML
|
|
171
|
+
utils_1.logger.info('Generating HTML...');
|
|
172
|
+
const html = await (0, renderers_1.generateHtml)(parsed, options);
|
|
173
|
+
// Save HTML if requested
|
|
174
|
+
let htmlPath;
|
|
175
|
+
if (options.outputHtml) {
|
|
176
|
+
htmlPath = (0, utils_1.changeExtension)(absoluteOutputPath, 'html');
|
|
177
|
+
await (0, utils_1.writeFile)(htmlPath, html);
|
|
178
|
+
utils_1.logger.info(`HTML saved: ${htmlPath}`);
|
|
179
|
+
}
|
|
180
|
+
// Generate PDF
|
|
181
|
+
utils_1.logger.info('Generating PDF...');
|
|
182
|
+
const pdfBuffer = await (0, renderers_1.renderPDF)(html, {
|
|
183
|
+
pdf: options.pdf,
|
|
184
|
+
mermaid: options.mermaid,
|
|
185
|
+
debug: options.debug,
|
|
186
|
+
});
|
|
187
|
+
// Save PDF
|
|
188
|
+
await (0, utils_1.writeFile)(absoluteOutputPath, pdfBuffer);
|
|
189
|
+
const duration = Date.now() - startTime;
|
|
190
|
+
const fileSize = await (0, utils_1.getFileSize)(absoluteOutputPath);
|
|
191
|
+
utils_1.logger.info(`✓ PDF generated: ${absoluteOutputPath}`);
|
|
192
|
+
utils_1.logger.info(` Size: ${(0, utils_1.formatFileSize)(fileSize)}, Time: ${duration}ms`);
|
|
193
|
+
return {
|
|
194
|
+
success: true,
|
|
195
|
+
outputPath: absoluteOutputPath,
|
|
196
|
+
htmlPath,
|
|
197
|
+
stats: {
|
|
198
|
+
duration,
|
|
199
|
+
fileSize,
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
const conversionError = (0, utils_1.handleError)(error);
|
|
205
|
+
utils_1.logger.error(`Conversion failed: ${conversionError.message}`);
|
|
206
|
+
return {
|
|
207
|
+
success: false,
|
|
208
|
+
error: conversionError.message,
|
|
209
|
+
stats: {
|
|
210
|
+
duration: Date.now() - startTime,
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Convert multiple files
|
|
217
|
+
*/
|
|
218
|
+
async convertFiles(inputPaths, outputDir) {
|
|
219
|
+
const results = [];
|
|
220
|
+
for (const inputPath of inputPaths) {
|
|
221
|
+
let outputPath;
|
|
222
|
+
if (outputDir) {
|
|
223
|
+
const basename = path.basename(inputPath);
|
|
224
|
+
outputPath = path.join(outputDir, (0, utils_1.changeExtension)(basename, 'pdf'));
|
|
225
|
+
}
|
|
226
|
+
const result = await this.convertFile(inputPath, outputPath);
|
|
227
|
+
results.push(result);
|
|
228
|
+
}
|
|
229
|
+
return results;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Parse markdown and return structured result (useful for previewing)
|
|
233
|
+
*/
|
|
234
|
+
parseMarkdown(markdown) {
|
|
235
|
+
return (0, parser_1.parseMarkdown)(markdown, this.options);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Generate HTML from markdown (useful for previewing)
|
|
239
|
+
*/
|
|
240
|
+
async generateHtml(markdown, basePath) {
|
|
241
|
+
const options = {
|
|
242
|
+
...this.options,
|
|
243
|
+
basePath: basePath || process.cwd(),
|
|
244
|
+
};
|
|
245
|
+
const parsed = (0, parser_1.parseMarkdown)(markdown, options);
|
|
246
|
+
return (0, renderers_1.generateHtml)(parsed, options);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Update converter options
|
|
250
|
+
*/
|
|
251
|
+
setOptions(options) {
|
|
252
|
+
this.options = mergeOptions({ ...this.options, ...options });
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get current options
|
|
256
|
+
*/
|
|
257
|
+
getOptions() {
|
|
258
|
+
return { ...this.options };
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Clean up resources (close browser)
|
|
262
|
+
*/
|
|
263
|
+
async cleanup() {
|
|
264
|
+
await (0, renderers_1.closeBrowser)();
|
|
265
|
+
utils_1.logger.debug('Converter cleanup complete');
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
exports.Converter = Converter;
|
|
269
|
+
/**
|
|
270
|
+
* Create a converter instance with options
|
|
271
|
+
*/
|
|
272
|
+
function createConverter(options = {}) {
|
|
273
|
+
return new Converter(options);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Quick convert function for simple use cases
|
|
277
|
+
*/
|
|
278
|
+
async function convert(input, output, options) {
|
|
279
|
+
const converter = createConverter(options);
|
|
280
|
+
try {
|
|
281
|
+
const result = await converter.convertFile(input, output);
|
|
282
|
+
return result;
|
|
283
|
+
}
|
|
284
|
+
finally {
|
|
285
|
+
await converter.cleanup();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Convert markdown string to PDF buffer
|
|
290
|
+
*/
|
|
291
|
+
async function convertString(markdown, options) {
|
|
292
|
+
const converter = createConverter(options);
|
|
293
|
+
try {
|
|
294
|
+
return await converter.convertString(markdown);
|
|
295
|
+
}
|
|
296
|
+
finally {
|
|
297
|
+
await converter.cleanup();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
exports.default = Converter;
|
|
301
|
+
//# sourceMappingURL=converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MD Preview PDF
|
|
3
|
+
* Main entry point for the library
|
|
4
|
+
*/
|
|
5
|
+
export { Converter, createConverter, convert, convertString } from './converter';
|
|
6
|
+
export { ConverterOptions, ConversionResult, PDFOptions, ThemeOptions, MermaidOptions, FrontMatter, ParsedMarkdown, ConversionError, ErrorCode, } from './types';
|
|
7
|
+
export { parseMarkdown, parseFrontMatter, createMarkdownParser } from './parser';
|
|
8
|
+
export { generateHtml, generateStandaloneHtml, renderPDF, renderMermaidToSvg, processMermaidInHtml, closeBrowser } from './renderers';
|
|
9
|
+
export { getThemeCSS, getAvailableThemes, themeExists, getHighlightThemeCSS, githubTheme, githubDarkTheme, vscodeLightTheme, vscodeDarkTheme, } from './themes';
|
|
10
|
+
export { logger, setLogLevel, getLogLevel, readFile, writeFile, fileExists, formatFileSize, } from './utils';
|
|
11
|
+
import { Converter } from './converter';
|
|
12
|
+
export default Converter;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|