@franken-suite/franken-markdown 0.3.2 → 0.4.2

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.
@@ -12,7 +12,7 @@ export interface FmdDiagnostic {
12
12
  export interface FmdPdfImageAsset {
13
13
  /** Markdown image destination, for example `images/chart.png` from `![Chart](images/chart.png)`. */
14
14
  destination: string;
15
- /** Browser-supplied image bytes. PNG and SVG assets are supported in PDF output. */
15
+ /** Browser-supplied image bytes. PNG and SVG are supported in HTML and PDF output. */
16
16
  bytes: Uint8Array | ArrayBuffer | ArrayBufferView;
17
17
  }
18
18
 
@@ -28,6 +28,12 @@ export interface FmdFontAsset {
28
28
  slot: FmdFontAssetSlot;
29
29
  /** Browser-supplied TrueType font bytes. */
30
30
  bytes: Uint8Array | ArrayBuffer | ArrayBufferView;
31
+ /**
32
+ * Optional CSS `font-weight` pin (integer 1..=1000) for variable `wght` faces.
33
+ * Static faces ignore the pin. When `body-bold` is omitted and `body-regular`
34
+ * is a variable face, bold instances from that same file at 700 (or this pin).
35
+ */
36
+ weight?: number;
31
37
  }
32
38
 
33
39
  export interface FmdRenderOptions {
@@ -40,7 +46,19 @@ export interface FmdRenderOptions {
40
46
  /** Finite non-negative integer seconds, <= Number.MAX_SAFE_INTEGER. */
41
47
  metadataEpochSeconds?: number;
42
48
  codeLineNumbers?: boolean;
43
- /** Host-supplied PDF image bytes; any number of assets may be supplied per render call. */
49
+ /** Render running page numbers in the bottom margin of PDF pages. */
50
+ pageNumbers?: boolean;
51
+ /** Base body size override in points (clamped by the core to [6, 24]). */
52
+ baseFontSize?: number;
53
+ /** Uniform typographic scale factor (e.g. 1.125 = 112.5% / Large) or preset name ('xs' | 'sm' | 'compact' | 'md' | 'lg' | 'xl' | '2xl' | 'huge'). Scales both HTML and PDF uniformly. */
54
+ fontScale?: number | string;
55
+ /** Alias for fontScale. */
56
+ typeSize?: number | string;
57
+ /** Per-step heading ratio, e.g. 1.25 (Major Third); clamped to [1.05, 2]. */
58
+ headingScale?: number;
59
+ /** Nominal table cell size override in points; clamped to [5, base]. */
60
+ tableFontSize?: number;
61
+ /** Host-supplied image bytes (HTML data URIs and PDF embedding); any number per render. */
44
62
  pdfImages?: FmdPdfImageAsset[];
45
63
  /** Host-supplied TrueType font bytes by renderer slot. */
46
64
  fontAssets?: FmdFontAsset[];
@@ -66,13 +84,16 @@ export interface FmdCapabilities {
66
84
  mime_type: "text/html; charset=utf-8";
67
85
  self_contained: boolean;
68
86
  custom_css_utf8: boolean;
87
+ image_assets: "png_svg_v0_host_supplied_bytes";
69
88
  font_assets: "ttf_v0_host_supplied_bytes";
89
+ font_slot_weight: "css_1_to_1000_variable_wght";
70
90
  };
71
91
  pdf: {
72
92
  mime_type: "application/pdf";
73
93
  deterministic_metadata_epoch: boolean;
74
94
  image_assets: "png_svg_v0_host_supplied_bytes";
75
95
  font_assets: "ttf_v0_host_supplied_bytes";
96
+ font_slot_weight: "css_1_to_1000_variable_wght";
76
97
  };
77
98
  diagnostics: {
78
99
  source_spans: "byte_offsets";
@@ -2,6 +2,7 @@ import initWasm, {
2
2
  capabilities as wasmCapabilities,
3
3
  renderHtmlConfigured,
4
4
  renderHtmlConfiguredWithFonts,
5
+ renderHtmlConfiguredMulti,
5
6
  renderPdfConfiguredMulti
6
7
  } from "./pkg/franken_markdown.js";
7
8
 
@@ -26,7 +27,38 @@ export async function capabilities() {
26
27
 
27
28
  export async function renderHtml(markdown, options = {}) {
28
29
  await init();
30
+ const pdfImages = pdfImagesOption(options.pdfImages);
29
31
  const fontAssets = fontAssetsOption(options.fontAssets);
32
+ if (pdfImages.length > 0) {
33
+ const destinations = pdfImages.map((image) => image.destination);
34
+ const lengths = new Uint32Array(pdfImages.map((image) => image.bytes.length));
35
+ const totalBytes = pdfImages.reduce((sum, image) => sum + image.bytes.length, 0);
36
+ const flatBytes = new Uint8Array(totalBytes);
37
+ let offset = 0;
38
+ for (const image of pdfImages) {
39
+ flatBytes.set(image.bytes, offset);
40
+ offset += image.bytes.length;
41
+ }
42
+ return normalizeResult(
43
+ renderHtmlConfiguredMulti(
44
+ String(markdown),
45
+ stringOption(options.font),
46
+ darkModeOption(options.darkMode),
47
+ verbatimOption(options.title),
48
+ verbatimOption(options.customCss),
49
+ Boolean(options.allowRawHtml),
50
+ fontBytesForSlot(fontAssets, "body-regular"),
51
+ fontBytesForSlot(fontAssets, "body-bold"),
52
+ fontBytesForSlot(fontAssets, "body-italic"),
53
+ fontBytesForSlot(fontAssets, "body-bold-italic"),
54
+ fontBytesForSlot(fontAssets, "mono-regular"),
55
+ fontWeightsForSlots(fontAssets),
56
+ destinations,
57
+ flatBytes,
58
+ lengths
59
+ )
60
+ );
61
+ }
30
62
  if (fontAssets.length > 0) {
31
63
  return normalizeResult(
32
64
  renderHtmlConfiguredWithFonts(
@@ -40,7 +72,8 @@ export async function renderHtml(markdown, options = {}) {
40
72
  fontBytesForSlot(fontAssets, "body-bold"),
41
73
  fontBytesForSlot(fontAssets, "body-italic"),
42
74
  fontBytesForSlot(fontAssets, "body-bold-italic"),
43
- fontBytesForSlot(fontAssets, "mono-regular")
75
+ fontBytesForSlot(fontAssets, "mono-regular"),
76
+ fontWeightsForSlots(fontAssets)
44
77
  )
45
78
  );
46
79
  }
@@ -91,7 +124,12 @@ export async function renderPdf(markdown, options = {}) {
91
124
  fontBytesForSlot(fontAssets, "body-bold"),
92
125
  fontBytesForSlot(fontAssets, "body-italic"),
93
126
  fontBytesForSlot(fontAssets, "body-bold-italic"),
94
- fontBytesForSlot(fontAssets, "mono-regular")
127
+ fontBytesForSlot(fontAssets, "mono-regular"),
128
+ fontWeightsForSlots(fontAssets),
129
+ numberOption(options.baseFontSize),
130
+ numberOption(options.headingScale),
131
+ numberOption(options.tableFontSize),
132
+ Boolean(options.pageNumbers)
95
133
  )
96
134
  );
97
135
  }
@@ -214,6 +252,21 @@ function epochOption(value) {
214
252
  return epoch;
215
253
  }
216
254
 
255
+
256
+ /**
257
+ * Coerce an optional typography override to a finite number for the core
258
+ * ABI. Non-finite values are rejected here so the Rust-side deterministic
259
+ * clamps only ever see well-formed input.
260
+ */
261
+ function numberOption(value) {
262
+ if (value === undefined || value === null) {
263
+ return undefined;
264
+ }
265
+ if (typeof value !== "number" || !Number.isFinite(value)) {
266
+ throw new TypeError("typography overrides must be finite numbers");
267
+ }
268
+ return value;
269
+ }
217
270
  function pdfImagesOption(value) {
218
271
  if (value === undefined || value === null) {
219
272
  return [];
@@ -255,7 +308,8 @@ function fontAssetsOption(value) {
255
308
  if (bytes.byteLength === 0) {
256
309
  throw new TypeError(`fontAssets[${index}].bytes must not be empty`);
257
310
  }
258
- return Object.freeze({ slot, bytes });
311
+ const weight = fontWeightOption(asset.weight, `fontAssets[${index}].weight`);
312
+ return Object.freeze({ slot, bytes, weight });
259
313
  });
260
314
  }
261
315
 
@@ -281,6 +335,30 @@ function fontBytesForSlot(assets, slot) {
281
335
  return asset === undefined ? new Uint8Array() : asset.bytes;
282
336
  }
283
337
 
338
+ function fontWeightsForSlots(assets) {
339
+ const slots = [
340
+ "body-regular",
341
+ "body-bold",
342
+ "body-italic",
343
+ "body-bold-italic",
344
+ "mono-regular"
345
+ ];
346
+ return Uint32Array.from(slots, (slot) => {
347
+ const asset = assets.find((entry) => entry.slot === slot);
348
+ return asset === undefined || asset.weight === undefined ? 0 : asset.weight;
349
+ });
350
+ }
351
+
352
+ function fontWeightOption(value, label) {
353
+ if (value === undefined || value === null) {
354
+ return undefined;
355
+ }
356
+ if (typeof value !== "number" || !Number.isInteger(value) || value < 1 || value > 1000) {
357
+ throw new TypeError(`${label} must be an integer 1..=1000`);
358
+ }
359
+ return value;
360
+ }
361
+
284
362
  function bytesOption(value, label) {
285
363
  if (value instanceof Uint8Array) {
286
364
  return value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@franken-suite/franken-markdown",
3
- "version": "0.3.2",
3
+ "version": "0.4.2",
4
4
  "description": "Browser/WASM package for franken_markdown Markdown to HTML/PDF rendering.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -55,6 +55,17 @@ export function renderHtml(markdown: string): FmdRenderResult;
55
55
  */
56
56
  export function renderHtmlConfigured(markdown: string, font: string | null | undefined, dark_mode: string | null | undefined, title: string | null | undefined, custom_css: string | null | undefined, allow_raw_html: boolean): FmdRenderResult;
57
57
 
58
+ /**
59
+ * Render Markdown to self-contained HTML with fonts and any number of host
60
+ * image assets (data-URI inlined). Parallel image arrays match the PDF multi
61
+ * ABI so the JS wrapper can share flattening.
62
+ *
63
+ * # Errors
64
+ * Returns a JavaScript error when the image arrays are inconsistent, an option
65
+ * is invalid, or rendering fails.
66
+ */
67
+ export function renderHtmlConfiguredMulti(markdown: string, font: string | null | undefined, dark_mode: string | null | undefined, title: string | null | undefined, custom_css: string | null | undefined, allow_raw_html: boolean, body_regular: Uint8Array, body_bold: Uint8Array, body_italic: Uint8Array, body_bold_italic: Uint8Array, mono_regular: Uint8Array, font_weights: Uint32Array, image_destinations: string[], image_bytes_flat: Uint8Array, image_bytes_lengths: Uint32Array): FmdRenderResult;
68
+
58
69
  /**
59
70
  * Render Markdown to self-contained HTML with browser package options and
60
71
  * caller-supplied font bytes.
@@ -64,7 +75,7 @@ export function renderHtmlConfigured(markdown: string, font: string | null | und
64
75
  * # Errors
65
76
  * Returns a JavaScript error when options are invalid or rendering fails.
66
77
  */
67
- export function renderHtmlConfiguredWithFonts(markdown: string, font: string | null | undefined, dark_mode: string | null | undefined, title: string | null | undefined, custom_css: string | null | undefined, allow_raw_html: boolean, body_regular: Uint8Array, body_bold: Uint8Array, body_italic: Uint8Array, body_bold_italic: Uint8Array, mono_regular: Uint8Array): FmdRenderResult;
78
+ export function renderHtmlConfiguredWithFonts(markdown: string, font: string | null | undefined, dark_mode: string | null | undefined, title: string | null | undefined, custom_css: string | null | undefined, allow_raw_html: boolean, body_regular: Uint8Array, body_bold: Uint8Array, body_italic: Uint8Array, body_bold_italic: Uint8Array, mono_regular: Uint8Array, font_weights: Uint32Array): FmdRenderResult;
68
79
 
69
80
  /**
70
81
  * Render Markdown to PDF using default browser-safe options.
@@ -97,7 +108,7 @@ export function renderPdfConfigured(markdown: string, font: string | null | unde
97
108
  * Returns a JavaScript error when the image arrays are inconsistent, an option
98
109
  * is invalid, or rendering fails.
99
110
  */
100
- export function renderPdfConfiguredMulti(markdown: string, font: string | null | undefined, dark_mode: string | null | undefined, title: string | null | undefined, author: string | null | undefined, metadata_epoch_seconds: number | null | undefined, allow_raw_html: boolean, code_line_numbers: boolean, image_destinations: string[], image_bytes_flat: Uint8Array, image_bytes_lengths: Uint32Array, body_regular: Uint8Array, body_bold: Uint8Array, body_italic: Uint8Array, body_bold_italic: Uint8Array, mono_regular: Uint8Array): FmdRenderResult;
111
+ export function renderPdfConfiguredMulti(markdown: string, font: string | null | undefined, dark_mode: string | null | undefined, title: string | null | undefined, author: string | null | undefined, metadata_epoch_seconds: number | null | undefined, allow_raw_html: boolean, code_line_numbers: boolean, image_destinations: string[], image_bytes_flat: Uint8Array, image_bytes_lengths: Uint32Array, body_regular: Uint8Array, body_bold: Uint8Array, body_italic: Uint8Array, body_bold_italic: Uint8Array, mono_regular: Uint8Array, font_weights: Uint32Array, base_font_size: number | null | undefined, heading_scale: number | null | undefined, table_font_size: number | null | undefined, page_numbers: boolean): FmdRenderResult;
101
112
 
102
113
  /**
103
114
  * Render Markdown to PDF with browser package options, one optional image
@@ -137,10 +148,11 @@ export interface InitOutput {
137
148
  readonly fmdrenderresult_sourceLength: (a: number) => number;
138
149
  readonly renderHtml: (a: number, b: number, c: number) => void;
139
150
  readonly renderHtmlConfigured: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
140
- readonly renderHtmlConfiguredWithFonts: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => void;
151
+ readonly renderHtmlConfiguredMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number) => void;
152
+ readonly renderHtmlConfiguredWithFonts: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number) => void;
141
153
  readonly renderPdf: (a: number, b: number, c: number) => void;
142
154
  readonly renderPdfConfigured: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => void;
143
- readonly renderPdfConfiguredMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number) => void;
155
+ readonly renderPdfConfiguredMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number) => void;
144
156
  readonly renderPdfConfiguredWithAssets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number) => void;
145
157
  readonly renderPdfConfiguredWithImage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number) => void;
146
158
  readonly __wbindgen_export: (a: number, b: number) => number;
@@ -214,6 +214,75 @@ export function renderHtmlConfigured(markdown, font, dark_mode, title, custom_cs
214
214
  }
215
215
  }
216
216
 
217
+ /**
218
+ * Render Markdown to self-contained HTML with fonts and any number of host
219
+ * image assets (data-URI inlined). Parallel image arrays match the PDF multi
220
+ * ABI so the JS wrapper can share flattening.
221
+ *
222
+ * # Errors
223
+ * Returns a JavaScript error when the image arrays are inconsistent, an option
224
+ * is invalid, or rendering fails.
225
+ * @param {string} markdown
226
+ * @param {string | null | undefined} font
227
+ * @param {string | null | undefined} dark_mode
228
+ * @param {string | null | undefined} title
229
+ * @param {string | null | undefined} custom_css
230
+ * @param {boolean} allow_raw_html
231
+ * @param {Uint8Array} body_regular
232
+ * @param {Uint8Array} body_bold
233
+ * @param {Uint8Array} body_italic
234
+ * @param {Uint8Array} body_bold_italic
235
+ * @param {Uint8Array} mono_regular
236
+ * @param {Uint32Array} font_weights
237
+ * @param {string[]} image_destinations
238
+ * @param {Uint8Array} image_bytes_flat
239
+ * @param {Uint32Array} image_bytes_lengths
240
+ * @returns {FmdRenderResult}
241
+ */
242
+ export function renderHtmlConfiguredMulti(markdown, font, dark_mode, title, custom_css, allow_raw_html, body_regular, body_bold, body_italic, body_bold_italic, mono_regular, font_weights, image_destinations, image_bytes_flat, image_bytes_lengths) {
243
+ try {
244
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
245
+ const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export, wasm.__wbindgen_export2);
246
+ const len0 = WASM_VECTOR_LEN;
247
+ var ptr1 = isLikeNone(font) ? 0 : passStringToWasm0(font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
248
+ var len1 = WASM_VECTOR_LEN;
249
+ var ptr2 = isLikeNone(dark_mode) ? 0 : passStringToWasm0(dark_mode, wasm.__wbindgen_export, wasm.__wbindgen_export2);
250
+ var len2 = WASM_VECTOR_LEN;
251
+ var ptr3 = isLikeNone(title) ? 0 : passStringToWasm0(title, wasm.__wbindgen_export, wasm.__wbindgen_export2);
252
+ var len3 = WASM_VECTOR_LEN;
253
+ var ptr4 = isLikeNone(custom_css) ? 0 : passStringToWasm0(custom_css, wasm.__wbindgen_export, wasm.__wbindgen_export2);
254
+ var len4 = WASM_VECTOR_LEN;
255
+ const ptr5 = passArray8ToWasm0(body_regular, wasm.__wbindgen_export);
256
+ const len5 = WASM_VECTOR_LEN;
257
+ const ptr6 = passArray8ToWasm0(body_bold, wasm.__wbindgen_export);
258
+ const len6 = WASM_VECTOR_LEN;
259
+ const ptr7 = passArray8ToWasm0(body_italic, wasm.__wbindgen_export);
260
+ const len7 = WASM_VECTOR_LEN;
261
+ const ptr8 = passArray8ToWasm0(body_bold_italic, wasm.__wbindgen_export);
262
+ const len8 = WASM_VECTOR_LEN;
263
+ const ptr9 = passArray8ToWasm0(mono_regular, wasm.__wbindgen_export);
264
+ const len9 = WASM_VECTOR_LEN;
265
+ const ptr10 = passArray32ToWasm0(font_weights, wasm.__wbindgen_export);
266
+ const len10 = WASM_VECTOR_LEN;
267
+ const ptr11 = passArrayJsValueToWasm0(image_destinations, wasm.__wbindgen_export);
268
+ const len11 = WASM_VECTOR_LEN;
269
+ const ptr12 = passArray8ToWasm0(image_bytes_flat, wasm.__wbindgen_export);
270
+ const len12 = WASM_VECTOR_LEN;
271
+ const ptr13 = passArray32ToWasm0(image_bytes_lengths, wasm.__wbindgen_export);
272
+ const len13 = WASM_VECTOR_LEN;
273
+ wasm.renderHtmlConfiguredMulti(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, allow_raw_html, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);
274
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
275
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
276
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
277
+ if (r2) {
278
+ throw takeObject(r1);
279
+ }
280
+ return FmdRenderResult.__wrap(r0);
281
+ } finally {
282
+ wasm.__wbindgen_add_to_stack_pointer(16);
283
+ }
284
+ }
285
+
217
286
  /**
218
287
  * Render Markdown to self-contained HTML with browser package options and
219
288
  * caller-supplied font bytes.
@@ -233,9 +302,10 @@ export function renderHtmlConfigured(markdown, font, dark_mode, title, custom_cs
233
302
  * @param {Uint8Array} body_italic
234
303
  * @param {Uint8Array} body_bold_italic
235
304
  * @param {Uint8Array} mono_regular
305
+ * @param {Uint32Array} font_weights
236
306
  * @returns {FmdRenderResult}
237
307
  */
238
- export function renderHtmlConfiguredWithFonts(markdown, font, dark_mode, title, custom_css, allow_raw_html, body_regular, body_bold, body_italic, body_bold_italic, mono_regular) {
308
+ export function renderHtmlConfiguredWithFonts(markdown, font, dark_mode, title, custom_css, allow_raw_html, body_regular, body_bold, body_italic, body_bold_italic, mono_regular, font_weights) {
239
309
  try {
240
310
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
241
311
  const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -258,7 +328,9 @@ export function renderHtmlConfiguredWithFonts(markdown, font, dark_mode, title,
258
328
  const len8 = WASM_VECTOR_LEN;
259
329
  const ptr9 = passArray8ToWasm0(mono_regular, wasm.__wbindgen_export);
260
330
  const len9 = WASM_VECTOR_LEN;
261
- wasm.renderHtmlConfiguredWithFonts(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, allow_raw_html, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9);
331
+ const ptr10 = passArray32ToWasm0(font_weights, wasm.__wbindgen_export);
332
+ const len10 = WASM_VECTOR_LEN;
333
+ wasm.renderHtmlConfiguredWithFonts(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, allow_raw_html, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10);
262
334
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
263
335
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
264
336
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -368,9 +440,14 @@ export function renderPdfConfigured(markdown, font, dark_mode, title, author, me
368
440
  * @param {Uint8Array} body_italic
369
441
  * @param {Uint8Array} body_bold_italic
370
442
  * @param {Uint8Array} mono_regular
443
+ * @param {Uint32Array} font_weights
444
+ * @param {number | null | undefined} base_font_size
445
+ * @param {number | null | undefined} heading_scale
446
+ * @param {number | null | undefined} table_font_size
447
+ * @param {boolean} page_numbers
371
448
  * @returns {FmdRenderResult}
372
449
  */
373
- export function renderPdfConfiguredMulti(markdown, font, dark_mode, title, author, metadata_epoch_seconds, allow_raw_html, code_line_numbers, image_destinations, image_bytes_flat, image_bytes_lengths, body_regular, body_bold, body_italic, body_bold_italic, mono_regular) {
450
+ export function renderPdfConfiguredMulti(markdown, font, dark_mode, title, author, metadata_epoch_seconds, allow_raw_html, code_line_numbers, image_destinations, image_bytes_flat, image_bytes_lengths, body_regular, body_bold, body_italic, body_bold_italic, mono_regular, font_weights, base_font_size, heading_scale, table_font_size, page_numbers) {
374
451
  try {
375
452
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
376
453
  const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -399,7 +476,9 @@ export function renderPdfConfiguredMulti(markdown, font, dark_mode, title, autho
399
476
  const len11 = WASM_VECTOR_LEN;
400
477
  const ptr12 = passArray8ToWasm0(mono_regular, wasm.__wbindgen_export);
401
478
  const len12 = WASM_VECTOR_LEN;
402
- wasm.renderPdfConfiguredMulti(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, !isLikeNone(metadata_epoch_seconds), isLikeNone(metadata_epoch_seconds) ? 0 : metadata_epoch_seconds, allow_raw_html, code_line_numbers, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12);
479
+ const ptr13 = passArray32ToWasm0(font_weights, wasm.__wbindgen_export);
480
+ const len13 = WASM_VECTOR_LEN;
481
+ wasm.renderPdfConfiguredMulti(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, !isLikeNone(metadata_epoch_seconds), isLikeNone(metadata_epoch_seconds) ? 0 : metadata_epoch_seconds, allow_raw_html, code_line_numbers, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13, !isLikeNone(base_font_size), isLikeNone(base_font_size) ? 0 : base_font_size, !isLikeNone(heading_scale), isLikeNone(heading_scale) ? 0 : heading_scale, !isLikeNone(table_font_size), isLikeNone(table_font_size) ? 0 : table_font_size, page_numbers);
403
482
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
404
483
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
405
484
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
Binary file
@@ -11,10 +11,11 @@ export const fmdrenderresult_mimeType: (a: number, b: number) => void;
11
11
  export const fmdrenderresult_sourceLength: (a: number) => number;
12
12
  export const renderHtml: (a: number, b: number, c: number) => void;
13
13
  export const renderHtmlConfigured: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
14
- export const renderHtmlConfiguredWithFonts: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number) => void;
14
+ export const renderHtmlConfiguredMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number) => void;
15
+ export const renderHtmlConfiguredWithFonts: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number) => void;
15
16
  export const renderPdf: (a: number, b: number, c: number) => void;
16
17
  export const renderPdfConfigured: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => void;
17
- export const renderPdfConfiguredMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number) => void;
18
+ export const renderPdfConfiguredMulti: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number, d1: number, e1: number, f1: number, g1: number, h1: number, i1: number, j1: number, k1: number, l1: number, m1: number, n1: number) => void;
18
19
  export const renderPdfConfiguredWithAssets: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number, b1: number, c1: number) => void;
19
20
  export const renderPdfConfiguredWithImage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number) => void;
20
21
  export const __wbindgen_export: (a: number, b: number) => number;