@sketchmark/plugin-notation 0.1.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) Sketchmark contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # @sketchmark/plugin-notation
2
+
3
+ Lightweight notation support for Sketchmark.
4
+
5
+ This first version keeps the core renderer lightweight by converting common TeX-style math into Unicode text that Sketchmark can already render inside labels and narration.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install sketchmark @sketchmark/plugin-notation
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```ts
16
+ import { render } from "sketchmark";
17
+ import { notation } from "@sketchmark/plugin-notation";
18
+
19
+ render({
20
+ container: document.getElementById("diagram")!,
21
+ dsl: `
22
+ diagram
23
+ title label="Right Triangle"
24
+ box eq label="$x^2 + y^2 = z^2$"
25
+ note hint label="$\\theta = 45^\\circ$"
26
+ step narrate "$\\sqrt{2} \\approx 1.414$"
27
+ end
28
+ `.trim(),
29
+ plugins: [notation()],
30
+ });
31
+ ```
32
+
33
+ ## What v1 supports
34
+
35
+ - Inline math delimited by `$...$`
36
+ - Inline math delimited by `\\(...\\)`
37
+ - Common Greek letters and operators such as `\\alpha`, `\\theta`, `\\times`, `\\leq`, `\\rightarrow`
38
+ - Simple `^` superscripts and `_` subscripts
39
+ - `\\frac{a}{b}` and `\\sqrt{x}`
40
+ - Label and narration text transforms across nodes, edges, groups, tables, charts, titles, and `step narrate`
41
+
42
+ ## What v1 does not do
43
+
44
+ - Full LaTeX layout or fraction stacking
45
+ - KaTeX/MathJax-quality typesetting
46
+ - Markdown math parsing by default
47
+
48
+ This package is meant to be a small first plugin package and a good foundation for richer notation later.
package/dist/index.cjs ADDED
@@ -0,0 +1,408 @@
1
+ 'use strict';
2
+
3
+ const DEFAULT_DELIMITERS = [
4
+ ["$", "$"],
5
+ ["\\(", "\\)"],
6
+ ];
7
+ const SIMPLE_COMMANDS = {
8
+ alpha: "α",
9
+ beta: "β",
10
+ gamma: "γ",
11
+ delta: "δ",
12
+ epsilon: "ε",
13
+ theta: "θ",
14
+ lambda: "λ",
15
+ mu: "μ",
16
+ pi: "π",
17
+ sigma: "σ",
18
+ phi: "φ",
19
+ psi: "ψ",
20
+ omega: "ω",
21
+ Gamma: "Γ",
22
+ Delta: "Δ",
23
+ Theta: "Θ",
24
+ Lambda: "Λ",
25
+ Pi: "Π",
26
+ Sigma: "Σ",
27
+ Phi: "Φ",
28
+ Psi: "Ψ",
29
+ Omega: "Ω",
30
+ cdot: "·",
31
+ times: "×",
32
+ pm: "±",
33
+ mp: "∓",
34
+ neq: "≠",
35
+ le: "≤",
36
+ leq: "≤",
37
+ ge: "≥",
38
+ geq: "≥",
39
+ approx: "≈",
40
+ sim: "∼",
41
+ to: "→",
42
+ rightarrow: "→",
43
+ leftarrow: "←",
44
+ leftrightarrow: "↔",
45
+ Rightarrow: "⇒",
46
+ Leftarrow: "⇐",
47
+ Leftrightarrow: "⇔",
48
+ infty: "∞",
49
+ degree: "°",
50
+ partial: "∂",
51
+ sum: "∑",
52
+ prod: "∏",
53
+ int: "∫",
54
+ angle: "∠",
55
+ perp: "⊥",
56
+ parallel: "∥",
57
+ subset: "⊂",
58
+ subseteq: "⊆",
59
+ supset: "⊃",
60
+ supseteq: "⊇",
61
+ in: "∈",
62
+ notin: "∉",
63
+ forall: "∀",
64
+ exists: "∃",
65
+ because: "∵",
66
+ therefore: "∴",
67
+ sin: "sin",
68
+ cos: "cos",
69
+ tan: "tan",
70
+ log: "log",
71
+ ln: "ln",
72
+ left: "",
73
+ right: "",
74
+ };
75
+ const GROUP_WRAPPER_COMMANDS = new Set([
76
+ "text",
77
+ "mathrm",
78
+ "mathbf",
79
+ "mathit",
80
+ "operatorname",
81
+ "textrm",
82
+ "textbf",
83
+ "mathsf",
84
+ "mathtt",
85
+ ]);
86
+ const SUPERSCRIPTS = {
87
+ "0": "⁰",
88
+ "1": "¹",
89
+ "2": "²",
90
+ "3": "³",
91
+ "4": "⁴",
92
+ "5": "⁵",
93
+ "6": "⁶",
94
+ "7": "⁷",
95
+ "8": "⁸",
96
+ "9": "⁹",
97
+ "+": "⁺",
98
+ "-": "⁻",
99
+ "=": "⁼",
100
+ "(": "⁽",
101
+ ")": "⁾",
102
+ n: "ⁿ",
103
+ i: "ⁱ",
104
+ };
105
+ const SUBSCRIPTS = {
106
+ "0": "₀",
107
+ "1": "₁",
108
+ "2": "₂",
109
+ "3": "₃",
110
+ "4": "₄",
111
+ "5": "₅",
112
+ "6": "₆",
113
+ "7": "₇",
114
+ "8": "₈",
115
+ "9": "₉",
116
+ "+": "₊",
117
+ "-": "₋",
118
+ "=": "₌",
119
+ "(": "₍",
120
+ ")": "₎",
121
+ a: "ₐ",
122
+ e: "ₑ",
123
+ h: "ₕ",
124
+ i: "ᵢ",
125
+ j: "ⱼ",
126
+ k: "ₖ",
127
+ l: "ₗ",
128
+ m: "ₘ",
129
+ n: "ₙ",
130
+ o: "ₒ",
131
+ p: "ₚ",
132
+ r: "ᵣ",
133
+ s: "ₛ",
134
+ t: "ₜ",
135
+ u: "ᵤ",
136
+ v: "ᵥ",
137
+ x: "ₓ",
138
+ };
139
+ function notation(options = {}) {
140
+ const delimiters = options.delimiters ?? DEFAULT_DELIMITERS;
141
+ const transformNarration = options.transformNarration !== false;
142
+ const transformMarkdown = options.transformMarkdown === true;
143
+ return {
144
+ name: "notation",
145
+ transformAst(ast) {
146
+ return {
147
+ ...ast,
148
+ title: transformOptionalText(ast.title, delimiters),
149
+ description: transformOptionalText(ast.description, delimiters),
150
+ nodes: ast.nodes.map((node) => ({
151
+ ...node,
152
+ label: transformRequiredText(node.label, delimiters),
153
+ })),
154
+ edges: ast.edges.map((edge) => ({
155
+ ...edge,
156
+ label: transformOptionalText(edge.label, delimiters),
157
+ })),
158
+ groups: ast.groups.map((group) => ({
159
+ ...group,
160
+ label: transformRequiredText(group.label, delimiters),
161
+ })),
162
+ tables: ast.tables.map((table) => ({
163
+ ...table,
164
+ label: transformRequiredText(table.label, delimiters),
165
+ rows: table.rows.map((row) => ({
166
+ ...row,
167
+ cells: row.cells.map((cell) => transformRequiredText(cell, delimiters)),
168
+ })),
169
+ })),
170
+ charts: ast.charts.map((chart) => ({
171
+ ...chart,
172
+ label: transformOptionalText(chart.label, delimiters),
173
+ data: {
174
+ headers: chart.data.headers.map((header) => transformRequiredText(header, delimiters)),
175
+ rows: chart.data.rows.map((row) => row.map((value) => typeof value === "string" ? transformRequiredText(value, delimiters) : value)),
176
+ },
177
+ })),
178
+ markdowns: ast.markdowns.map((markdown) => transformMarkdown
179
+ ? { ...markdown, content: transformRequiredText(markdown.content, delimiters) }
180
+ : markdown),
181
+ steps: ast.steps.map((step) => transformNarration ? transformStep(step, delimiters) : step),
182
+ };
183
+ },
184
+ };
185
+ }
186
+ function renderMath(text) {
187
+ return renderMathFragment(text.trim());
188
+ }
189
+ function transformStep(step, delimiters) {
190
+ if (step.kind === "beat") {
191
+ return {
192
+ ...step,
193
+ children: step.children.map((child) => transformStep(child, delimiters)),
194
+ };
195
+ }
196
+ if (step.action !== "narrate")
197
+ return step;
198
+ return {
199
+ ...step,
200
+ value: transformText(step.value, delimiters),
201
+ };
202
+ }
203
+ function transformText(value, delimiters) {
204
+ if (typeof value !== "string" || !value)
205
+ return value;
206
+ let nextValue = value;
207
+ for (const [open, close] of delimiters) {
208
+ nextValue = replaceDelimited(nextValue, open, close, renderMathFragment);
209
+ }
210
+ return unescapeDelimiters(nextValue, delimiters);
211
+ }
212
+ function transformRequiredText(value, delimiters) {
213
+ return transformText(value, delimiters) ?? value;
214
+ }
215
+ function transformOptionalText(value, delimiters) {
216
+ return transformText(value, delimiters);
217
+ }
218
+ function replaceDelimited(value, open, close, transform) {
219
+ let result = "";
220
+ let index = 0;
221
+ while (index < value.length) {
222
+ const start = findToken(value, open, index);
223
+ if (start < 0) {
224
+ result += value.slice(index);
225
+ break;
226
+ }
227
+ const end = findToken(value, close, start + open.length);
228
+ if (end < 0) {
229
+ result += value.slice(index);
230
+ break;
231
+ }
232
+ result += value.slice(index, start);
233
+ result += transform(value.slice(start + open.length, end));
234
+ index = end + close.length;
235
+ }
236
+ return result;
237
+ }
238
+ function findToken(value, token, start) {
239
+ let index = start;
240
+ while (index < value.length) {
241
+ index = value.indexOf(token, index);
242
+ if (index < 0)
243
+ return -1;
244
+ if (!isEscaped(value, index))
245
+ return index;
246
+ index += token.length;
247
+ }
248
+ return -1;
249
+ }
250
+ function isEscaped(value, index) {
251
+ let slashCount = 0;
252
+ for (let cursor = index - 1; cursor >= 0 && value[cursor] === "\\"; cursor -= 1) {
253
+ slashCount += 1;
254
+ }
255
+ return slashCount % 2 === 1;
256
+ }
257
+ function renderMathFragment(value) {
258
+ let nextValue = value;
259
+ let previousValue = "";
260
+ let iterations = 0;
261
+ while (nextValue !== previousValue && iterations < 8) {
262
+ previousValue = nextValue;
263
+ nextValue = replaceCommandWithGroups(nextValue, "\\frac", 2, ([left, right]) => `${renderMathFragment(left)}⁄${renderMathFragment(right)}`);
264
+ nextValue = replaceCommandWithGroups(nextValue, "\\sqrt", 1, ([content]) => `√(${renderMathFragment(content)})`);
265
+ for (const command of GROUP_WRAPPER_COMMANDS) {
266
+ nextValue = replaceCommandWithGroups(nextValue, `\\${command}`, 1, ([content]) => renderMathFragment(content));
267
+ }
268
+ iterations += 1;
269
+ }
270
+ nextValue = nextValue
271
+ .replace(/\\\{/g, "{")
272
+ .replace(/\\\}/g, "}")
273
+ .replace(/\\,/g, " ")
274
+ .replace(/\\;/g, " ")
275
+ .replace(/\\:/g, " ");
276
+ nextValue = replaceSimpleCommands(nextValue);
277
+ nextValue = replaceScripts(nextValue);
278
+ nextValue = nextValue.replace(/[{}]/g, "");
279
+ nextValue = nextValue.replace(/\s+/g, " ").trim();
280
+ return nextValue;
281
+ }
282
+ function replaceCommandWithGroups(value, command, arity, render) {
283
+ let result = "";
284
+ let index = 0;
285
+ while (index < value.length) {
286
+ const start = value.indexOf(command, index);
287
+ if (start < 0) {
288
+ result += value.slice(index);
289
+ break;
290
+ }
291
+ result += value.slice(index, start);
292
+ let cursor = start + command.length;
293
+ const args = [];
294
+ let valid = true;
295
+ for (let argIndex = 0; argIndex < arity; argIndex += 1) {
296
+ cursor = skipWhitespace(value, cursor);
297
+ const group = readBalancedGroup(value, cursor);
298
+ if (!group) {
299
+ valid = false;
300
+ break;
301
+ }
302
+ args.push(group.content);
303
+ cursor = group.end;
304
+ }
305
+ if (!valid) {
306
+ result += command;
307
+ index = start + command.length;
308
+ continue;
309
+ }
310
+ result += render(args);
311
+ index = cursor;
312
+ }
313
+ return result;
314
+ }
315
+ function readBalancedGroup(value, start) {
316
+ if (value[start] !== "{")
317
+ return null;
318
+ let depth = 0;
319
+ for (let index = start; index < value.length; index += 1) {
320
+ const ch = value[index];
321
+ if (ch === "{" && !isEscaped(value, index))
322
+ depth += 1;
323
+ if (ch === "}" && !isEscaped(value, index)) {
324
+ depth -= 1;
325
+ if (depth === 0) {
326
+ return {
327
+ content: value.slice(start + 1, index),
328
+ end: index + 1,
329
+ };
330
+ }
331
+ }
332
+ }
333
+ return null;
334
+ }
335
+ function skipWhitespace(value, start) {
336
+ let index = start;
337
+ while (index < value.length && /\s/.test(value[index] ?? ""))
338
+ index += 1;
339
+ return index;
340
+ }
341
+ function replaceSimpleCommands(value) {
342
+ return value.replace(/\\([A-Za-z]+)/g, (_, rawCommand) => {
343
+ if (rawCommand in SIMPLE_COMMANDS)
344
+ return SIMPLE_COMMANDS[rawCommand];
345
+ return rawCommand;
346
+ });
347
+ }
348
+ function replaceScripts(value) {
349
+ let result = "";
350
+ for (let index = 0; index < value.length; index += 1) {
351
+ const marker = value[index];
352
+ if (marker !== "^" && marker !== "_") {
353
+ result += marker;
354
+ continue;
355
+ }
356
+ const token = readScriptToken(value, index + 1);
357
+ if (!token) {
358
+ result += marker;
359
+ continue;
360
+ }
361
+ result += applyScript(token.content, marker === "^" ? SUPERSCRIPTS : SUBSCRIPTS, marker);
362
+ index = token.end - 1;
363
+ }
364
+ return result;
365
+ }
366
+ function readScriptToken(value, start) {
367
+ let cursor = skipWhitespace(value, start);
368
+ if (cursor >= value.length)
369
+ return null;
370
+ const group = readBalancedGroup(value, cursor);
371
+ if (group) {
372
+ return {
373
+ content: renderMathFragment(group.content),
374
+ end: group.end,
375
+ };
376
+ }
377
+ const single = value[cursor];
378
+ if (!single)
379
+ return null;
380
+ cursor += 1;
381
+ return {
382
+ content: single,
383
+ end: cursor,
384
+ };
385
+ }
386
+ function applyScript(value, alphabet, marker) {
387
+ let rendered = "";
388
+ for (const ch of value.replace(/\s+/g, "")) {
389
+ const mapped = alphabet[ch];
390
+ if (!mapped)
391
+ return `${marker}(${value})`;
392
+ rendered += mapped;
393
+ }
394
+ return rendered;
395
+ }
396
+ function unescapeDelimiters(value, delimiters) {
397
+ let nextValue = value;
398
+ for (const [open, close] of delimiters) {
399
+ nextValue = nextValue
400
+ .split(`\\${open}`).join(open)
401
+ .split(`\\${close}`).join(close);
402
+ }
403
+ return nextValue;
404
+ }
405
+
406
+ exports.notation = notation;
407
+ exports.renderMath = renderMath;
408
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { SketchmarkPlugin } from "sketchmark";
2
+ export interface NotationPluginOptions {
3
+ delimiters?: ReadonlyArray<readonly [string, string]>;
4
+ transformNarration?: boolean;
5
+ transformMarkdown?: boolean;
6
+ }
7
+ export declare function notation(options?: NotationPluginOptions): SketchmarkPlugin;
8
+ export declare function renderMath(text: string): string;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA+ID,wBAAgB,QAAQ,CAAC,OAAO,GAAE,qBAA0B,GAAG,gBAAgB,CAuD9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
package/dist/index.js ADDED
@@ -0,0 +1,405 @@
1
+ const DEFAULT_DELIMITERS = [
2
+ ["$", "$"],
3
+ ["\\(", "\\)"],
4
+ ];
5
+ const SIMPLE_COMMANDS = {
6
+ alpha: "α",
7
+ beta: "β",
8
+ gamma: "γ",
9
+ delta: "δ",
10
+ epsilon: "ε",
11
+ theta: "θ",
12
+ lambda: "λ",
13
+ mu: "μ",
14
+ pi: "π",
15
+ sigma: "σ",
16
+ phi: "φ",
17
+ psi: "ψ",
18
+ omega: "ω",
19
+ Gamma: "Γ",
20
+ Delta: "Δ",
21
+ Theta: "Θ",
22
+ Lambda: "Λ",
23
+ Pi: "Π",
24
+ Sigma: "Σ",
25
+ Phi: "Φ",
26
+ Psi: "Ψ",
27
+ Omega: "Ω",
28
+ cdot: "·",
29
+ times: "×",
30
+ pm: "±",
31
+ mp: "∓",
32
+ neq: "≠",
33
+ le: "≤",
34
+ leq: "≤",
35
+ ge: "≥",
36
+ geq: "≥",
37
+ approx: "≈",
38
+ sim: "∼",
39
+ to: "→",
40
+ rightarrow: "→",
41
+ leftarrow: "←",
42
+ leftrightarrow: "↔",
43
+ Rightarrow: "⇒",
44
+ Leftarrow: "⇐",
45
+ Leftrightarrow: "⇔",
46
+ infty: "∞",
47
+ degree: "°",
48
+ partial: "∂",
49
+ sum: "∑",
50
+ prod: "∏",
51
+ int: "∫",
52
+ angle: "∠",
53
+ perp: "⊥",
54
+ parallel: "∥",
55
+ subset: "⊂",
56
+ subseteq: "⊆",
57
+ supset: "⊃",
58
+ supseteq: "⊇",
59
+ in: "∈",
60
+ notin: "∉",
61
+ forall: "∀",
62
+ exists: "∃",
63
+ because: "∵",
64
+ therefore: "∴",
65
+ sin: "sin",
66
+ cos: "cos",
67
+ tan: "tan",
68
+ log: "log",
69
+ ln: "ln",
70
+ left: "",
71
+ right: "",
72
+ };
73
+ const GROUP_WRAPPER_COMMANDS = new Set([
74
+ "text",
75
+ "mathrm",
76
+ "mathbf",
77
+ "mathit",
78
+ "operatorname",
79
+ "textrm",
80
+ "textbf",
81
+ "mathsf",
82
+ "mathtt",
83
+ ]);
84
+ const SUPERSCRIPTS = {
85
+ "0": "⁰",
86
+ "1": "¹",
87
+ "2": "²",
88
+ "3": "³",
89
+ "4": "⁴",
90
+ "5": "⁵",
91
+ "6": "⁶",
92
+ "7": "⁷",
93
+ "8": "⁸",
94
+ "9": "⁹",
95
+ "+": "⁺",
96
+ "-": "⁻",
97
+ "=": "⁼",
98
+ "(": "⁽",
99
+ ")": "⁾",
100
+ n: "ⁿ",
101
+ i: "ⁱ",
102
+ };
103
+ const SUBSCRIPTS = {
104
+ "0": "₀",
105
+ "1": "₁",
106
+ "2": "₂",
107
+ "3": "₃",
108
+ "4": "₄",
109
+ "5": "₅",
110
+ "6": "₆",
111
+ "7": "₇",
112
+ "8": "₈",
113
+ "9": "₉",
114
+ "+": "₊",
115
+ "-": "₋",
116
+ "=": "₌",
117
+ "(": "₍",
118
+ ")": "₎",
119
+ a: "ₐ",
120
+ e: "ₑ",
121
+ h: "ₕ",
122
+ i: "ᵢ",
123
+ j: "ⱼ",
124
+ k: "ₖ",
125
+ l: "ₗ",
126
+ m: "ₘ",
127
+ n: "ₙ",
128
+ o: "ₒ",
129
+ p: "ₚ",
130
+ r: "ᵣ",
131
+ s: "ₛ",
132
+ t: "ₜ",
133
+ u: "ᵤ",
134
+ v: "ᵥ",
135
+ x: "ₓ",
136
+ };
137
+ function notation(options = {}) {
138
+ const delimiters = options.delimiters ?? DEFAULT_DELIMITERS;
139
+ const transformNarration = options.transformNarration !== false;
140
+ const transformMarkdown = options.transformMarkdown === true;
141
+ return {
142
+ name: "notation",
143
+ transformAst(ast) {
144
+ return {
145
+ ...ast,
146
+ title: transformOptionalText(ast.title, delimiters),
147
+ description: transformOptionalText(ast.description, delimiters),
148
+ nodes: ast.nodes.map((node) => ({
149
+ ...node,
150
+ label: transformRequiredText(node.label, delimiters),
151
+ })),
152
+ edges: ast.edges.map((edge) => ({
153
+ ...edge,
154
+ label: transformOptionalText(edge.label, delimiters),
155
+ })),
156
+ groups: ast.groups.map((group) => ({
157
+ ...group,
158
+ label: transformRequiredText(group.label, delimiters),
159
+ })),
160
+ tables: ast.tables.map((table) => ({
161
+ ...table,
162
+ label: transformRequiredText(table.label, delimiters),
163
+ rows: table.rows.map((row) => ({
164
+ ...row,
165
+ cells: row.cells.map((cell) => transformRequiredText(cell, delimiters)),
166
+ })),
167
+ })),
168
+ charts: ast.charts.map((chart) => ({
169
+ ...chart,
170
+ label: transformOptionalText(chart.label, delimiters),
171
+ data: {
172
+ headers: chart.data.headers.map((header) => transformRequiredText(header, delimiters)),
173
+ rows: chart.data.rows.map((row) => row.map((value) => typeof value === "string" ? transformRequiredText(value, delimiters) : value)),
174
+ },
175
+ })),
176
+ markdowns: ast.markdowns.map((markdown) => transformMarkdown
177
+ ? { ...markdown, content: transformRequiredText(markdown.content, delimiters) }
178
+ : markdown),
179
+ steps: ast.steps.map((step) => transformNarration ? transformStep(step, delimiters) : step),
180
+ };
181
+ },
182
+ };
183
+ }
184
+ function renderMath(text) {
185
+ return renderMathFragment(text.trim());
186
+ }
187
+ function transformStep(step, delimiters) {
188
+ if (step.kind === "beat") {
189
+ return {
190
+ ...step,
191
+ children: step.children.map((child) => transformStep(child, delimiters)),
192
+ };
193
+ }
194
+ if (step.action !== "narrate")
195
+ return step;
196
+ return {
197
+ ...step,
198
+ value: transformText(step.value, delimiters),
199
+ };
200
+ }
201
+ function transformText(value, delimiters) {
202
+ if (typeof value !== "string" || !value)
203
+ return value;
204
+ let nextValue = value;
205
+ for (const [open, close] of delimiters) {
206
+ nextValue = replaceDelimited(nextValue, open, close, renderMathFragment);
207
+ }
208
+ return unescapeDelimiters(nextValue, delimiters);
209
+ }
210
+ function transformRequiredText(value, delimiters) {
211
+ return transformText(value, delimiters) ?? value;
212
+ }
213
+ function transformOptionalText(value, delimiters) {
214
+ return transformText(value, delimiters);
215
+ }
216
+ function replaceDelimited(value, open, close, transform) {
217
+ let result = "";
218
+ let index = 0;
219
+ while (index < value.length) {
220
+ const start = findToken(value, open, index);
221
+ if (start < 0) {
222
+ result += value.slice(index);
223
+ break;
224
+ }
225
+ const end = findToken(value, close, start + open.length);
226
+ if (end < 0) {
227
+ result += value.slice(index);
228
+ break;
229
+ }
230
+ result += value.slice(index, start);
231
+ result += transform(value.slice(start + open.length, end));
232
+ index = end + close.length;
233
+ }
234
+ return result;
235
+ }
236
+ function findToken(value, token, start) {
237
+ let index = start;
238
+ while (index < value.length) {
239
+ index = value.indexOf(token, index);
240
+ if (index < 0)
241
+ return -1;
242
+ if (!isEscaped(value, index))
243
+ return index;
244
+ index += token.length;
245
+ }
246
+ return -1;
247
+ }
248
+ function isEscaped(value, index) {
249
+ let slashCount = 0;
250
+ for (let cursor = index - 1; cursor >= 0 && value[cursor] === "\\"; cursor -= 1) {
251
+ slashCount += 1;
252
+ }
253
+ return slashCount % 2 === 1;
254
+ }
255
+ function renderMathFragment(value) {
256
+ let nextValue = value;
257
+ let previousValue = "";
258
+ let iterations = 0;
259
+ while (nextValue !== previousValue && iterations < 8) {
260
+ previousValue = nextValue;
261
+ nextValue = replaceCommandWithGroups(nextValue, "\\frac", 2, ([left, right]) => `${renderMathFragment(left)}⁄${renderMathFragment(right)}`);
262
+ nextValue = replaceCommandWithGroups(nextValue, "\\sqrt", 1, ([content]) => `√(${renderMathFragment(content)})`);
263
+ for (const command of GROUP_WRAPPER_COMMANDS) {
264
+ nextValue = replaceCommandWithGroups(nextValue, `\\${command}`, 1, ([content]) => renderMathFragment(content));
265
+ }
266
+ iterations += 1;
267
+ }
268
+ nextValue = nextValue
269
+ .replace(/\\\{/g, "{")
270
+ .replace(/\\\}/g, "}")
271
+ .replace(/\\,/g, " ")
272
+ .replace(/\\;/g, " ")
273
+ .replace(/\\:/g, " ");
274
+ nextValue = replaceSimpleCommands(nextValue);
275
+ nextValue = replaceScripts(nextValue);
276
+ nextValue = nextValue.replace(/[{}]/g, "");
277
+ nextValue = nextValue.replace(/\s+/g, " ").trim();
278
+ return nextValue;
279
+ }
280
+ function replaceCommandWithGroups(value, command, arity, render) {
281
+ let result = "";
282
+ let index = 0;
283
+ while (index < value.length) {
284
+ const start = value.indexOf(command, index);
285
+ if (start < 0) {
286
+ result += value.slice(index);
287
+ break;
288
+ }
289
+ result += value.slice(index, start);
290
+ let cursor = start + command.length;
291
+ const args = [];
292
+ let valid = true;
293
+ for (let argIndex = 0; argIndex < arity; argIndex += 1) {
294
+ cursor = skipWhitespace(value, cursor);
295
+ const group = readBalancedGroup(value, cursor);
296
+ if (!group) {
297
+ valid = false;
298
+ break;
299
+ }
300
+ args.push(group.content);
301
+ cursor = group.end;
302
+ }
303
+ if (!valid) {
304
+ result += command;
305
+ index = start + command.length;
306
+ continue;
307
+ }
308
+ result += render(args);
309
+ index = cursor;
310
+ }
311
+ return result;
312
+ }
313
+ function readBalancedGroup(value, start) {
314
+ if (value[start] !== "{")
315
+ return null;
316
+ let depth = 0;
317
+ for (let index = start; index < value.length; index += 1) {
318
+ const ch = value[index];
319
+ if (ch === "{" && !isEscaped(value, index))
320
+ depth += 1;
321
+ if (ch === "}" && !isEscaped(value, index)) {
322
+ depth -= 1;
323
+ if (depth === 0) {
324
+ return {
325
+ content: value.slice(start + 1, index),
326
+ end: index + 1,
327
+ };
328
+ }
329
+ }
330
+ }
331
+ return null;
332
+ }
333
+ function skipWhitespace(value, start) {
334
+ let index = start;
335
+ while (index < value.length && /\s/.test(value[index] ?? ""))
336
+ index += 1;
337
+ return index;
338
+ }
339
+ function replaceSimpleCommands(value) {
340
+ return value.replace(/\\([A-Za-z]+)/g, (_, rawCommand) => {
341
+ if (rawCommand in SIMPLE_COMMANDS)
342
+ return SIMPLE_COMMANDS[rawCommand];
343
+ return rawCommand;
344
+ });
345
+ }
346
+ function replaceScripts(value) {
347
+ let result = "";
348
+ for (let index = 0; index < value.length; index += 1) {
349
+ const marker = value[index];
350
+ if (marker !== "^" && marker !== "_") {
351
+ result += marker;
352
+ continue;
353
+ }
354
+ const token = readScriptToken(value, index + 1);
355
+ if (!token) {
356
+ result += marker;
357
+ continue;
358
+ }
359
+ result += applyScript(token.content, marker === "^" ? SUPERSCRIPTS : SUBSCRIPTS, marker);
360
+ index = token.end - 1;
361
+ }
362
+ return result;
363
+ }
364
+ function readScriptToken(value, start) {
365
+ let cursor = skipWhitespace(value, start);
366
+ if (cursor >= value.length)
367
+ return null;
368
+ const group = readBalancedGroup(value, cursor);
369
+ if (group) {
370
+ return {
371
+ content: renderMathFragment(group.content),
372
+ end: group.end,
373
+ };
374
+ }
375
+ const single = value[cursor];
376
+ if (!single)
377
+ return null;
378
+ cursor += 1;
379
+ return {
380
+ content: single,
381
+ end: cursor,
382
+ };
383
+ }
384
+ function applyScript(value, alphabet, marker) {
385
+ let rendered = "";
386
+ for (const ch of value.replace(/\s+/g, "")) {
387
+ const mapped = alphabet[ch];
388
+ if (!mapped)
389
+ return `${marker}(${value})`;
390
+ rendered += mapped;
391
+ }
392
+ return rendered;
393
+ }
394
+ function unescapeDelimiters(value, delimiters) {
395
+ let nextValue = value;
396
+ for (const [open, close] of delimiters) {
397
+ nextValue = nextValue
398
+ .split(`\\${open}`).join(open)
399
+ .split(`\\${close}`).join(close);
400
+ }
401
+ return nextValue;
402
+ }
403
+
404
+ export { notation, renderMath };
405
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@sketchmark/plugin-notation",
3
+ "version": "0.1.0",
4
+ "description": "Notation plugin for Sketchmark. Converts lightweight TeX-style math into Unicode text labels and narration.",
5
+ "keywords": [
6
+ "sketchmark",
7
+ "plugin",
8
+ "notation",
9
+ "latex",
10
+ "math",
11
+ "diagram"
12
+ ],
13
+ "author": "sketchmark contributors",
14
+ "license": "MIT",
15
+ "type": "module",
16
+ "main": "./dist/index.cjs",
17
+ "module": "./dist/index.js",
18
+ "types": "./dist/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "import": "./dist/index.js",
22
+ "require": "./dist/index.cjs",
23
+ "types": "./dist/index.d.ts"
24
+ }
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "README.md",
29
+ "LICENSE"
30
+ ],
31
+ "scripts": {
32
+ "build": "rollup -c rollup.config.js",
33
+ "typecheck": "tsc --noEmit -p tsconfig.json"
34
+ },
35
+ "peerDependencies": {
36
+ "sketchmark": "^1.1.6"
37
+ },
38
+ "sideEffects": false,
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/anmism/sketchmark"
42
+ },
43
+ "bugs": {
44
+ "url": "https://github.com/anmism/sketchmark/issues"
45
+ },
46
+ "homepage": "https://github.com/anmism/sketchmark#readme"
47
+ }