render-tag 0.1.0 → 0.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # render-tag
2
2
 
3
- Render HTML rich text onto a canvas element using pure 2D canvas API. No SVG, no `foreignObject` — just `fillText`, `measureText`, and drawing primitives.
3
+ Render HTML rich text onto canvas with the 2D API. No SVG, no `foreignObject` — just `fillText`, `measureText`, and drawing primitives.
4
4
 
5
5
  **Website & demos:** [https://polotno.com/render-tag/](https://polotno.com/render-tag/)
6
6
 
@@ -8,6 +8,8 @@ Render HTML rich text onto a canvas element using pure 2D canvas API. No SVG, no
8
8
 
9
9
  Browsers can render HTML into canvas via SVG `foreignObject`, but it's slow (~100ms) and inconsistent across browsers. `render-tag` parses your HTML, resolves styles via `getComputedStyle`, then lays out and draws everything with canvas 2D calls. It's **10-60x faster** than SVG-based approaches.
10
10
 
11
+ By design, render-tag focuses on **rich text only** — paragraphs, headings, lists, tables, inline formatting. It is not designed for interactive elements (buttons, inputs, iframes) or complex HTML layouts. This focus is what makes it fast.
12
+
11
13
  ## Install
12
14
 
13
15
  ```bash
@@ -17,85 +19,145 @@ npm install render-tag
17
19
  ## Usage
18
20
 
19
21
  ```typescript
20
- import { renderHTML } from 'render-tag';
22
+ import { render } from 'render-tag';
21
23
 
22
- const { canvas, height } = renderHTML(
23
- '<p>Hello <strong>world</strong></p>',
24
- { width: 400 }
25
- );
24
+ const { canvas, height } = render({
25
+ html: '<p>Hello <strong>world</strong></p>',
26
+ width: 400,
27
+ });
26
28
 
27
29
  document.body.appendChild(canvas);
28
30
  ```
29
31
 
30
32
  ### With CSS
31
33
 
34
+ Include `<style>` tags in your HTML string:
35
+
32
36
  ```typescript
33
- const { canvas } = renderHTML(
34
- '<p class="title">Styled text</p>',
35
- {
36
- width: 600,
37
- css: `
37
+ const { canvas } = render({
38
+ html: `
39
+ <style>
38
40
  .title {
39
41
  font-family: Georgia, serif;
40
42
  font-size: 24px;
41
43
  color: #1a1a1a;
42
44
  }
43
- `,
44
- }
45
- );
45
+ </style>
46
+ <p class="title">Styled text</p>
47
+ `,
48
+ width: 600,
49
+ });
46
50
  ```
47
51
 
48
- ### With web fonts
52
+ ### Font loading
53
+
54
+ `render` is **synchronous** and does not load fonts. You must ensure fonts are loaded before calling it. If a font isn't loaded, the browser falls back to a default font and text metrics will be wrong.
49
55
 
50
56
  ```typescript
51
- const { canvas } = renderHTML(
52
- '<p>Custom font text</p>',
53
- {
54
- width: 500,
55
- css: `
56
- @font-face {
57
- font-family: 'MyFont';
58
- src: url('https://example.com/font.woff2') format('woff2');
59
- }
60
- p { font-family: 'MyFont', sans-serif; font-size: 18px; }
61
- `,
62
- }
63
- );
57
+ // Load fonts before rendering
58
+ await document.fonts.load('400 16px "Roboto"');
59
+ await document.fonts.load('700 16px "Roboto"');
60
+
61
+ // Now render — fonts are guaranteed to be available
62
+ const { canvas } = render({ html, width: 500 });
63
+
64
+ // Re-render if fonts load later
65
+ document.fonts.onloadingdone = () => {
66
+ render({ html, width: 500 });
67
+ };
64
68
  ```
65
69
 
70
+ You do **not** need to pass `@font-face` rules separately. As long as fonts are loaded in the document (via `<link>`, `@font-face` in a stylesheet, or the CSS Font Loading API), `render` can use them.
71
+
66
72
  ### High-DPI / Retina
67
73
 
74
+ `pixelRatio` defaults to `devicePixelRatio`, so HiDPI displays are sharp out of the box. Override if needed:
75
+
68
76
  ```typescript
69
- const { canvas } = renderHTML(html, {
70
- width: 600,
71
- pixelRatio: window.devicePixelRatio,
72
- });
77
+ const { canvas } = render({ html, width: 600, pixelRatio: 1 });
73
78
  ```
74
79
 
75
80
  ### Render onto existing canvas
76
81
 
77
82
  ```typescript
78
83
  const canvas = document.getElementById('my-canvas');
79
- renderHTML(html, { canvas, width: 800, height: 600 });
84
+ render({ html, canvas, width: 800, height: 600 });
85
+ ```
86
+
87
+ ### Render onto existing context
88
+
89
+ Draw directly onto a context you control (no canvas resizing or scaling):
90
+
91
+ ```typescript
92
+ const ctx = myCanvas.getContext('2d');
93
+ render({ html, ctx, width: 400 });
80
94
  ```
81
95
 
96
+ This is useful for compositing multiple renders onto one canvas or rendering onto an `OffscreenCanvas`.
97
+
82
98
  ## API
83
99
 
84
- ### `renderHTML(html, options): RenderResult`
100
+ ### `render(config): RenderResult`
101
+
102
+ All-in-one: compute layout and draw in a single call.
85
103
 
86
104
  | Option | Type | Default | Description |
87
105
  |---|---|---|---|
106
+ | `html` | `string` | *required* | HTML string to render (include `<style>` tags for CSS) |
88
107
  | `width` | `number` | *required* | Layout width in CSS pixels |
89
108
  | `height` | `number` | auto | Fixed height (auto-sized from content if omitted) |
90
- | `css` | `string` | `''` | CSS stylesheet (supports `@font-face`, classes, selectors) |
91
- | `canvas` | `HTMLCanvasElement` | created | Target canvas element |
92
- | `pixelRatio` | `number` | `1` | Device pixel ratio for sharp rendering |
93
- | `useDomMeasurements` | `boolean` | `true` | Use DOM probes for cross-browser line height accuracy. Disable for DOM-free rendering (pure canvas). |
109
+ | `ctx` | `CanvasRenderingContext2D` | | Existing context to draw onto (no resizing/scaling) |
110
+ | `canvas` | `HTMLCanvasElement \| OffscreenCanvas` | created | Target canvas element (mutually exclusive with `ctx`) |
111
+ | `pixelRatio` | `number` | `devicePixelRatio` | Device pixel ratio for sharp rendering |
112
+ | `accuracy` | `'balanced' \| 'performance'` | `'balanced'` | `'balanced'` uses DOM probes for cross-browser line height accuracy. `'performance'` uses pure canvas API only. |
94
113
 
95
- Returns `{ canvas: HTMLCanvasElement, height: number }`.
114
+ Returns `{ canvas, height, layoutRoot, lines }`.
96
115
 
97
116
  The function is **synchronous**. Fonts must be loaded before calling.
98
117
 
118
+ ### `layout(config): LayoutResult`
119
+
120
+ Compute layout without rendering. Use when you need to measure content or render the same layout onto multiple targets.
121
+
122
+ | Option | Type | Default | Description |
123
+ |---|---|---|---|
124
+ | `html` | `string` | *required* | HTML string (include `<style>` tags for CSS) |
125
+ | `width` | `number` | *required* | Layout width in CSS pixels |
126
+ | `height` | `number` | auto | Fixed height (auto-sized from content if omitted) |
127
+ | `accuracy` | `'balanced' \| 'performance'` | `'balanced'` | Measurement accuracy mode |
128
+
129
+ Returns `{ layoutRoot, height, lines }`.
130
+
131
+ ### `drawLayout(config): { canvas }`
132
+
133
+ Draw a pre-computed layout onto a canvas or context.
134
+
135
+ | Option | Type | Default | Description |
136
+ |---|---|---|---|
137
+ | `layout` | `LayoutResult` | *required* | Result from `layout()` |
138
+ | `width` | `number` | *required* | Width used during layout (must match) |
139
+ | `ctx` | `CanvasRenderingContext2D` | — | Existing context to draw onto (no resizing/scaling) |
140
+ | `canvas` | `HTMLCanvasElement \| OffscreenCanvas` | created | Target canvas (mutually exclusive with `ctx`) |
141
+ | `pixelRatio` | `number` | `devicePixelRatio` | Device pixel ratio |
142
+
143
+ ### Example: layout once, draw many
144
+
145
+ ```typescript
146
+ import { layout, drawLayout } from 'render-tag';
147
+
148
+ const result = layout({ html, width: 400 });
149
+ console.log('content height:', result.height);
150
+
151
+ // Draw onto a thumbnail canvas
152
+ drawLayout({ layout: result, width: 400, canvas: thumbnailCanvas });
153
+
154
+ // Draw onto the main canvas
155
+ drawLayout({ layout: result, width: 400, canvas: mainCanvas });
156
+
157
+ // Draw onto an existing context
158
+ drawLayout({ layout: result, width: 400, ctx: offscreenCtx });
159
+ ```
160
+
99
161
  ## What it renders
100
162
 
101
163
  - Paragraphs, headings, divs, spans
@@ -105,7 +167,6 @@ The function is **synchronous**. Fonts must be loaded before calling.
105
167
  - Line height, letter spacing, text alignment (left/center/right/justify)
106
168
  - Ordered and unordered lists with nesting
107
169
  - Inline styles and CSS classes
108
- - `@font-face` web fonts (loaded automatically)
109
170
  - Flexbox layout (row/column)
110
171
  - Table layout (basic)
111
172
  - Text shadows, text stroke, gradient text
@@ -113,6 +174,7 @@ The function is **synchronous**. Fonts must be loaded before calling.
113
174
  - RTL text, CJK characters, emoji
114
175
  - `pre-wrap` whitespace handling
115
176
  - `overflow-wrap: break-word`
177
+ - Soft hyphens (`&shy;`)
116
178
 
117
179
  ## Cross-browser consistency
118
180
 
@@ -130,16 +192,16 @@ li::marker { content: none; font-size: 0; line-height: 0; }
130
192
  .has-emoji { font-kerning: none; }
131
193
  ```
132
194
 
133
- With `useDomMeasurements: true` (the default), the library uses hidden DOM probes to match Firefox's actual line box heights. If you disable DOM measurements (`useDomMeasurements: false`), the CSS above becomes especially important for Firefox consistency.
195
+ With `accuracy: 'balanced'` (the default), the library uses hidden DOM probes to match Firefox's actual line box heights. With `accuracy: 'performance'`, the CSS above becomes especially important for Firefox consistency.
134
196
 
135
197
  ## How it works
136
198
 
137
199
  1. **Parse** HTML with `DOMParser`
138
200
  2. **Resolve styles** via hidden DOM + `getComputedStyle` (CSS cascade for free)
139
- 3. **Layout** with pure canvas `measureText` (block flow, inline wrapping, margin collapsing)
201
+ 3. **Layout** with canvas `measureText` (block flow, inline wrapping, margin collapsing)
140
202
  4. **Render** with canvas 2D API (`fillText`, `fillRect`, `strokeText`, etc.)
141
203
 
142
- Layout is computed from CSS values and canvas text metrics. Optional DOM probes (`useDomMeasurements`) improve cross-browser accuracy for line heights and mixed-font wrapping.
204
+ Style resolution uses a hidden DOM element with `getComputedStyle` to get the full CSS cascade. Layout and rendering are done entirely with the canvas 2D API. Optional DOM probes (`accuracy: 'balanced'`) improve cross-browser accuracy for line heights and mixed-font wrapping.
143
205
 
144
206
  ## Development
145
207
 
package/lib/index.d.ts CHANGED
@@ -1,12 +1,25 @@
1
- import type { RenderOptions, RenderResult, LayoutLine } from './types.js';
2
- export type { RenderOptions, RenderResult, LayoutLine };
3
- /**
4
- * Render an HTML string onto a canvas element using pure 2D canvas API.
5
- * Fonts must already be loaded on the page before calling this function.
6
- *
7
- * @param html - HTML string to render
8
- * @param options - Rendering options (width is required)
9
- * @returns The canvas element and computed content height
1
+ import type { RenderConfig, RenderOptions, RenderResult, LayoutConfig, LayoutResult, DrawConfig, LayoutLine, AnyCanvas } from './types.js';
2
+ export type { RenderConfig, RenderOptions, RenderResult, LayoutConfig, LayoutResult, DrawConfig, LayoutLine };
3
+ /**
4
+ * Compute layout for an HTML string without rendering.
5
+ * Returns a reusable LayoutResult that can be drawn onto multiple targets via drawLayout().
6
+ */
7
+ export declare function layout(config: LayoutConfig): LayoutResult;
8
+ /**
9
+ * Draw a pre-computed layout onto a canvas or context.
10
+ * Use with layout() to render the same content onto multiple targets.
11
+ */
12
+ export declare function drawLayout(config: DrawConfig): {
13
+ canvas: AnyCanvas;
14
+ };
15
+ /**
16
+ * Render an HTML string onto a canvas using pure 2D canvas API.
17
+ * Convenience function combining layout() + drawLayout().
18
+ * Fonts must already be loaded before calling this function.
19
+ */
20
+ export declare function render(config: RenderConfig): RenderResult;
21
+ /**
22
+ * @deprecated Use `render()` instead.
10
23
  */
11
24
  export declare function renderHTML(html: string, options: RenderOptions): RenderResult;
12
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AAMtF,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,YAAY,CAgEd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAAE,aAAa,EAAE,YAAY,EACzC,YAAY,EAAE,YAAY,EAAE,UAAU,EACtC,UAAU,EAAc,SAAS,EAClC,MAAM,YAAY,CAAC;AAMpB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAmC9G;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA6BzD;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAyCpE;AAID;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CA2BzD;AAID;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,YAAY,CAUd"}
package/lib/index.js CHANGED
@@ -2,51 +2,19 @@ import { parseHTML } from './parse.js';
2
2
  import { resolveStyles } from './style-resolver.js';
3
3
  import { buildLayoutTree } from './layout.js';
4
4
  import { renderNode } from './render.js';
5
- /**
6
- * Render an HTML string onto a canvas element using pure 2D canvas API.
7
- * Fonts must already be loaded on the page before calling this function.
8
- *
9
- * @param html - HTML string to render
10
- * @param options - Rendering options (width is required)
11
- * @returns The canvas element and computed content height
12
- */
13
- export function renderHTML(html, options) {
14
- const { width, height, css: extraCSS, pixelRatio = 1, useDomMeasurements = true, debug } = options;
15
- // 1. Parse HTML and extract CSS
16
- const { fragment, css } = parseHTML(html, extraCSS);
17
- // 2. Resolve styles using hidden DOM (getComputedStyle only, no measurements)
18
- const { tree, cleanup } = resolveStyles(fragment, css, width, height);
19
- // 3. Create canvas
20
- const canvas = options.canvas || document.createElement('canvas');
21
- const tmpCanvas = document.createElement('canvas');
22
- const ctx = tmpCanvas.getContext('2d');
23
- ctx.fontKerning = 'normal';
24
- // 4. Build layout tree using pure canvas measurement
25
- const { root, height: contentHeight } = buildLayoutTree(ctx, tree, width, useDomMeasurements, debug);
26
- // 5. Size the output canvas
27
- const finalHeight = height || contentHeight;
28
- canvas.width = Math.ceil(width * pixelRatio);
29
- canvas.height = Math.ceil(finalHeight * pixelRatio);
30
- canvas.style.width = `${width}px`;
31
- canvas.style.height = `${finalHeight}px`;
32
- const renderCtx = canvas.getContext('2d');
33
- renderCtx.scale(pixelRatio, pixelRatio);
34
- // 6. Render to canvas
35
- renderNode(renderCtx, root);
36
- // 7. Extract lines from layout tree — group by Y with tolerance.
37
- // Use fontSize as proxy for height when grouping. Sub/sup text has
38
- // different Y but belongs on the same visual line as parent text.
5
+ // ─── Line extraction ─────────────────────────────────────────────────
6
+ function extractLines(root) {
39
7
  const wordPositions = [];
40
- function walkLines(node) {
8
+ function walk(node) {
41
9
  if (node.type === 'text' && node.text.trim()) {
42
10
  wordPositions.push({ y: node.y, fontSize: node.style.fontSize, text: node.text });
43
11
  }
44
12
  if (node.type === 'box') {
45
13
  for (const child of node.children)
46
- walkLines(child);
14
+ walk(child);
47
15
  }
48
16
  }
49
- walkLines(root);
17
+ walk(root);
50
18
  wordPositions.sort((a, b) => a.y - b.y);
51
19
  const lines = [];
52
20
  let lineMaxFontSize = 0;
@@ -62,8 +30,114 @@ export function renderHTML(html, options) {
62
30
  lineMaxFontSize = wp.fontSize;
63
31
  }
64
32
  }
65
- // 8. Cleanup
33
+ return lines;
34
+ }
35
+ // ─── layout() ────────────────────────────────────────────────────────
36
+ /**
37
+ * Compute layout for an HTML string without rendering.
38
+ * Returns a reusable LayoutResult that can be drawn onto multiple targets via drawLayout().
39
+ */
40
+ export function layout(config) {
41
+ const { html, width, height, accuracy = 'balanced', debug, } = config;
42
+ if (!width || width <= 0 || Number.isNaN(width)) {
43
+ throw new TypeError(`layout: width must be a positive number, got ${width}`);
44
+ }
45
+ const useDomMeasurements = accuracy === 'balanced';
46
+ const { fragment, css } = parseHTML(html);
47
+ const { tree, cleanup } = resolveStyles(fragment, css, width, height);
48
+ const tmpCanvas = document.createElement('canvas');
49
+ const measureCtx = tmpCanvas.getContext('2d');
50
+ measureCtx.fontKerning = 'normal';
51
+ const { root, height: contentHeight } = buildLayoutTree(measureCtx, tree, width, useDomMeasurements, debug);
52
+ const finalHeight = height || contentHeight;
53
+ const lines = extractLines(root);
66
54
  cleanup();
67
- return { canvas, height: finalHeight, layoutRoot: root, lines };
55
+ return { layoutRoot: root, height: finalHeight, lines };
56
+ }
57
+ // ─── drawLayout() ────────────────────────────────────────────────────
58
+ /**
59
+ * Draw a pre-computed layout onto a canvas or context.
60
+ * Use with layout() to render the same content onto multiple targets.
61
+ */
62
+ export function drawLayout(config) {
63
+ const { layout: layoutResult, width, pixelRatio = globalThis.devicePixelRatio ?? 1, } = config;
64
+ if (config.ctx && config.canvas) {
65
+ throw new TypeError('drawLayout: ctx and canvas are mutually exclusive — provide one or neither');
66
+ }
67
+ const finalHeight = layoutResult.height;
68
+ let canvas;
69
+ let renderCtx;
70
+ if (config.ctx) {
71
+ renderCtx = config.ctx;
72
+ canvas = config.ctx.canvas;
73
+ }
74
+ else if (config.canvas) {
75
+ canvas = config.canvas;
76
+ canvas.width = Math.ceil(width * pixelRatio);
77
+ canvas.height = Math.ceil(finalHeight * pixelRatio);
78
+ if ('style' in canvas) {
79
+ canvas.style.width = `${width}px`;
80
+ canvas.style.height = `${finalHeight}px`;
81
+ }
82
+ renderCtx = canvas.getContext('2d');
83
+ renderCtx.scale(pixelRatio, pixelRatio);
84
+ }
85
+ else {
86
+ canvas = document.createElement('canvas');
87
+ canvas.width = Math.ceil(width * pixelRatio);
88
+ canvas.height = Math.ceil(finalHeight * pixelRatio);
89
+ canvas.style.width = `${width}px`;
90
+ canvas.style.height = `${finalHeight}px`;
91
+ renderCtx = canvas.getContext('2d');
92
+ renderCtx.scale(pixelRatio, pixelRatio);
93
+ }
94
+ renderNode(renderCtx, layoutResult.layoutRoot);
95
+ return { canvas };
96
+ }
97
+ // ─── render() ────────────────────────────────────────────────────────
98
+ /**
99
+ * Render an HTML string onto a canvas using pure 2D canvas API.
100
+ * Convenience function combining layout() + drawLayout().
101
+ * Fonts must already be loaded before calling this function.
102
+ */
103
+ export function render(config) {
104
+ if (config.ctx && config.canvas) {
105
+ throw new TypeError('render: ctx and canvas are mutually exclusive — provide one or neither');
106
+ }
107
+ const layoutResult = layout({
108
+ html: config.html,
109
+ width: config.width,
110
+ height: config.height,
111
+ accuracy: config.accuracy,
112
+ debug: config.debug,
113
+ });
114
+ const { canvas } = drawLayout({
115
+ layout: layoutResult,
116
+ width: config.width,
117
+ ctx: config.ctx,
118
+ canvas: config.canvas,
119
+ pixelRatio: config.pixelRatio,
120
+ });
121
+ return {
122
+ canvas,
123
+ height: layoutResult.height,
124
+ layoutRoot: layoutResult.layoutRoot,
125
+ lines: layoutResult.lines,
126
+ };
127
+ }
128
+ // ─── Deprecated ──────────────────────────────────────────────────────
129
+ /**
130
+ * @deprecated Use `render()` instead.
131
+ */
132
+ export function renderHTML(html, options) {
133
+ return render({
134
+ html: options.css ? `<style>${options.css}</style>${html}` : html,
135
+ width: options.width,
136
+ height: options.height,
137
+ canvas: options.canvas,
138
+ pixelRatio: options.pixelRatio ?? 1,
139
+ accuracy: options.useDomMeasurements === false ? 'performance' : 'balanced',
140
+ debug: options.debug,
141
+ });
68
142
  }
69
143
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,SAAS,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAqG/F;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAO5D;AA+0CD;;;GAGG;AACH,wBAAgB,kBAAkB,WAA+B;AACjE,wBAAgB,oBAAoB,SAA4B;AAEhE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,EACtB,kBAAkB,UAAO,EACzB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,UAAU,KAAK,IAAI,GACvD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAcrC"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,SAAS,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAqG/F;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAO5D;AA83CD;;;GAGG;AACH,wBAAgB,kBAAkB,WAA+B;AACjE,wBAAgB,oBAAoB,SAA4B;AAEhE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,EACtB,kBAAkB,UAAO,EACzB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,UAAU,KAAK,IAAI,GACvD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAcrC"}
package/lib/layout.js CHANGED
@@ -309,10 +309,31 @@ function getSegmenter() {
309
309
  function tokenizeString(ctx, text, run, allWords) {
310
310
  // Split on zero-width spaces and soft hyphens (break opportunities)
311
311
  if (text.includes('\u200B') || text.includes('\u00AD')) {
312
- const parts = text.split(/[\u200B\u00AD]/);
312
+ // Split but keep delimiters to distinguish soft hyphens from zero-width spaces
313
+ const parts = text.split(/(\u200B|\u00AD)/);
314
+ let nextIsSoftHyphen = false;
313
315
  for (const part of parts) {
314
- if (part)
315
- tokenizeString(ctx, part, run, allWords);
316
+ if (part === '\u00AD') {
317
+ // Mark the PREVIOUS word as a soft-hyphen break point
318
+ nextIsSoftHyphen = true;
319
+ continue;
320
+ }
321
+ if (part === '\u200B' || part === '') {
322
+ nextIsSoftHyphen = false;
323
+ continue;
324
+ }
325
+ const prevLen = allWords.length;
326
+ tokenizeString(ctx, part, run, allWords);
327
+ // If the previous delimiter was a soft hyphen, mark the word
328
+ // just before this part as having a soft-hyphen break opportunity
329
+ if (nextIsSoftHyphen && prevLen > 0) {
330
+ allWords[prevLen - 1].isSoftHyphenBreak = true;
331
+ }
332
+ nextIsSoftHyphen = false;
333
+ }
334
+ // If the text ends with a soft hyphen, mark the last word
335
+ if (nextIsSoftHyphen && allWords.length > 0) {
336
+ allWords[allWords.length - 1].isSoftHyphenBreak = true;
316
337
  }
317
338
  return;
318
339
  }
@@ -509,7 +530,7 @@ function isCJK(char) {
509
530
  function breakWordIfNeeded(ctx, word, contentWidth, currentLineWidth) {
510
531
  // Check if word has CJK characters — always break at character level
511
532
  const hasCJK = [...word.text].some(isCJK);
512
- // Check if word needs break-word splitting
533
+ // Check if word needs break-word splitting — when it won't fit on a fresh line
513
534
  const needsBreak = word.width > contentWidth &&
514
535
  (word.style.overflowWrap === 'break-word' || word.style.wordBreak === 'break-all');
515
536
  if (!hasCJK && !needsBreak)
@@ -555,13 +576,29 @@ function flowWordsIntoLines(ctx, words, contentWidth, whiteSpace, useBulletProbe
555
576
  let currentLine = { words: [], totalWidth: 0, lineHeight: 0 };
556
577
  const noWrap = whiteSpace === 'nowrap' || whiteSpace === 'pre';
557
578
  const isPreWrap = whiteSpace === 'pre-wrap' || whiteSpace === 'pre' || whiteSpace === 'pre-line';
558
- function pushLine() {
579
+ function pushLine(isSoftWrap = false) {
559
580
  const hadWords = currentLine.words.length > 0;
560
581
  // Trim trailing spaces
561
582
  while (currentLine.words.length > 0 && currentLine.words[currentLine.words.length - 1].isSpace) {
562
583
  currentLine.totalWidth -= currentLine.words[currentLine.words.length - 1].width;
563
584
  currentLine.words.pop();
564
585
  }
586
+ // Soft hyphen: if this is a soft wrap and the last word has a soft-hyphen
587
+ // break, append a visible '-' since the word is being broken here.
588
+ if (isSoftWrap && currentLine.words.length > 0) {
589
+ const lastWord = currentLine.words[currentLine.words.length - 1];
590
+ if (lastWord.isSoftHyphenBreak) {
591
+ applyFont(ctx, lastWord.style);
592
+ const hyphenWidth = ctx.measureText('-').width;
593
+ currentLine.words.push({
594
+ text: '-',
595
+ width: hyphenWidth,
596
+ style: lastWord.style,
597
+ isSpace: false,
598
+ });
599
+ currentLine.totalWidth += hyphenWidth;
600
+ }
601
+ }
565
602
  // In pre-wrap mode, space-only lines still need height (they are content)
566
603
  if (currentLine.words.length > 0 || (hadWords && isPreWrap)) {
567
604
  if (_debug) {
@@ -609,8 +646,14 @@ function flowWordsIntoLines(ctx, words, contentWidth, whiteSpace, useBulletProbe
609
646
  ? breakWordIfNeeded(ctx, word, contentWidth, currentLine.totalWidth)
610
647
  : [word];
611
648
  for (const piece of pieces) {
649
+ // Trailing punctuation (e.g. comma after </span>) should not wrap
650
+ // independently — browsers keep it with the preceding word.
651
+ const isTrailingPunct = !piece.isSpace && piece.text.length > 0 &&
652
+ /^[,.\;:!?\)\]\}'"»›]+$/.test(piece.text) &&
653
+ currentLine.words.length > 0 &&
654
+ !currentLine.words[currentLine.words.length - 1].isSpace;
612
655
  // Would this piece overflow?
613
- if (!piece.isSpace && currentLine.words.length > 0 &&
656
+ if (!piece.isSpace && !isTrailingPunct && currentLine.words.length > 0 &&
614
657
  currentLine.totalWidth + piece.width > contentWidth) {
615
658
  const overflow = currentLine.totalWidth + piece.width - contentWidth;
616
659
  // For borderline cases (overflow < 1px), word-by-word delta
@@ -638,7 +681,7 @@ function flowWordsIntoLines(ctx, words, contentWidth, whiteSpace, useBulletProbe
638
681
  data: { text: piece.text, overflow, lineWidth: currentLine.totalWidth, pieceWidth: piece.width, contentWidth, lineText },
639
682
  });
640
683
  }
641
- pushLine();
684
+ pushLine(true);
642
685
  afterHardBreak = false;
643
686
  }
644
687
  }
@@ -662,7 +705,7 @@ function flowWordsIntoLines(ctx, words, contentWidth, whiteSpace, useBulletProbe
662
705
  data: { text: piece.text, remaining, domWidth, contentWidth },
663
706
  });
664
707
  }
665
- pushLine();
708
+ pushLine(true);
666
709
  afterHardBreak = false;
667
710
  }
668
711
  }
package/lib/layout.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
package/lib/parse.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Parse HTML string and extract inline <style> blocks.
3
3
  * Returns the content element and combined CSS text.
4
4
  */
5
- export declare function parseHTML(html: string, extraCSS?: string): {
5
+ export declare function parseHTML(html: string): {
6
6
  fragment: DocumentFragment;
7
7
  css: string;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAuBtG"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAmBnF"}
package/lib/parse.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Parse HTML string and extract inline <style> blocks.
3
3
  * Returns the content element and combined CSS text.
4
4
  */
5
- export function parseHTML(html, extraCSS) {
5
+ export function parseHTML(html) {
6
6
  const parser = new DOMParser();
7
7
  const doc = parser.parseFromString(html, 'text/html');
8
8
  // Extract all <style> tag contents
@@ -12,9 +12,6 @@ export function parseHTML(html, extraCSS) {
12
12
  css += tag.textContent + '\n';
13
13
  tag.remove();
14
14
  }
15
- if (extraCSS) {
16
- css = extraCSS + '\n' + css;
17
- }
18
15
  // Move body children into a fragment
19
16
  const fragment = document.createDocumentFragment();
20
17
  while (doc.body.firstChild) {
package/lib/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,QAAiB;IACvD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEtD,mCAAmC;IACnC,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAC9B,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACnD,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEtD,mCAAmC;IACnC,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACnD,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC3B,CAAC"}
package/lib/types.d.ts CHANGED
@@ -1,28 +1,91 @@
1
- export interface RenderOptions {
2
- /** Target canvas element (created if not provided) */
3
- canvas?: HTMLCanvasElement;
1
+ export type AnyCanvas = HTMLCanvasElement | OffscreenCanvas;
2
+ export type AnyContext = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
3
+ export interface RenderConfig {
4
+ /** HTML string to render (include <style> tags for CSS) */
5
+ html: string;
4
6
  /** Width of the rendering area in CSS pixels */
5
7
  width: number;
6
- /** Height of the rendering area in CSS pixels (auto-sized if not set) */
8
+ /** Height of the rendering area in CSS pixels (auto-sized from content if omitted) */
7
9
  height?: number;
8
- /** Additional CSS to apply */
9
- css?: string;
10
- /** Device pixel ratio (default: 1) */
10
+ /**
11
+ * Existing 2D rendering context to draw onto.
12
+ * When provided, render-tag draws directly onto this context without resizing the canvas.
13
+ * Mutually exclusive with `canvas`.
14
+ */
15
+ ctx?: AnyContext;
16
+ /**
17
+ * Target canvas element (created if not provided).
18
+ * Mutually exclusive with `ctx`.
19
+ */
20
+ canvas?: AnyCanvas;
21
+ /** Device pixel ratio (default: globalThis.devicePixelRatio ?? 1) */
11
22
  pixelRatio?: number;
12
23
  /**
13
- * Use DOM measurements for improved cross-browser consistency (default: true).
14
- * When enabled, uses hidden DOM elements to measure line heights and verify
15
- * text wrapping at font boundaries. When disabled, uses pure canvas API
16
- * measurements only faster and DOM-free, but may have slight differences
17
- * across browsers (e.g. Firefox list item heights).
24
+ * Measurement accuracy mode (default: 'balanced').
25
+ * - 'balanced' uses DOM probes for cross-browser consistent line heights
26
+ * and wrap verification. Best quality.
27
+ * - 'performance' — pure canvas API measurements only. Faster and DOM-free,
28
+ * but may have slight differences across browsers (e.g. Firefox list item heights).
18
29
  */
19
- useDomMeasurements?: boolean;
30
+ accuracy?: 'balanced' | 'performance';
20
31
  /**
21
32
  * Debug callback for layout diagnostics. Receives structured log entries
22
33
  * during text measurement, wrapping decisions, and positioning.
23
34
  */
24
35
  debug?: (entry: DebugEntry) => void;
25
36
  }
37
+ export interface LayoutConfig {
38
+ /** HTML string to render (include <style> tags for CSS) */
39
+ html: string;
40
+ /** Width of the rendering area in CSS pixels */
41
+ width: number;
42
+ /** Height override in CSS pixels (auto-sized from content if omitted) */
43
+ height?: number;
44
+ /**
45
+ * Measurement accuracy mode (default: 'balanced').
46
+ * - 'balanced' — uses DOM probes for cross-browser consistent line heights.
47
+ * - 'performance' — pure canvas API measurements only.
48
+ */
49
+ accuracy?: 'balanced' | 'performance';
50
+ /** Debug callback for layout diagnostics */
51
+ debug?: (entry: DebugEntry) => void;
52
+ }
53
+ export interface LayoutResult {
54
+ /** The layout tree root */
55
+ layoutRoot: LayoutBox;
56
+ /** Content height in CSS pixels */
57
+ height: number;
58
+ /** Text lines grouped by Y coordinate */
59
+ lines: LayoutLine[];
60
+ }
61
+ export interface DrawConfig {
62
+ /** Layout result from layout() */
63
+ layout: LayoutResult;
64
+ /** Width used during layout (must match) */
65
+ width: number;
66
+ /**
67
+ * Existing 2D rendering context to draw onto.
68
+ * No resizing or scaling applied. Mutually exclusive with `canvas`.
69
+ */
70
+ ctx?: AnyContext;
71
+ /**
72
+ * Target canvas element (created if not provided).
73
+ * Mutually exclusive with `ctx`.
74
+ */
75
+ canvas?: AnyCanvas;
76
+ /** Device pixel ratio (default: globalThis.devicePixelRatio ?? 1) */
77
+ pixelRatio?: number;
78
+ }
79
+ /** @deprecated Use RenderConfig instead */
80
+ export interface RenderOptions {
81
+ canvas?: HTMLCanvasElement;
82
+ width: number;
83
+ height?: number;
84
+ css?: string;
85
+ pixelRatio?: number;
86
+ useDomMeasurements?: boolean;
87
+ debug?: (entry: DebugEntry) => void;
88
+ }
26
89
  export interface DebugEntry {
27
90
  type: 'measure-word' | 'line-wrap' | 'line-commit' | 'position-text';
28
91
  /** Human-readable description */
@@ -38,12 +101,13 @@ export interface LayoutLine {
38
101
  text: string;
39
102
  }
40
103
  export interface RenderResult {
41
- canvas: HTMLCanvasElement;
42
- /** Actual content height after layout */
104
+ /** The canvas that was rendered onto */
105
+ canvas: AnyCanvas;
106
+ /** Content height in CSS pixels after layout */
43
107
  height: number;
44
- /** The layout tree root (for debugging/comparison) */
108
+ /** The layout tree root — stable API for inspection and testing */
45
109
  layoutRoot: LayoutBox;
46
- /** Text lines extracted from the layout tree, grouped by Y coordinate */
110
+ /** Text lines grouped by Y coordinate — stable API */
47
111
  lines: LayoutLine[];
48
112
  }
49
113
  /** Resolved style for a single element — all values in px / concrete strings */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-tag",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "description": "Render HTML rich text onto canvas using pure 2D API",
6
6
  "main": "./lib/index.js",
@@ -18,12 +18,12 @@
18
18
  "README.md"
19
19
  ],
20
20
  "scripts": {
21
- "dev": "vite",
21
+ "dev": "vite --config docs/vite.config.ts",
22
22
  "test": "vitest run tests/render.test.ts",
23
+ "test:update-baselines": "vitest run tests/generate-baselines.test.ts",
23
24
  "test:stress": "vitest run tests/stress.test.ts",
24
25
  "test:firefox": "vitest run tests/render.test.ts -c vitest.firefox.config.ts",
25
26
  "build": "tsc",
26
- "docs": "vite --config docs/vite.config.ts",
27
27
  "docs:build": "vite build --config docs/vite.config.ts"
28
28
  },
29
29
  "devDependencies": {