Skip to content

Commit 0243bf4

Browse files
committed
feat(build): Add UMD build output and document browser runtime usage.
1 parent 536f580 commit 0243bf4

File tree

3 files changed

+49
-5
lines changed

3 files changed

+49
-5
lines changed

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ A jsPDF utility to render Markdown directly into formatted PDFs with custom desi
1010

1111
- [Installation](#installation)
1212
- [Usage](#usage)
13+
- [Browser Runtime Usage](#browser-runtime-usage)
1314
- [API](#api)
1415
- [Examples](#examples)
1516
- [Contributing](#contributing)
@@ -124,6 +125,41 @@ const generatePDF = async () => {
124125
generatePDF();
125126
```
126127

128+
## Browser Runtime Usage
129+
130+
### Option 1: Use with your app bundler (Vite/Webpack/Rollup)
131+
132+
Install dependencies and import from modules as usual:
133+
134+
```ts
135+
import { jsPDF } from 'jspdf';
136+
import autoTable from 'jspdf-autotable';
137+
import { MdTextRender } from 'jspdf-md-renderer';
138+
```
139+
140+
### Option 2: Use directly via script tags (UMD)
141+
142+
Load dependencies first, then load `jspdf-md-renderer` UMD bundle.
143+
144+
```html
145+
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
146+
<script src="https://cdn.jsdelivr.net/npm/jspdf@latest/dist/jspdf.umd.min.js"></script>
147+
<script src="https://cdn.jsdelivr.net/npm/jspdf-autotable@latest/dist/jspdf.plugin.autotable.min.js"></script>
148+
<script src="https://cdn.jsdelivr.net/npm/jspdf-md-renderer@latest/dist/index.umd.js"></script>
149+
<script>
150+
const { jsPDF } = window.jspdf;
151+
const { MdTextRender } = window.JspdfMdRenderer;
152+
153+
(async () => {
154+
const doc = new jsPDF();
155+
await MdTextRender(doc, '# Hello from browser runtime');
156+
doc.save('browser-runtime.pdf');
157+
})();
158+
</script>
159+
```
160+
161+
> Note: For script-tag usage you must include `marked`, `jspdf`, and `jspdf-autotable` before the renderer bundle.
162+
127163
## API
128164

129165
### `MdTextRender`

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,7 @@
6464
"typescript-eslint": "^8.56.0",
6565
"vite": "^7.3.1",
6666
"vite-plugin-dts": "^4.5.3"
67-
}
67+
},
68+
"unpkg": "dist/index.umd.js",
69+
"jsdelivr": "dist/index.umd.js"
6870
}

vite.config.mts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,21 @@ export default defineConfig({
66
build: {
77
lib: {
88
entry: resolve(__dirname, 'src/index.ts'),
9-
formats: ['es', 'cjs'],
10-
fileName: (format) => `index.${format === 'es' ? 'mjs' : 'js'}`,
9+
name: 'JspdfMdRenderer',
10+
formats: ['es', 'cjs', 'umd'],
11+
fileName: (format) => {
12+
if (format === 'es') return 'index.mjs';
13+
if (format === 'cjs') return 'index.js';
14+
return 'index.umd.js';
15+
},
1116
},
1217
rollupOptions: {
13-
external: ['jspdf', 'marked'],
18+
external: ['jspdf', 'marked', 'jspdf-autotable'],
1419
output: {
1520
globals: {
16-
jspdf: 'jsPDF',
21+
jspdf: 'jspdf',
1722
marked: 'marked',
23+
'jspdf-autotable': 'jspdfAutoTable',
1824
},
1925
},
2026
},

0 commit comments

Comments
 (0)