@franken-suite/franken-markdown 0.3.1 → 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.
package/franken_markdown.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface FmdDiagnostic {
|
|
|
12
12
|
export interface FmdPdfImageAsset {
|
|
13
13
|
/** Markdown image destination, for example `images/chart.png` from ``. */
|
|
14
14
|
destination: string;
|
|
15
|
-
/** Browser-supplied image bytes. PNG and SVG
|
|
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
|
-
/**
|
|
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";
|
package/franken_markdown.js
CHANGED
|
@@ -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
|
-
|
|
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
|
@@ -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
|
|
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;
|
package/pkg/franken_markdown.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
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;
|