md-preview-pdf 1.0.4 → 1.0.6
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/CHANGELOG.md +265 -0
- package/README.md +96 -22
- package/dist/renderers/pdf-renderer.d.ts.map +1 -1
- package/dist/renderers/pdf-renderer.js +89 -4
- package/dist/renderers/pdf-renderer.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,271 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.6] - 2026-01-05
|
|
9
|
+
|
|
10
|
+
### 🔧 Fixed
|
|
11
|
+
|
|
12
|
+
#### System Chrome Fallback for Older OS Versions
|
|
13
|
+
- **Issue**: Bundled Chromium failed on macOS 10.x (Catalina and older) with error: `dyld: cannot load 'Google Chrome for Testing' (load command 0x80000034 is unknown)`
|
|
14
|
+
- **Root Cause**: Chrome for Testing binaries require macOS 11+ / Windows 10 1809+. Older systems are incompatible.
|
|
15
|
+
- **Solution**: Implemented automatic fallback to system-installed Chrome when bundled Chromium fails
|
|
16
|
+
- Automatically detects Chrome installation at common paths
|
|
17
|
+
- Supports environment variable `PUPPETEER_EXECUTABLE_PATH` for custom Chrome location
|
|
18
|
+
- Falls back gracefully with clear error messages if no Chrome found
|
|
19
|
+
- Works on macOS, Windows, and Linux
|
|
20
|
+
|
|
21
|
+
#### Compatibility Improvements
|
|
22
|
+
- Added `findSystemChrome()` function that checks:
|
|
23
|
+
- Environment variable `PUPPETEER_EXECUTABLE_PATH`
|
|
24
|
+
- Common Chrome installation paths (macOS, Windows, Linux)
|
|
25
|
+
- System PATH using `which` (Unix) or `where` (Windows) commands
|
|
26
|
+
- Enhanced browser launch with try-catch fallback mechanism
|
|
27
|
+
- Improved error messages with actionable troubleshooting steps
|
|
28
|
+
|
|
29
|
+
### 📚 Documentation
|
|
30
|
+
|
|
31
|
+
#### System Requirements (README.md)
|
|
32
|
+
- **macOS**: Minimum macOS 11 (Big Sur). For macOS 10.x, install Google Chrome manually.
|
|
33
|
+
- **Windows**: Minimum Windows 10 (version 1809). Older versions need manual Chrome installation.
|
|
34
|
+
- **Linux**: Ubuntu 18.04+, Debian 10+, Fedora 32+, and most modern distributions.
|
|
35
|
+
- Added memory requirements: 512MB minimum, 1GB+ recommended.
|
|
36
|
+
|
|
37
|
+
#### Troubleshooting Guide (README.md)
|
|
38
|
+
New comprehensive troubleshooting section covering:
|
|
39
|
+
- "dyld: cannot load" error on macOS (Chrome installation solution)
|
|
40
|
+
- "Failed to launch browser" on Windows (Chrome path configuration)
|
|
41
|
+
- Missing dependencies on Linux (package installation commands)
|
|
42
|
+
- Out of memory errors (Node.js memory limits)
|
|
43
|
+
- Slow performance tips (feature toggles)
|
|
44
|
+
- How to get help (issue reporting guidelines)
|
|
45
|
+
|
|
46
|
+
#### Why This Happens
|
|
47
|
+
- **Chromium Compatibility**: Puppeteer downloads Chrome for Testing which has minimum OS requirements
|
|
48
|
+
- **macOS 10.x limitation**: Apple's dyld (dynamic linker) in macOS 10.x doesn't support load command 0x80000034 used by modern Chrome builds
|
|
49
|
+
- **Windows limitation**: Modern Chrome requires Windows 10 1809+ for certain APIs
|
|
50
|
+
- **Solution**: System-installed Chrome has broader OS compatibility and is updated independently
|
|
51
|
+
|
|
52
|
+
### ✅ Testing
|
|
53
|
+
- ✅ Verified on macOS 11+: Bundled Chromium works
|
|
54
|
+
- ✅ Verified fallback on older systems: System Chrome detected and used
|
|
55
|
+
- ✅ Tested environment variable override
|
|
56
|
+
- ✅ Tested error handling when no Chrome available
|
|
57
|
+
|
|
58
|
+
### 🎯 Supported Systems
|
|
59
|
+
|
|
60
|
+
| OS | Minimum Version | Notes |
|
|
61
|
+
|----|----------------|-------|
|
|
62
|
+
| macOS | 11 (Big Sur) | Older versions: install Chrome manually |
|
|
63
|
+
| Windows | 10 (1809) | Older versions: install Chrome manually |
|
|
64
|
+
| Linux | Ubuntu 18.04+, Debian 10+ | Most modern distributions supported |
|
|
65
|
+
|
|
66
|
+
### 🔗 Related Links
|
|
67
|
+
- [Puppeteer System Requirements](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md)
|
|
68
|
+
- [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/)
|
|
69
|
+
- [Google Chrome Download](https://www.google.com/chrome/)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## [1.0.5] - 2026-01-05
|
|
74
|
+
|
|
75
|
+
### 🎉 First Official Release with read me updated
|
|
76
|
+
|
|
77
|
+
This is the first stable release of MD Preview PDF Converter with comprehensive Markdown to PDF conversion capabilities.
|
|
78
|
+
|
|
79
|
+
### ✨ Features
|
|
80
|
+
|
|
81
|
+
#### Core Capabilities
|
|
82
|
+
- **Full GFM Support**: Complete GitHub Flavored Markdown support including tables, strikethrough, autolinks
|
|
83
|
+
- **Mermaid Diagrams**: Flowcharts, sequence diagrams, class diagrams, state diagrams, and more
|
|
84
|
+
- **Syntax Highlighting**: 150+ programming languages with beautiful color themes
|
|
85
|
+
- **Math Equations**: Full LaTeX math rendering via KaTeX ($inline$ and $$block$$)
|
|
86
|
+
- **Emoji Support**: GitHub-style emoji conversion (`:emoji:` syntax)
|
|
87
|
+
- **Task Lists**: Interactive checkbox support for TODO lists
|
|
88
|
+
- **Footnotes**: Complete footnote and reference support
|
|
89
|
+
- **Custom Containers**: Tips, warnings, danger, info, note, important, and caution boxes
|
|
90
|
+
- **Table of Contents**: Auto-generated with customizable heading depth (1-6)
|
|
91
|
+
- **Anchors**: Automatic heading anchors for linking
|
|
92
|
+
- **Front Matter**: YAML front matter parsing for document metadata
|
|
93
|
+
|
|
94
|
+
#### Theming & Customization
|
|
95
|
+
- **4 Built-in Themes**:
|
|
96
|
+
- GitHub Light (`github`) - Default, clean professional look
|
|
97
|
+
- GitHub Dark (`github-dark`) - Dark mode with full background coverage
|
|
98
|
+
- VS Code Light (`vscode-light`) - VS Code inspired light theme
|
|
99
|
+
- VS Code Dark (`vscode-dark`) - VS Code inspired dark theme
|
|
100
|
+
- **Custom CSS**: Support for custom CSS file injection
|
|
101
|
+
- **Responsive Rendering**: Automatic page layout adaptation
|
|
102
|
+
- **Custom Headers/Footers**: HTML templates for page headers and footers
|
|
103
|
+
|
|
104
|
+
#### Page Layout & Export
|
|
105
|
+
- **Multiple Page Formats**: A4, A3, A5, Letter, Legal, Tabloid
|
|
106
|
+
- **Custom Margins**: Fully customizable via CLI (`--margin`)
|
|
107
|
+
- **Orientation**: Portrait and landscape support
|
|
108
|
+
- **Page Numbers**: Optional page numbering in footer
|
|
109
|
+
- **HTML Export**: Simultaneous HTML output option
|
|
110
|
+
- **Background Printing**: Control over background color/image printing
|
|
111
|
+
|
|
112
|
+
#### CLI & API
|
|
113
|
+
- **Command Line Interface**: Full-featured CLI with 15+ options
|
|
114
|
+
- **Node.js Module API**: Three export modes:
|
|
115
|
+
- `convert()` - Quick conversion function
|
|
116
|
+
- `Converter` class - Flexible instance-based API
|
|
117
|
+
- `convertString()` - Direct markdown string to PDF buffer
|
|
118
|
+
- **Verbose Logging**: Debug mode with detailed conversion logs
|
|
119
|
+
|
|
120
|
+
### 🔧 Technical Improvements
|
|
121
|
+
|
|
122
|
+
#### Dark Theme Rendering
|
|
123
|
+
- Fixed CSS stylesheet parsing to properly apply theme backgrounds to entire page
|
|
124
|
+
- Dark theme backgrounds now extend to page edges with no white borders
|
|
125
|
+
- Proper margin handling using CSS padding instead of PDF margins
|
|
126
|
+
- Sub-pixel rendering artifacts eliminated via viewport optimization
|
|
127
|
+
|
|
128
|
+
#### Margin & Padding System
|
|
129
|
+
- Redesigned margin handling for better control
|
|
130
|
+
- All margins handled via CSS padding on `.markdown-body`
|
|
131
|
+
- Background colors extend to page edges (no white borders)
|
|
132
|
+
- Default margins optimized at 10mm for professional appearance
|
|
133
|
+
- Custom margin support with format flexibility (`20mm` or `10mm,15mm,20mm,15mm`)
|
|
134
|
+
|
|
135
|
+
#### PDF Generation
|
|
136
|
+
- Viewport set to A4 page dimensions (800x1200px) for consistency
|
|
137
|
+
- Proper font loading and image embedding
|
|
138
|
+
- Optimized Mermaid diagram rendering in browser
|
|
139
|
+
- Comprehensive error handling with graceful fallbacks
|
|
140
|
+
|
|
141
|
+
#### Code Quality
|
|
142
|
+
- **Type Safety**: Full TypeScript with strict typing throughout
|
|
143
|
+
- **ESLint**: 0 warnings with complete type coverage
|
|
144
|
+
- **Tests**: 30 passing tests covering all major features
|
|
145
|
+
- **Dependencies**: 0 npm deprecation warnings, clean dependency tree
|
|
146
|
+
|
|
147
|
+
### 📦 Build & Distribution
|
|
148
|
+
- **Compiled Output**: TypeScript compiled to JavaScript for distribution
|
|
149
|
+
- **CLI Executable**: Global installation support via npm
|
|
150
|
+
- **Source Maps**: Full debugging support with sourcemap generation
|
|
151
|
+
- **Module Exports**: ESM/CommonJS compatible exports
|
|
152
|
+
|
|
153
|
+
### 🧪 Testing & Verification
|
|
154
|
+
|
|
155
|
+
**Unit Tests: 30/30 Passing** ✅
|
|
156
|
+
- Markdown parsing (12 tests)
|
|
157
|
+
- Front matter (2 tests)
|
|
158
|
+
- Converter operations (2 tests)
|
|
159
|
+
- Integration tests (3 tests)
|
|
160
|
+
- Feature coverage (11 tests)
|
|
161
|
+
|
|
162
|
+
**CLI Validation: 11/11 Passing** ✅
|
|
163
|
+
- Basic conversion
|
|
164
|
+
- Theme selection (4 themes)
|
|
165
|
+
- Table of Contents
|
|
166
|
+
- Custom margins
|
|
167
|
+
- HTML output
|
|
168
|
+
- Page numbers
|
|
169
|
+
- Feature toggles
|
|
170
|
+
- Page formats
|
|
171
|
+
- Landscape orientation
|
|
172
|
+
|
|
173
|
+
**Module API: 5/5 Passing** ✅
|
|
174
|
+
- Quick convert function
|
|
175
|
+
- Converter class with options
|
|
176
|
+
- TOC generation
|
|
177
|
+
- Markdown string conversion
|
|
178
|
+
- Multiple theme rendering
|
|
179
|
+
|
|
180
|
+
**Feature Verification: 14/14 Passing** ✅
|
|
181
|
+
- All features listed in README verified
|
|
182
|
+
- All documentation examples tested
|
|
183
|
+
- Architecture diagram components validated
|
|
184
|
+
|
|
185
|
+
### 📋 CLI Reference
|
|
186
|
+
|
|
187
|
+
**Basic Usage**
|
|
188
|
+
```bash
|
|
189
|
+
md-preview-pdf document.md
|
|
190
|
+
md-preview-pdf document.md output.pdf
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Common Options**
|
|
194
|
+
```bash
|
|
195
|
+
--theme <theme> # github, github-dark, vscode-light, vscode-dark
|
|
196
|
+
--toc # Generate table of contents
|
|
197
|
+
--margin <size> # Custom margins (e.g., 25mm or 10mm,15mm,20mm,15mm)
|
|
198
|
+
--page-numbers # Add page numbers to footer
|
|
199
|
+
--format <format> # A4, A3, A5, Letter, Legal, Tabloid
|
|
200
|
+
--landscape # Landscape orientation
|
|
201
|
+
--html # Also output HTML file
|
|
202
|
+
--no-math # Disable KaTeX rendering
|
|
203
|
+
--no-emoji # Disable emoji conversion
|
|
204
|
+
--no-highlight # Disable syntax highlighting
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**List Available Themes**
|
|
208
|
+
```bash
|
|
209
|
+
md-preview-pdf themes
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 🚀 Node.js API
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
import { Converter, convert, convertString } from 'md-preview-pdf';
|
|
216
|
+
|
|
217
|
+
// Quick convert
|
|
218
|
+
await convert('input.md', 'output.pdf', { theme: { name: 'github-dark' } });
|
|
219
|
+
|
|
220
|
+
// Converter class
|
|
221
|
+
const converter = new Converter({ theme: { name: 'github-dark' }, toc: true });
|
|
222
|
+
await converter.convertFile('input.md', 'output.pdf');
|
|
223
|
+
await converter.cleanup();
|
|
224
|
+
|
|
225
|
+
// String to PDF
|
|
226
|
+
const pdfBuffer = await convertString('# Hello\nWorld', { theme: { name: 'github' } });
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 💻 System Requirements
|
|
230
|
+
- **Node.js**: >= 18.0.0
|
|
231
|
+
- **npm**: >= 8.0.0
|
|
232
|
+
- **Chromium**: Automatically downloaded by Puppeteer
|
|
233
|
+
- **Memory**: 512MB minimum (1GB+ recommended for large documents)
|
|
234
|
+
|
|
235
|
+
### 📄 Documentation
|
|
236
|
+
- **README.md**: Quick start guide and feature overview
|
|
237
|
+
- **ARCHITECTURE.md**: Detailed system design and component breakdown
|
|
238
|
+
- **CONTRIBUTING.md**: Contribution guidelines
|
|
239
|
+
- **CODE_OF_CONDUCT.md**: Community standards
|
|
240
|
+
|
|
241
|
+
### 🐛 Known Limitations
|
|
242
|
+
- Sub-pixel rendering may produce minimal artifacts on PDF edges (Puppeteer limitation)
|
|
243
|
+
- Very large documents (1000+ pages) may require increased memory
|
|
244
|
+
- Some rare CSS edge cases may not render identically to web browsers
|
|
245
|
+
- Mermaid diagram complexity is limited by browser rendering
|
|
246
|
+
|
|
247
|
+
### 🎯 Performance Benchmarks
|
|
248
|
+
- Simple markdown file: ~2.1 seconds
|
|
249
|
+
- Comprehensive document: ~40 seconds
|
|
250
|
+
- Small document PDF: 100-150 KB
|
|
251
|
+
- Typical document PDF: 500KB-2MB
|
|
252
|
+
|
|
253
|
+
### ✅ Verification Checklist
|
|
254
|
+
- ✅ Build: 0 errors
|
|
255
|
+
- ✅ Linting: 0 errors, 0 warnings
|
|
256
|
+
- ✅ Tests: 30/30 passing
|
|
257
|
+
- ✅ npm audit: 0 vulnerabilities
|
|
258
|
+
- ✅ CLI: All commands working
|
|
259
|
+
- ✅ API: All methods functional
|
|
260
|
+
- ✅ Themes: All 4 rendering correctly
|
|
261
|
+
- ✅ Features: 14/14 verified
|
|
262
|
+
- ✅ Documentation: Complete and tested
|
|
263
|
+
|
|
264
|
+
### 🙏 Attribution
|
|
265
|
+
- Built with [Puppeteer](https://github.com/puppeteer/puppeteer) for PDF generation
|
|
266
|
+
- [markdown-it](https://github.com/markdown-it/markdown-it) for parsing
|
|
267
|
+
- [highlight.js](https://highlightjs.org/) for syntax highlighting
|
|
268
|
+
- [KaTeX](https://katex.org/) for math rendering
|
|
269
|
+
- [Mermaid](https://mermaid.js.org/) for diagrams
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
8
273
|
## [1.0.4] - 2026-01-05
|
|
9
274
|
|
|
10
275
|
### 🎉 First Official Release
|
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ npm run build
|
|
|
41
41
|
npm link
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
### From NPM
|
|
44
|
+
### From NPM
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
47
|
# Global installation
|
|
@@ -276,27 +276,6 @@ npm run dev -- input.md
|
|
|
276
276
|
npm run lint
|
|
277
277
|
```
|
|
278
278
|
|
|
279
|
-
## 📂 Project Structure
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
md-preview-pdf/
|
|
283
|
-
├── src/
|
|
284
|
-
│ ├── index.ts # Main entry point
|
|
285
|
-
│ ├── cli.ts # CLI interface
|
|
286
|
-
│ ├── converter.ts # Main converter class
|
|
287
|
-
│ ├── parser/ # Markdown parsing
|
|
288
|
-
│ ├── renderers/ # HTML/PDF/Mermaid rendering
|
|
289
|
-
│ ├── themes/ # CSS themes
|
|
290
|
-
│ ├── utils/ # Utilities
|
|
291
|
-
│ └── types/ # TypeScript types
|
|
292
|
-
├── tests/
|
|
293
|
-
│ ├── samples/ # Test markdown files
|
|
294
|
-
│ └── *.test.ts # Test files
|
|
295
|
-
├── package.json
|
|
296
|
-
├── tsconfig.json
|
|
297
|
-
└── README.md
|
|
298
|
-
```
|
|
299
|
-
|
|
300
279
|
## 🔧 API Reference
|
|
301
280
|
|
|
302
281
|
### Converter Class
|
|
@@ -348,6 +327,101 @@ interface ConverterOptions {
|
|
|
348
327
|
debug?: boolean; // Debug mode
|
|
349
328
|
}
|
|
350
329
|
```
|
|
330
|
+
## 💻 System Requirements
|
|
331
|
+
|
|
332
|
+
### Minimum Requirements
|
|
333
|
+
- **Node.js**: >= 18.0.0
|
|
334
|
+
- **npm**: >= 8.0.0
|
|
335
|
+
- **Memory**: 512MB minimum (1GB+ recommended for large documents)
|
|
336
|
+
|
|
337
|
+
### Operating System Compatibility
|
|
338
|
+
|
|
339
|
+
#### macOS
|
|
340
|
+
- **Minimum**: macOS 11 (Big Sur) or later
|
|
341
|
+
- **Why**: Bundled Chromium requires macOS 11+
|
|
342
|
+
- **Older Macs**: For macOS 10.x, install Google Chrome manually and the tool will automatically use it
|
|
343
|
+
|
|
344
|
+
#### Windows
|
|
345
|
+
- **Minimum**: Windows 10 (version 1809) or later
|
|
346
|
+
- **Why**: Bundled Chromium requires Windows 10 1809+
|
|
347
|
+
- **Older Windows**: Install Google Chrome manually for compatibility
|
|
348
|
+
|
|
349
|
+
#### Linux
|
|
350
|
+
- **Most distributions supported** (Ubuntu 18.04+, Debian 10+, Fedora 32+, etc.)
|
|
351
|
+
- Required system packages may vary by distribution
|
|
352
|
+
- See [Puppeteer system requirements](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md) for details
|
|
353
|
+
|
|
354
|
+
### Browser Requirements
|
|
355
|
+
|
|
356
|
+
This tool uses Puppeteer which automatically downloads Chromium. However, if the bundled Chromium is incompatible with your system:
|
|
357
|
+
|
|
358
|
+
1. **Install Google Chrome** (recommended): The tool will automatically detect and use it
|
|
359
|
+
2. **Set custom Chrome path**:
|
|
360
|
+
```bash
|
|
361
|
+
export PUPPETEER_EXECUTABLE_PATH="/path/to/chrome"
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
## 🔧 Troubleshooting
|
|
365
|
+
|
|
366
|
+
### "dyld: cannot load 'Google Chrome for Testing'" (macOS)
|
|
367
|
+
|
|
368
|
+
**Problem**: This error occurs on macOS 10.x (Catalina and older) because the bundled Chromium requires macOS 11+.
|
|
369
|
+
|
|
370
|
+
**Solution**:
|
|
371
|
+
1. Install [Google Chrome](https://www.google.com/chrome/) from the official website
|
|
372
|
+
2. The tool will automatically detect and use your system Chrome installation
|
|
373
|
+
3. Alternatively, set the Chrome path manually:
|
|
374
|
+
```bash
|
|
375
|
+
export PUPPETEER_EXECUTABLE_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
|
|
376
|
+
md-preview-pdf document.md
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### "Failed to launch the browser process" (Windows)
|
|
380
|
+
|
|
381
|
+
**Problem**: Bundled Chromium incompatible with older Windows versions.
|
|
382
|
+
|
|
383
|
+
**Solution**:
|
|
384
|
+
1. Install [Google Chrome](https://www.google.com/chrome/)
|
|
385
|
+
2. Or set Chrome path:
|
|
386
|
+
```bash
|
|
387
|
+
set PUPPETEER_EXECUTABLE_PATH="C:\Program Files\Google\Chrome\Application\chrome.exe"
|
|
388
|
+
md-preview-pdf document.md
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### Out of Memory Errors
|
|
392
|
+
|
|
393
|
+
**Problem**: Large documents exhaust available memory.
|
|
394
|
+
|
|
395
|
+
**Solution**:
|
|
396
|
+
1. Increase Node.js memory limit:
|
|
397
|
+
```bash
|
|
398
|
+
export NODE_OPTIONS="--max-old-space-size=4096"
|
|
399
|
+
md-preview-pdf large-document.md
|
|
400
|
+
```
|
|
401
|
+
2. Split large documents into smaller files
|
|
402
|
+
3. Disable resource-intensive features:
|
|
403
|
+
```bash
|
|
404
|
+
md-preview-pdf document.md --no-highlight --no-math
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### Slow Performance
|
|
408
|
+
|
|
409
|
+
**Tips**:
|
|
410
|
+
- First conversion is slower (Chromium downloads)
|
|
411
|
+
- Use `--no-mermaid` if you don't have diagrams
|
|
412
|
+
- Disable unused features (`--no-math`, `--no-emoji`, `--no-highlight`)
|
|
413
|
+
- Consider SSD for faster file I/O
|
|
414
|
+
|
|
415
|
+
### Getting Help
|
|
416
|
+
|
|
417
|
+
1. Check [Puppeteer troubleshooting](https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md)
|
|
418
|
+
2. Search [existing issues](https://github.com/anuragkr29/md-preview-pdf/issues)
|
|
419
|
+
3. Create a [new issue](https://github.com/anuragkr29/md-preview-pdf/issues/new) with:
|
|
420
|
+
- Operating system and version
|
|
421
|
+
- Node.js version (`node --version`)
|
|
422
|
+
- Full error message
|
|
423
|
+
- Command that failed
|
|
424
|
+
|
|
351
425
|
|
|
352
426
|
## 🧪 Testing
|
|
353
427
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/pdf-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/pdf-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,UAAU,CAAC;AAmHjE;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD;AA6FD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC,MAAM,CAAC,CAsFjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAUlD;;;;;;;AAED,wBAKE"}
|
|
@@ -48,12 +48,66 @@ const puppeteer_1 = __importDefault(require("puppeteer"));
|
|
|
48
48
|
const types_1 = require("../types");
|
|
49
49
|
const utils_1 = require("../utils");
|
|
50
50
|
const mermaid_renderer_1 = require("./mermaid-renderer");
|
|
51
|
+
const child_process_1 = require("child_process");
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
51
53
|
/**
|
|
52
|
-
*
|
|
54
|
+
* Find system Chrome installation
|
|
55
|
+
*/
|
|
56
|
+
function findSystemChrome() {
|
|
57
|
+
const possiblePaths = [
|
|
58
|
+
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', // macOS
|
|
59
|
+
'/Applications/Chromium.app/Contents/MacOS/Chromium', // macOS Chromium
|
|
60
|
+
'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe', // Windows
|
|
61
|
+
'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', // Windows 32-bit
|
|
62
|
+
'/usr/bin/google-chrome', // Linux
|
|
63
|
+
'/usr/bin/chromium-browser', // Linux Chromium
|
|
64
|
+
'/usr/bin/chromium', // Linux Chromium alt
|
|
65
|
+
'/snap/bin/chromium', // Linux Snap
|
|
66
|
+
];
|
|
67
|
+
// Check environment variable first
|
|
68
|
+
if (process.env.PUPPETEER_EXECUTABLE_PATH) {
|
|
69
|
+
if (fs.existsSync(process.env.PUPPETEER_EXECUTABLE_PATH)) {
|
|
70
|
+
return process.env.PUPPETEER_EXECUTABLE_PATH;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Check common paths
|
|
74
|
+
for (const chromePath of possiblePaths) {
|
|
75
|
+
if (fs.existsSync(chromePath)) {
|
|
76
|
+
return chromePath;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Try to find Chrome using which/where command
|
|
80
|
+
try {
|
|
81
|
+
if (process.platform === 'darwin' || process.platform === 'linux') {
|
|
82
|
+
const result = (0, child_process_1.execSync)('which google-chrome || which chromium || which chromium-browser', {
|
|
83
|
+
encoding: 'utf8',
|
|
84
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
85
|
+
}).trim();
|
|
86
|
+
if (result && fs.existsSync(result)) {
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (process.platform === 'win32') {
|
|
91
|
+
const result = (0, child_process_1.execSync)('where chrome', {
|
|
92
|
+
encoding: 'utf8',
|
|
93
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
94
|
+
}).trim().split('\n')[0];
|
|
95
|
+
if (result && fs.existsSync(result)) {
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Ignore errors from which/where commands
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Launch a new browser instance with fallback to system Chrome
|
|
53
107
|
*/
|
|
54
108
|
async function launchBrowser(headless = true) {
|
|
55
109
|
utils_1.logger.debug('Launching browser for PDF rendering');
|
|
56
|
-
const
|
|
110
|
+
const launchOptions = {
|
|
57
111
|
headless: headless,
|
|
58
112
|
args: [
|
|
59
113
|
'--no-sandbox',
|
|
@@ -64,8 +118,39 @@ async function launchBrowser(headless = true) {
|
|
|
64
118
|
'--font-render-hinting=none',
|
|
65
119
|
],
|
|
66
120
|
protocolTimeout: 120000,
|
|
67
|
-
}
|
|
68
|
-
|
|
121
|
+
};
|
|
122
|
+
try {
|
|
123
|
+
// Try to launch with bundled Chromium first
|
|
124
|
+
const browser = await puppeteer_1.default.launch(launchOptions);
|
|
125
|
+
utils_1.logger.debug('Launched bundled Chromium successfully');
|
|
126
|
+
return browser;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
// If bundled Chrome fails, try system Chrome
|
|
130
|
+
utils_1.logger.warn('Failed to launch bundled Chromium, trying system Chrome...');
|
|
131
|
+
utils_1.logger.debug(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
132
|
+
const systemChrome = findSystemChrome();
|
|
133
|
+
if (systemChrome) {
|
|
134
|
+
utils_1.logger.info(`Found system Chrome at: ${systemChrome}`);
|
|
135
|
+
try {
|
|
136
|
+
const browser = await puppeteer_1.default.launch({
|
|
137
|
+
...launchOptions,
|
|
138
|
+
executablePath: systemChrome,
|
|
139
|
+
});
|
|
140
|
+
utils_1.logger.info('Launched system Chrome successfully');
|
|
141
|
+
return browser;
|
|
142
|
+
}
|
|
143
|
+
catch (systemError) {
|
|
144
|
+
utils_1.logger.error(`Failed to launch system Chrome: ${systemError instanceof Error ? systemError.message : 'Unknown error'}`);
|
|
145
|
+
throw systemError;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
utils_1.logger.error('No system Chrome installation found');
|
|
150
|
+
throw new Error('Failed to launch browser. Please install Google Chrome or set PUPPETEER_EXECUTABLE_PATH environment variable. ' +
|
|
151
|
+
'See troubleshooting: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
69
154
|
}
|
|
70
155
|
/**
|
|
71
156
|
* Close browser instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-renderer.js","sourceRoot":"","sources":["../../src/renderers/pdf-renderer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"pdf-renderer.js","sourceRoot":"","sources":["../../src/renderers/pdf-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED