md-preview-pdf 1.0.6 → 1.1.1

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 (66) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +82 -22
  3. package/SECURITY.md +3 -2
  4. package/dist/converter.d.ts +8 -0
  5. package/dist/converter.d.ts.map +1 -1
  6. package/dist/converter.js +46 -4
  7. package/dist/converter.js.map +1 -1
  8. package/dist/parser/index.d.ts.map +1 -1
  9. package/dist/parser/index.js +81 -1
  10. package/dist/parser/index.js.map +1 -1
  11. package/dist/parser/markdown-parser.d.ts.map +1 -1
  12. package/dist/parser/markdown-parser.js +22 -6
  13. package/dist/parser/markdown-parser.js.map +1 -1
  14. package/dist/renderers/base-styles.d.ts +16 -0
  15. package/dist/renderers/base-styles.d.ts.map +1 -0
  16. package/dist/renderers/base-styles.js +322 -0
  17. package/dist/renderers/base-styles.js.map +1 -0
  18. package/dist/renderers/html-renderer.d.ts.map +1 -1
  19. package/dist/renderers/html-renderer.js +42 -319
  20. package/dist/renderers/html-renderer.js.map +1 -1
  21. package/dist/renderers/katex-styles.d.ts +10 -0
  22. package/dist/renderers/katex-styles.d.ts.map +1 -0
  23. package/dist/renderers/katex-styles.js +54 -0
  24. package/dist/renderers/katex-styles.js.map +1 -0
  25. package/dist/renderers/mermaid-renderer.d.ts.map +1 -1
  26. package/dist/renderers/mermaid-renderer.js +64 -19
  27. package/dist/renderers/mermaid-renderer.js.map +1 -1
  28. package/dist/renderers/pdf-renderer.d.ts.map +1 -1
  29. package/dist/renderers/pdf-renderer.js +31 -2
  30. package/dist/renderers/pdf-renderer.js.map +1 -1
  31. package/dist/themes/colors/github-colors.d.ts +5 -0
  32. package/dist/themes/colors/github-colors.d.ts.map +1 -0
  33. package/dist/themes/colors/github-colors.js +114 -0
  34. package/dist/themes/colors/github-colors.js.map +1 -0
  35. package/dist/themes/colors/github-dark-colors.d.ts +5 -0
  36. package/dist/themes/colors/github-dark-colors.d.ts.map +1 -0
  37. package/dist/themes/colors/github-dark-colors.js +114 -0
  38. package/dist/themes/colors/github-dark-colors.js.map +1 -0
  39. package/dist/themes/colors/vscode-dark-colors.d.ts +6 -0
  40. package/dist/themes/colors/vscode-dark-colors.d.ts.map +1 -0
  41. package/dist/themes/colors/vscode-dark-colors.js +95 -0
  42. package/dist/themes/colors/vscode-dark-colors.js.map +1 -0
  43. package/dist/themes/colors/vscode-light-colors.d.ts +6 -0
  44. package/dist/themes/colors/vscode-light-colors.d.ts.map +1 -0
  45. package/dist/themes/colors/vscode-light-colors.js +96 -0
  46. package/dist/themes/colors/vscode-light-colors.js.map +1 -0
  47. package/dist/themes/github-dark.d.ts +1 -2
  48. package/dist/themes/github-dark.d.ts.map +1 -1
  49. package/dist/themes/github-dark.js +914 -199
  50. package/dist/themes/github-dark.js.map +1 -1
  51. package/dist/themes/github.d.ts +1 -2
  52. package/dist/themes/github.d.ts.map +1 -1
  53. package/dist/themes/github.js +969 -226
  54. package/dist/themes/github.js.map +1 -1
  55. package/dist/themes/vscode-dark.d.ts +1 -1
  56. package/dist/themes/vscode-dark.d.ts.map +1 -1
  57. package/dist/themes/vscode-dark.js +75 -50
  58. package/dist/themes/vscode-dark.js.map +1 -1
  59. package/dist/themes/vscode-light.d.ts +1 -1
  60. package/dist/themes/vscode-light.d.ts.map +1 -1
  61. package/dist/themes/vscode-light.js +55 -31
  62. package/dist/themes/vscode-light.js.map +1 -1
  63. package/dist/types/index.d.ts +2 -0
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/dist/types/index.js.map +1 -1
  66. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,72 @@ 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.1.1] - 2026-02-25
9
+
10
+ ### Security
11
+
12
+ - **Dependency vulnerability fixes**: Resolved 6 npm audit vulnerabilities (1 critical, 1 high, 3 moderate, 1 low)
13
+ - `basic-ftp` critical path traversal (CVE in `downloadToDir()`)
14
+ - `minimatch` high ReDoS via repeated wildcards
15
+ - `markdown-it` moderate ReDoS
16
+ - `ajv` moderate ReDoS with `$data` option
17
+ - `lodash-es` moderate prototype pollution in `_.unset`/`_.omit`
18
+ - `diff` (jsdiff) DoS in `parsePatch`/`applyPatch`
19
+
20
+ - **XSS prevention in Mermaid renderer**: Diagram content is now base64-encoded and decoded in the browser context instead of being injected raw into HTML templates
21
+ - **JS injection prevention**: Mermaid theme and fontFamily options are now validated/sanitized before interpolation into JavaScript contexts
22
+ - **HTML escaping in error fallbacks**: Mermaid error fallback HTML now escapes diagram content and error messages
23
+ - **HTML escaping in markdown parser**: Custom container titles, details/summary titles, and the default fence fallback now properly escape HTML entities
24
+ - **Image path traversal protection**: `processImages` now validates that resolved image paths stay within the document's base directory
25
+ - **Puppeteer hardening**: Added additional Chrome launch flags (`--disable-extensions`, `--disable-background-networking`, `--disable-sync`, `--disable-translate`, `--no-first-run`, etc.) to both PDF and Mermaid browser instances
26
+ - **Security documentation**: Added inline comment in markdown parser noting that `html: true` is required for GFM but untrusted input should be sanitised
27
+
28
+ ## [1.1.0] - 2026-01-11
29
+
30
+ ### Added
31
+ - **Full-width Gantt chart rendering**: Gantt charts now span the entire page width
32
+ - Configured ganttConfig in Mermaid initialization with `useWidth` parameter
33
+ - Optimized padding and margins for better Gantt diagram display
34
+ - Enhanced CSS for `.mermaid-container.gantt` to prevent width constraints
35
+
36
+ - **Official Mermaid theme rendering**: Use official Mermaid themes and validate user selection
37
+ - Removed custom CSS and theme overrides for Mermaid
38
+ - Dark-mode themes (`github-dark`, `vscode-dark`) use Mermaid's `dark` theme
39
+ - Light/default themes (`github`, `github-light`, `vscode-light`) use Mermaid's `default` theme
40
+ - Validate Mermaid theme names; allowed themes: `default`, `forest`, `dark`, `neutral`, `base`
41
+ - Invalid themes now log a warning and fallback to `default`
42
+
43
+ - **Modular CSS rendering architecture**: Improved code organization
44
+ - Extracted base document CSS into separate `base-styles.ts` module
45
+ - Extracted KaTeX styles into separate `katex-styles.ts` module
46
+ - Reduced `html-renderer.ts` complexity for better maintainability
47
+ - Each CSS module independently testable and reusable
48
+
49
+ - **Render YAML front matter as an HTML table**: Render YAML front matter as an HTML table in generated PDFs for clearer metadata presentation ([963b163](https://github.com/anuragkr29/md-preview-pdf/commit/963b163)).
50
+
51
+ - **Enhanced security measures**:
52
+ - Added SRI (Subresource Integrity) hashes to all CDN resources for tamper detection
53
+ - Implemented HTML escaping for document title field to prevent XSS
54
+ - Changed Mermaid security level from `'loose'` to `'antiscript'` for safer diagram rendering
55
+ - Added validation for custom CSS paths to prevent path traversal attacks
56
+ - Added executable path validation for Chrome/Chromium detection
57
+
58
+ ### Improved
59
+ - **Code organization**: CSS generation logic separated into focused modules
60
+ - Better separation of concerns
61
+ - Easier to locate and modify specific CSS rules
62
+ - Improved code reusability
63
+
64
+ ### Fixed
65
+ - Rendering issues for the `github-dark` theme in generated PDFs; removed unused variables and minor cleanups ([e88e723](https://github.com/anuragkr29/md-preview-pdf/commit/e88e723)).
66
+
67
+ ### CI / Tests
68
+ - Added Node 24.x to the GitHub Actions Node matrix (see `.github/workflows/ci.yml`) ([3390c1b](https://github.com/anuragkr29/md-preview-pdf/commit/3390c1b)).
69
+ - Increased Jest timeout to 120s for PDF generation tests to reduce flaky failures (tests/margin-verification.test.ts) ([3390c1b](https://github.com/anuragkr29/md-preview-pdf/commit/3390c1b)).
70
+
71
+ ### Chore
72
+ - Regenerated sample PDFs and updated documentation/changelog metadata ([eebc2d0](https://github.com/anuragkr29/md-preview-pdf/commit/eebc2d0)).
73
+
8
74
  ## [1.0.6] - 2026-01-05
9
75
 
10
76
  ### 🔧 Fixed
package/README.md CHANGED
@@ -22,6 +22,13 @@ A state-of-the-art Markdown to PDF converter that preserves the exact visual app
22
22
  - **Emoji Support**: Convert `:emoji:` shortcodes to unicode
23
23
  - **High-Fidelity Output**: Uses Puppeteer for pixel-perfect PDF generation
24
24
 
25
+ ### What's new in v1.1.1
26
+ - Fixed 6 dependency vulnerabilities (critical path traversal, high ReDoS, prototype pollution, DoS)
27
+ - XSS prevention: Mermaid diagram content is now base64-encoded instead of raw HTML injection
28
+ - HTML escaping for container titles, details summaries, and fence fallback output
29
+ - Image path traversal protection preventing reads outside the document directory
30
+ - Hardened Puppeteer browser launch flags for both PDF and Mermaid rendering
31
+
25
32
  ## 📦 Installation
26
33
 
27
34
  ### From Source (Development)
@@ -70,8 +77,21 @@ md-preview-pdf document.md --page-numbers
70
77
 
71
78
  # Generate table of contents
72
79
  md-preview-pdf document.md --toc
80
+
81
+ # TOC with custom depth
82
+ md-preview-pdf document.md --toc --toc-depth 2
73
83
  ```
74
84
 
85
+ > **Note**: Table of contents generation requires a `${toc}` marker in your markdown file where you want the TOC to appear. Example:
86
+ > ```markdown
87
+ > # My Document
88
+ >
89
+ > ${toc}
90
+ >
91
+ > ## Section 1
92
+ > Content here...
93
+ > ```
94
+
75
95
  ### Programmatic Usage
76
96
 
77
97
  ```typescript
@@ -112,7 +132,7 @@ await converter.cleanup();
112
132
  | `--no-math` | Disable KaTeX math rendering | `true` |
113
133
  | `--no-emoji` | Disable emoji conversion | `true` |
114
134
  | `--no-highlight` | Disable syntax highlighting | `true` |
115
- | `--mermaid-theme <theme>` | Mermaid theme (default, forest, dark, neutral) | `default` |
135
+ | `--mermaid-theme <theme>` | Mermaid theme (default, forest, dark, neutral, base) | `default` |
116
136
  | `--header <template>` | Custom header HTML template | - |
117
137
  | `--footer <template>` | Custom footer HTML template | - |
118
138
  | `--page-numbers` | Add page numbers to footer | `false` |
@@ -138,34 +158,47 @@ md-preview-pdf themes
138
158
 
139
159
  ### Customizing Theme Styling
140
160
 
141
- Each theme is defined as a CSS string in the `src/themes/` directory. To customize a theme:
161
+ Themes use a modular architecture with separate color palettes and CSS styling:
162
+
163
+ **Structure:**
164
+ - Color palettes: `src/themes/colors/*.ts` (defines CSS variables)
165
+ - Theme CSS: `src/themes/*.ts` (imports colors and applies styling)
166
+
167
+ **Available Themes:**
142
168
 
143
- 1. **GitHub Light Theme** (`src/themes/github.ts`)
144
- - Background color: `#ffffff` (white)
145
- - Text color: `#24292f` (dark gray)
146
- - Edit the `.markdown-body` styling and color variables
169
+ 1. **GitHub Light Theme**
170
+ - Colors: [src/themes/colors/github-colors.ts](src/themes/colors/github-colors.ts)
171
+ - CSS: [src/themes/github.ts](src/themes/github.ts)
172
+ - Primary colors: `--bgColor-default: #ffffff`, `--fgColor-default: #1f2328`
147
173
 
148
- 2. **GitHub Dark Theme** (`src/themes/github-dark.ts`)
149
- - Background color: `#0d1117` (very dark gray)
150
- - Text color: `#c9d1d9` (light gray)
151
- - Edit the `.markdown-body` styling and color variables
174
+ 2. **GitHub Dark Theme**
175
+ - Colors: [src/themes/colors/github-dark-colors.ts](src/themes/colors/github-dark-colors.ts)
176
+ - CSS: [src/themes/github-dark.ts](src/themes/github-dark.ts)
177
+ - Primary colors: `--bgColor-default: #0d1117`, `--fgColor-default: #e6edf3`
152
178
 
153
- 3. **VS Code Light Theme** (`src/themes/vscode-light.ts`)
154
- - Background color: `#ffffff` (white)
155
- - Text color: `#333333` (dark gray)
156
- - Edit the `.markdown-body` styling to match VS Code light theme
179
+ 3. **VS Code Light Theme**
180
+ - Colors: [src/themes/colors/vscode-light-colors.ts](src/themes/colors/vscode-light-colors.ts)
181
+ - CSS: [src/themes/vscode-light.ts](src/themes/vscode-light.ts)
182
+ - Primary colors: `--bgColor-default: #ffffff`, `--fgColor-default: #333333`
157
183
 
158
- 4. **VS Code Dark Theme** (`src/themes/vscode-dark.ts`)
159
- - Background color: `#1e1e1e` (VS Code dark)
160
- - Text color: `#d4d4d4` (light gray)
161
- - Edit the `.markdown-body` styling to match VS Code dark theme
184
+ 4. **VS Code Dark Theme**
185
+ - Colors: [src/themes/colors/vscode-dark-colors.ts](src/themes/colors/vscode-dark-colors.ts)
186
+ - CSS: [src/themes/vscode-dark.ts](src/themes/vscode-dark.ts)
187
+ - Primary colors: `--bgColor-default: #1e1e1e`, `--fgColor-default: #d4d4d4`
188
+
189
+ **To customize a theme:**
190
+
191
+ 1. Edit color values in the appropriate `colors/*.ts` file (uses CSS custom properties)
192
+ 2. Modify styling rules in the theme's main `.ts` file if needed
193
+ 3. Rebuild and test:
162
194
 
163
- To test your theme changes:
164
195
  ```bash
165
196
  npm run build
166
197
  md-preview-pdf tests/samples/simple-test.md output.pdf --theme github-dark
167
198
  ```
168
199
 
200
+ This modular approach separates color definitions from styling logic, making themes easier to maintain and extend.
201
+
169
202
  ### Sample Output
170
203
 
171
204
  The following PDFs demonstrate the output quality across all themes:
@@ -194,11 +227,37 @@ Supported diagram types:
194
227
  - Class diagrams
195
228
  - State diagrams
196
229
  - Entity Relationship diagrams
197
- - Gantt charts
230
+ - Gantt charts (full-width rendering)
198
231
  - Pie charts
199
232
  - Git graphs
200
233
  - User Journey diagrams
201
234
 
235
+ ### Mermaid Themes and Configuration
236
+
237
+ The converter automatically selects the appropriate Mermaid theme based on your document theme:
238
+
239
+ | Document Theme | Mermaid Theme |
240
+ |---|---|
241
+ | `github` | `default` |
242
+ | `github-dark` | `dark` |
243
+ | `vscode-light` | `default` |
244
+ | `vscode-dark` | `dark` |
245
+
246
+ You can also explicitly set the Mermaid theme via CLI:
247
+
248
+ ```bash
249
+ # Use forest theme
250
+ md-preview-pdf document.md --mermaid-theme forest
251
+
252
+ # Use neutral theme
253
+ md-preview-pdf document.md --mermaid-theme neutral
254
+ ```
255
+
256
+ **Available Mermaid themes**: `default`, `forest`, `dark`, `neutral`, `base`
257
+
258
+ > **Note**: Invalid theme names will trigger a warning and fallback to the `default` theme automatically.
259
+
260
+
202
261
  ## ➗ Math Equations
203
262
 
204
263
  Inline math with single dollar signs:
@@ -224,15 +283,16 @@ Use YAML front matter to configure document-specific options:
224
283
  title: "My Document"
225
284
  author: "John Doe"
226
285
  date: "2024-01-01"
227
- pdf:
286
+ pdfs:
228
287
  format: Letter
229
288
  margin:
230
289
  top: "25mm"
231
290
  bottom: "25mm"
232
- theme: github-dark
233
291
  ---
234
292
  ```
235
293
 
294
+ In v1.1.0 the YAML front matter is also rendered as an HTML table in the generated PDF, providing a clear metadata summary at the top of the document.
295
+
236
296
  ## 📁 Custom Containers
237
297
 
238
298
  ```markdown
package/SECURITY.md CHANGED
@@ -6,6 +6,7 @@ We release patches for security vulnerabilities. Which versions are eligible for
6
6
 
7
7
  | Version | Supported |
8
8
  | ------- | ------------------ |
9
+ | 1.1.x | :white_check_mark: |
9
10
  | 1.0.x | :white_check_mark: |
10
11
 
11
12
  ## Reporting a Vulnerability
@@ -17,7 +18,7 @@ We take the security of MD Preview PDF seriously. If you believe you have found
17
18
  **Please do not report security vulnerabilities through public GitHub issues.**
18
19
 
19
20
  Instead, please report them via email to:
20
- - **Email**: anuragkr29@outlook.com
21
+ - **Email**: anuragkr29@gmail.com
21
22
  - **Subject**: [SECURITY] MD Preview PDF - Brief Description
22
23
 
23
24
  ### What to Include
@@ -97,4 +98,4 @@ This security policy may be updated periodically. Significant changes will be an
97
98
 
98
99
  ---
99
100
 
100
- Last Updated: January 3, 2026
101
+ Last Updated: February 25, 2026
@@ -9,6 +9,14 @@ import { ConverterOptions, ConversionResult, ParsedMarkdown } from './types';
9
9
  export declare class Converter {
10
10
  private options;
11
11
  constructor(options?: ConverterOptions);
12
+ /**
13
+ * Map document theme to Mermaid predefined theme
14
+ */
15
+ private getMermaidThemeForDocumentTheme;
16
+ /**
17
+ * Validate Mermaid theme is one of the predefined themes
18
+ */
19
+ private isValidMermaidTheme;
12
20
  /**
13
21
  * Convert markdown string to PDF buffer
14
22
  */
@@ -1 +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"}
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;IAiC1C;;MAEE;IACF,OAAO,CAAC,+BAA+B;IAevC;;MAEE;IACF,OAAO,CAAC,mBAAmB;IAK3B;;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"}
package/dist/converter.js CHANGED
@@ -53,10 +53,10 @@ const defaultOptions = {
53
53
  pdf: {
54
54
  format: 'A4',
55
55
  margin: {
56
- top: '10mm',
57
- right: '10mm',
58
- bottom: '10mm',
59
- left: '10mm',
56
+ top: '5mm',
57
+ right: '5mm',
58
+ bottom: '5mm',
59
+ left: '5mm',
60
60
  },
61
61
  printBackground: true,
62
62
  },
@@ -116,6 +116,48 @@ class Converter {
116
116
  highlightTheme: (0, themes_1.getMatchingHighlightTheme)(themeName),
117
117
  };
118
118
  }
119
+ // Set Mermaid theme based on document theme if not already set
120
+ if (this.options.mermaid?.theme === 'default' || !this.options.mermaid?.theme) {
121
+ const themeName = this.options.theme?.name || 'github';
122
+ const mermaidTheme = this.getMermaidThemeForDocumentTheme(themeName);
123
+ this.options.mermaid = {
124
+ ...this.options.mermaid,
125
+ theme: mermaidTheme,
126
+ };
127
+ }
128
+ else if (this.options.mermaid?.theme && !this.isValidMermaidTheme(this.options.mermaid.theme)) {
129
+ // Validate that user-provided theme is one of the predefined themes
130
+ utils_1.logger.warn(`Invalid Mermaid theme: "${this.options.mermaid.theme}". Using default. ` +
131
+ `Valid themes are: default, forest, dark, neutral, base`);
132
+ this.options.mermaid = {
133
+ ...this.options.mermaid,
134
+ theme: 'default',
135
+ };
136
+ }
137
+ }
138
+ /**
139
+ * Map document theme to Mermaid predefined theme
140
+ */
141
+ getMermaidThemeForDocumentTheme(documentTheme) {
142
+ switch (documentTheme) {
143
+ case 'github':
144
+ return 'default';
145
+ case 'github-dark':
146
+ return 'dark';
147
+ case 'vscode-light':
148
+ return 'default';
149
+ case 'vscode-dark':
150
+ return 'dark';
151
+ default:
152
+ return 'default';
153
+ }
154
+ }
155
+ /**
156
+ * Validate Mermaid theme is one of the predefined themes
157
+ */
158
+ isValidMermaidTheme(theme) {
159
+ const validThemes = ['default', 'forest', 'dark', 'neutral', 'base'];
160
+ return validThemes.includes(theme);
119
161
  }
120
162
  /**
121
163
  * Convert markdown string to PDF buffer
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0UH,0CAEC;AAKD,0BAaC;AAKD,sCAWC;AA5WD,2CAA6B;AAM7B,qCAAyC;AACzC,2CAAoE;AACpE,mCAQiB;AACjB,qCAAqD;AAErD;;GAEG;AACH,MAAM,cAAc,GAAqB;IACvC,GAAG,EAAE;QACH,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,GAAG,EAAE,KAAK;YACV,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;SACZ;QACD,eAAe,EAAE,IAAI;KACtB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;KACjB;IACD,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,KAAK;CACb,CAAC;AAEF;;GAEG;AACH,SAAS,YAAY,CAAC,WAA6B;IACjD,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,WAAW;QACd,GAAG,EAAE;YACH,GAAG,cAAc,CAAC,GAAG;YACrB,GAAG,WAAW,CAAC,GAAG;YAClB,MAAM,EAAE;gBACN,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM;gBAC7B,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM;aAC3B;SACF;QACD,KAAK,EAAE;YACL,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ;YACvE,GAAG,cAAc,CAAC,KAAK;YACvB,GAAG,WAAW,CAAC,KAAK;SACrB;QACD,OAAO,EAAE;YACP,GAAG,cAAc,CAAC,OAAO;YACzB,GAAG,WAAW,CAAC,OAAO;SACvB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAa,SAAS;IACZ,OAAO,CAAmB;IAElC,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAErC,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC;YACvD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ;gBAC1C,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;gBACrB,cAAc,EAAE,IAAA,kCAAyB,EAAC,SAAS,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,+DAA+D;QAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;gBACrB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;gBACvB,KAAK,EAAE,YAAY;aACpB,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChG,oEAAoE;YACpE,cAAM,CAAC,IAAI,CACT,2BAA2B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,oBAAoB;gBACzE,wDAAwD,CACzD,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;gBACrB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;gBACvB,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;MAEE;IACM,+BAA+B,CAAC,aAAqB;QAC3D,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,QAAQ;gBACX,OAAO,SAAS,CAAC;YACnB,KAAK,aAAa;gBAChB,OAAO,MAAM,CAAC;YAChB,KAAK,cAAc;gBACjB,OAAO,SAAS,CAAC;YACnB,KAAK,aAAa;gBAChB,OAAO,MAAM,CAAC;YAChB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;MAEE;IACM,mBAAmB,CAAC,KAAa;QACvC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,QAAiB;QACrD,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE;SACpC,CAAC;QAEF,iBAAiB;QACjB,cAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEhD,gBAAgB;QAChB,cAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEjD,eAAe;QACf,cAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAS,EAAC,IAAI,EAAE;YACtC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,UAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,kBAAkB,GAAG,UAAU;gBACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC1B,CAAC,CAAC,IAAA,uBAAe,EAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAEjD,cAAM,CAAC,IAAI,CAAC,eAAe,iBAAiB,EAAE,CAAC,CAAC;YAChD,cAAM,CAAC,KAAK,CAAC,WAAW,kBAAkB,EAAE,CAAC,CAAC;YAE9C,qBAAqB;YACrB,MAAM,QAAQ,GAAG,MAAM,IAAA,gBAAQ,EAAC,iBAAiB,CAAC,CAAC;YAEnD,uCAAuC;YACvC,MAAM,OAAO,GAAG;gBACd,GAAG,IAAI,CAAC,OAAO;gBACf,QAAQ;aACT,CAAC;YAEF,iBAAiB;YACjB,cAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEhD,6BAA6B;YAC7B,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9D,CAAC;YAED,gBAAgB;YAChB,cAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAEjD,yBAAyB;YACzB,IAAI,QAA4B,CAAC;YACjC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,QAAQ,GAAG,IAAA,uBAAe,EAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;gBACvD,MAAM,IAAA,iBAAS,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAChC,cAAM,CAAC,IAAI,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,eAAe;YACf,cAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAS,EAAC,IAAI,EAAE;gBACtC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;YAEH,WAAW;YACX,MAAM,IAAA,iBAAS,EAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAAC,kBAAkB,CAAC,CAAC;YAEvD,cAAM,CAAC,IAAI,CAAC,oBAAoB,kBAAkB,EAAE,CAAC,CAAC;YACtD,cAAM,CAAC,IAAI,CAAC,WAAW,IAAA,sBAAc,EAAC,QAAQ,CAAC,WAAW,QAAQ,IAAI,CAAC,CAAC;YAExE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,kBAAkB;gBAC9B,QAAQ;gBACR,KAAK,EAAE;oBACL,QAAQ;oBACR,QAAQ;iBACT;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAC;YAC3C,cAAM,CAAC,KAAK,CAAC,sBAAsB,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,eAAe,CAAC,OAAO;gBAC9B,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACjC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,UAAoB,EACpB,SAAkB;QAElB,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,UAA8B,CAAC;YAEnC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC1C,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAA,uBAAe,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAA,sBAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,QAAiB;QACpD,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE;SACpC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAA,wBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAkC;QAC3C,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAA,wBAAY,GAAE,CAAC;QACrB,cAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;CACF;AArPD,8BAqPC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,UAA4B,EAAE;IAC5D,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,OAAO,CAC3B,KAAa,EACb,MAAe,EACf,OAA0B;IAE1B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAA0B;IAE1B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,kBAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGzE,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcxF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,gBAAqB,GAC7B,cAAc,CAkChB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKvE;;;;;;;;;AAED,wBAOE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGzE,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAcxF;AAyFD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,gBAAqB,GAC7B,cAAc,CAyChB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKvE;;;;;;;;;AAED,wBAOE"}
@@ -36,6 +36,80 @@ function parseFrontMatter(content) {
36
36
  };
37
37
  }
38
38
  }
39
+ /**
40
+ * Convert front matter object to nested HTML table with colspan/rowspan
41
+ */
42
+ function frontMatterToTable(obj) {
43
+ // Calculate column span for each key
44
+ function getColumnCount(value) {
45
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
46
+ const entries = Object.entries(value);
47
+ return entries.reduce((sum, [_, v]) => sum + getColumnCount(v), 0);
48
+ }
49
+ return 1;
50
+ }
51
+ // Calculate max depth
52
+ function getDepth(value) {
53
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
54
+ const entries = Object.entries(value);
55
+ return 1 + Math.max(...entries.map(([_, v]) => getDepth(v)));
56
+ }
57
+ return 1;
58
+ }
59
+ const maxDepth = Math.max(...Object.values(obj).map(v => getDepth(v)));
60
+ const entries = Object.entries(obj);
61
+ // Total rows = maxDepth (for headers at each level) + 1 (for deepest values)
62
+ const totalRows = maxDepth + 1;
63
+ // Build HTML table with minimal margins
64
+ let html = '<table class="frontmatter-table" style="margin: 0 0 12px 0; border-collapse: collapse; width: 100%;">\n';
65
+ // Track which cells have been filled by rowspan
66
+ const occupiedCells = new Set();
67
+ // Build each row
68
+ for (let row = 0; row < totalRows; row++) {
69
+ html += ' <tr>\n';
70
+ function renderRow(entries, currentDepth, colOffset) {
71
+ let col = colOffset;
72
+ entries.forEach(([key, value]) => {
73
+ const cellKey = `${row},${col}`;
74
+ const isLeaf = typeof value !== 'object' || value === null || Array.isArray(value);
75
+ const colspan = getColumnCount(value);
76
+ // Check if this position is already occupied by a rowspan from above
77
+ if (occupiedCells.has(cellKey) && isLeaf) {
78
+ col += colspan;
79
+ return;
80
+ }
81
+ if (row === currentDepth) {
82
+ // This row shows headers for this depth
83
+ html += ` <th colspan="${colspan}">${key}</th>\n`;
84
+ col += colspan;
85
+ }
86
+ else if (row === currentDepth + 1 && isLeaf) {
87
+ // This row shows values for simple values at this depth
88
+ const displayValue = value === null ? '' : String(value);
89
+ const rowspan = totalRows - row;
90
+ // Mark cells as occupied by this rowspan
91
+ for (let r = row; r < row + rowspan; r++) {
92
+ occupiedCells.add(`${r},${col}`);
93
+ }
94
+ html += ` <td rowspan="${rowspan}">${displayValue}</td>\n`;
95
+ col += 1;
96
+ }
97
+ else if (row > currentDepth && !isLeaf) {
98
+ // Recurse into nested object
99
+ renderRow(Object.entries(value), currentDepth + 1, col);
100
+ col += colspan;
101
+ }
102
+ else {
103
+ col += colspan;
104
+ }
105
+ });
106
+ }
107
+ renderRow(entries, 0, 0);
108
+ html += ' </tr>\n';
109
+ }
110
+ html += '</table>\n';
111
+ return html;
112
+ }
39
113
  /**
40
114
  * Parse markdown content and return structured result
41
115
  */
@@ -59,8 +133,14 @@ function parseMarkdown(markdownContent, options = {}) {
59
133
  };
60
134
  // Create parser with merged options
61
135
  const parser = (0, markdown_parser_1.createMarkdownParser)(mergedOptions);
136
+ // If there's front matter, convert it to HTML table and prepend
137
+ let contentToRender = content;
138
+ if (Object.keys(frontMatter).length > 0 && markdownContent.startsWith('---')) {
139
+ const frontMatterTable = '<div class="frontmatter-wrapper">' + frontMatterToTable(frontMatter) + '</div>\n';
140
+ contentToRender = frontMatterTable + content;
141
+ }
62
142
  // Parse markdown to HTML
63
- const html = parser.render(content);
143
+ const html = parser.render(contentToRender);
64
144
  utils_1.logger.debug('Markdown parsed successfully');
65
145
  return {
66
146
  frontMatter,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAYH,4CAcC;AAKD,sCAqCC;AAKD,8CAEC;AAKD,8CAEC;AAKD,sDAKC;AA1FD,8DAAiC;AACjC,uDAAyD;AAIhD,qGAJA,sCAAoB,OAIA;AAF7B,oCAAkC;AAIlC;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAmB;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,EAAE;YACR,OAAO;SACR,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,eAAuB,EACvB,UAA4B,EAAE;IAE9B,uBAAuB;IACvB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAEzE,kCAAkC;IAClC,MAAM,SAAS,GAAI,WAAW,CAAC,KAA4B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC;IAC/F,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,SAAkF,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5J,MAAM,aAAa,GAAG;QACpB,GAAG,OAAO;QACV,KAAK,EAAE;YACL,GAAG,OAAO,CAAC,KAAK;YAChB,IAAI,EAAE,cAAc;SACrB;QACD,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,WAAW,CAAC,GAAG;SACnB;KACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,MAAM,GAAG,IAAA,sCAAoB,EAAC,aAAa,CAAC,CAAC;IAEnD,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpC,cAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE7C,OAAO;QACL,WAAW;QACX,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChG,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAY,EAAE,GAAW;IAC7D,OAAO,IAAI;SACR,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;SAC1B,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,kBAAe;IACb,oBAAoB,EAApB,sCAAoB;IACpB,gBAAgB;IAChB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;CACtB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAYH,4CAcC;AA4FD,sCA4CC;AAKD,8CAEC;AAKD,8CAEC;AAKD,sDAKC;AAxLD,8DAAiC;AACjC,uDAAyD;AAIhD,qGAJA,sCAAoB,OAIA;AAF7B,oCAAkC;AAIlC;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAmB;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAM,CAAC,IAAI,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,EAAE;YACR,OAAO;SACR,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAA4B;IACtD,qCAAqC;IACrC,SAAS,cAAc,CAAC,KAAc;QACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC;YACjE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sBAAsB;IACtB,SAAS,QAAQ,CAAC,KAAc;QAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,6EAA6E;IAC7E,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;IAE/B,wCAAwC;IACxC,IAAI,IAAI,GAAG,yGAAyG,CAAC;IAErH,gDAAgD;IAChD,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE7C,iBAAiB;IACjB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,UAAU,CAAC;QAEnB,SAAS,SAAS,CAAC,OAA4B,EAAE,YAAoB,EAAE,SAAiB;YACtF,IAAI,GAAG,GAAG,SAAS,CAAC;YAEpB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC/B,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnF,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEtC,qEAAqE;gBACrE,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;oBACzC,GAAG,IAAI,OAAO,CAAC;oBACf,OAAO;gBACT,CAAC;gBAED,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBACzB,wCAAwC;oBACxC,IAAI,IAAI,oBAAoB,OAAO,KAAK,GAAG,SAAS,CAAC;oBACrD,GAAG,IAAI,OAAO,CAAC;gBACjB,CAAC;qBAAM,IAAI,GAAG,KAAK,YAAY,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;oBAC9C,wDAAwD;oBACxD,MAAM,YAAY,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzD,MAAM,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;oBAEhC,yCAAyC;oBACzC,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;oBACnC,CAAC;oBAED,IAAI,IAAI,oBAAoB,OAAO,KAAK,YAAY,SAAS,CAAC;oBAC9D,GAAG,IAAI,CAAC,CAAC;gBACX,CAAC;qBAAM,IAAI,GAAG,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;oBACzC,6BAA6B;oBAC7B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;oBACnF,GAAG,IAAI,OAAO,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,GAAG,IAAI,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,IAAI,WAAW,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,YAAY,CAAC;IAErB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,eAAuB,EACvB,UAA4B,EAAE;IAE9B,uBAAuB;IACvB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAEzE,kCAAkC;IAClC,MAAM,SAAS,GAAI,WAAW,CAAC,KAA4B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,QAAQ,CAAC;IAC/F,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,SAAkF,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE5J,MAAM,aAAa,GAAG;QACpB,GAAG,OAAO;QACV,KAAK,EAAE;YACL,GAAG,OAAO,CAAC,KAAK;YAChB,IAAI,EAAE,cAAc;SACrB;QACD,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,WAAW,CAAC,GAAG;SACnB;KACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,MAAM,GAAG,IAAA,sCAAoB,EAAC,aAAa,CAAC,CAAC;IAEnD,gEAAgE;IAChE,IAAI,eAAe,GAAG,OAAO,CAAC;IAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7E,MAAM,gBAAgB,GAAG,mCAAmC,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;QAC5G,eAAe,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAC/C,CAAC;IAED,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE5C,cAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE7C,OAAO;QACL,WAAW;QACX,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAChG,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAAY,EAAE,GAAW;IAC7D,OAAO,IAAI;SACR,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;SAC1B,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,kBAAe;IACb,oBAAoB,EAApB,sCAAoB;IACpB,gBAAgB;IAChB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../src/parser/markdown-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,UAAqB,MAAM,aAAa,CAAC;AAahD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgM5C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CAwE/E;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"markdown-parser.d.ts","sourceRoot":"","sources":["../../src/parser/markdown-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,UAAqB,MAAM,aAAa,CAAC;AAahD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA6M5C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CA2E/E;AAED,eAAe,oBAAoB,CAAC"}
@@ -19,6 +19,17 @@ const markdown_it_task_lists_1 = __importDefault(require("markdown-it-task-lists
19
19
  const markdown_it_toc_done_right_1 = __importDefault(require("markdown-it-toc-done-right"));
20
20
  const markdown_it_attrs_1 = __importDefault(require("markdown-it-attrs"));
21
21
  const utils_1 = require("../utils");
22
+ /**
23
+ * Escape HTML entities to prevent XSS in rendered output
24
+ */
25
+ function escapeHtml(text) {
26
+ return text
27
+ .replace(/&/g, '&amp;')
28
+ .replace(/</g, '&lt;')
29
+ .replace(/>/g, '&gt;')
30
+ .replace(/"/g, '&quot;')
31
+ .replace(/'/g, '&#039;');
32
+ }
22
33
  /**
23
34
  * Custom plugin to render math equations with KaTeX
24
35
  */
@@ -29,6 +40,8 @@ function mathPlugin(md) {
29
40
  return false;
30
41
  if (state.src[state.pos + 1] === '$')
31
42
  return false; // Skip block math
43
+ if (state.src[state.pos + 1] === '{')
44
+ return false; // Skip ${...} template literals
32
45
  const start = state.pos + 1;
33
46
  let end = start;
34
47
  while (end < state.posMax && state.src[end] !== '$') {
@@ -120,7 +133,7 @@ function mathPlugin(md) {
120
133
  function mermaidPlugin(md) {
121
134
  const defaultFence = md.renderer.rules.fence || ((tokens, idx, _options) => {
122
135
  const token = tokens[idx];
123
- return `<pre><code class="language-${token.info}">${token.content}</code></pre>`;
136
+ return `<pre><code class="language-${escapeHtml(token.info)}">${escapeHtml(token.content)}</code></pre>`;
124
137
  });
125
138
  md.renderer.rules.fence = ((tokens, idx, _options, _env, _self) => {
126
139
  const token = tokens[idx];
@@ -173,7 +186,7 @@ function addContainers(md) {
173
186
  render: ((tokens, idx, _options) => {
174
187
  if (tokens[idx].nesting === 1) {
175
188
  const info = tokens[idx].info?.trim() || '';
176
- const title = info.slice(type.length).trim() || type.charAt(0).toUpperCase() + type.slice(1);
189
+ const title = escapeHtml(info.slice(type.length).trim() || type.charAt(0).toUpperCase() + type.slice(1));
177
190
  return `<div class="custom-container ${type}">\n<p class="custom-container-title">${title}</p>\n`;
178
191
  }
179
192
  return '</div>\n';
@@ -186,7 +199,7 @@ function addContainers(md) {
186
199
  render: ((tokens, idx, _options) => {
187
200
  if (tokens[idx].nesting === 1) {
188
201
  const info = tokens[idx].info?.trim() || '';
189
- const summary = info.slice(7).trim() || 'Details';
202
+ const summary = escapeHtml(info.slice(7).trim() || 'Details');
190
203
  return `<details>\n<summary>${summary}</summary>\n`;
191
204
  }
192
205
  return '</details>\n';
@@ -198,6 +211,9 @@ function addContainers(md) {
198
211
  */
199
212
  function createMarkdownParser(options = {}) {
200
213
  const md = new markdown_it_1.default({
214
+ // SECURITY NOTE: html:true allows raw HTML in markdown, which is required
215
+ // for full GFM compatibility. When processing untrusted input, consider
216
+ // sanitising the output with a library like DOMPurify before rendering.
201
217
  html: true,
202
218
  xhtmlOut: true,
203
219
  breaks: true,
@@ -211,9 +227,7 @@ function createMarkdownParser(options = {}) {
211
227
  // Anchor plugin for headers
212
228
  md.use(markdown_it_anchor_1.default, {
213
229
  level: [1, 2, 3, 4, 5, 6],
214
- permalink: markdown_it_anchor_1.default.permalink.headerLink({
215
- safariReaderFix: true,
216
- }),
230
+ permalink: false,
217
231
  slugify: (s) => s
218
232
  .toLowerCase()
219
233
  .trim()
@@ -244,6 +258,8 @@ function createMarkdownParser(options = {}) {
244
258
  // Custom attributes
245
259
  md.use(markdown_it_attrs_1.default, {
246
260
  allowedAttributes: ['id', 'class', 'style', 'width', 'height'],
261
+ leftDelimiter: '{:',
262
+ rightDelimiter: '}',
247
263
  });
248
264
  // Math support (KaTeX)
249
265
  if (options.math !== false) {
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/parser/markdown-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/parser/markdown-parser.ts"],"names":[],"mappings":"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"}