katex 0.10.0-rc → 0.10.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/CHANGELOG.md +214 -126
- package/README.md +18 -17
- package/cli.js +5 -1
- package/contrib/auto-render/README.md +1 -1
- package/contrib/auto-render/auto-render.js +4 -1
- package/contrib/auto-render/test/auto-render-spec.js +17 -0
- package/contrib/copy-tex/README.md +8 -2
- package/contrib/copy-tex/copy-tex.js +0 -1
- package/contrib/copy-tex/copy-tex.webpack.js +6 -0
- package/contrib/mathtex-script-type/README.md +10 -6
- package/contrib/mhchem/README.md +19 -0
- package/contrib/mhchem/mhchem.js +1695 -0
- package/contrib/mhchem/mhchem.patch +235 -0
- package/dist/README.md +18 -17
- package/dist/contrib/auto-render.js +179 -161
- package/dist/contrib/auto-render.min.js +1 -1
- package/dist/contrib/auto-render.mjs +215 -0
- package/dist/contrib/copy-tex.js +84 -62
- package/dist/contrib/copy-tex.min.css +1 -1
- package/dist/contrib/copy-tex.min.js +1 -1
- package/dist/contrib/copy-tex.mjs +85 -0
- package/dist/contrib/mathtex-script-type.js +17 -14
- package/dist/contrib/mathtex-script-type.mjs +24 -0
- package/dist/contrib/mhchem.js +3241 -0
- package/dist/contrib/mhchem.min.js +1 -0
- package/dist/contrib/mhchem.mjs +3109 -0
- package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
- package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
- package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
- package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/katex.css +24 -9
- package/dist/katex.js +13295 -12413
- package/dist/katex.min.css +1 -1
- package/dist/katex.min.js +1 -1
- package/dist/katex.mjs +13388 -11826
- package/katex.js +1 -2
- package/package.json +60 -48
- package/src/Lexer.js +25 -25
- package/src/MacroExpander.js +0 -1
- package/src/Options.js +11 -75
- package/src/Parser.js +231 -313
- package/src/Settings.js +6 -0
- package/src/buildCommon.js +140 -103
- package/src/buildHTML.js +125 -121
- package/src/buildMathML.js +14 -4
- package/src/buildTree.js +16 -10
- package/src/delimiter.js +4 -3
- package/src/domTree.js +91 -44
- package/src/environments/array.js +120 -7
- package/src/fontMetrics.js +3 -2
- package/src/functions/arrow.js +21 -7
- package/src/functions/color.js +2 -37
- package/src/functions/delimsizing.js +18 -11
- package/src/functions/enclose.js +19 -4
- package/src/functions/environment.js +35 -4
- package/src/functions/font.js +1 -2
- package/src/functions/genfrac.js +35 -20
- package/src/functions/href.js +5 -3
- package/src/functions/includegraphics.js +146 -0
- package/src/functions/mclass.js +1 -0
- package/src/functions/op.js +21 -32
- package/src/functions/operatorname.js +1 -2
- package/src/functions/ordgroup.js +4 -0
- package/src/functions/phantom.js +7 -3
- package/src/functions/rule.js +20 -9
- package/src/functions/sizing.js +2 -4
- package/src/functions/smash.js +5 -2
- package/src/functions/sqrt.js +1 -4
- package/src/functions/styling.js +0 -1
- package/src/functions/supsub.js +6 -2
- package/src/functions/symbolsOp.js +4 -0
- package/src/functions/symbolsSpacing.js +29 -6
- package/src/functions/tag.js +20 -4
- package/src/functions/text.js +6 -4
- package/src/functions/verb.js +16 -4
- package/src/functions.js +2 -0
- package/src/katex.less +35 -12
- package/src/macros.js +161 -36
- package/src/mathMLTree.js +17 -19
- package/src/parseNode.js +27 -1
- package/src/stretchy.js +3 -1
- package/src/svgGeometry.js +1 -1
- package/src/symbols.js +39 -17
- package/src/tree.js +0 -4
- package/src/types.js +4 -3
- package/src/unicodeMake.js +1 -1
- package/src/utils.js +1 -62
- package/src/wide-character.js +2 -2
package/src/symbols.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
normal font), or "ams" (the ams fonts).
|
|
9
9
|
* - group (required): the ParseNode group type the symbol should have (i.e.
|
|
10
10
|
"textord", "mathord", etc).
|
|
11
|
-
See https://github.com/
|
|
11
|
+
See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types
|
|
12
12
|
* - replace: the character that this symbol or function should be
|
|
13
13
|
* replaced with (i.e. "\phi" has a replace value of "\u03d5", the phi
|
|
14
14
|
* character in the main font).
|
|
@@ -202,11 +202,12 @@ defineSymbol(math, main, rel, "\u21cc", "\\rightleftharpoons", true);
|
|
|
202
202
|
|
|
203
203
|
// AMS Negated Binary Relations
|
|
204
204
|
defineSymbol(math, ams, rel, "\u226e", "\\nless", true);
|
|
205
|
-
|
|
206
|
-
defineSymbol(math, ams, rel, "\
|
|
205
|
+
// Symbol names preceeded by "@" each have a corresponding macro.
|
|
206
|
+
defineSymbol(math, ams, rel, "\ue010", "\\@nleqslant");
|
|
207
|
+
defineSymbol(math, ams, rel, "\ue011", "\\@nleqq");
|
|
207
208
|
defineSymbol(math, ams, rel, "\u2a87", "\\lneq", true);
|
|
208
209
|
defineSymbol(math, ams, rel, "\u2268", "\\lneqq", true);
|
|
209
|
-
defineSymbol(math, ams, rel, "\ue00c", "
|
|
210
|
+
defineSymbol(math, ams, rel, "\ue00c", "\\@lvertneqq");
|
|
210
211
|
defineSymbol(math, ams, rel, "\u22e6", "\\lnsim", true);
|
|
211
212
|
defineSymbol(math, ams, rel, "\u2a89", "\\lnapprox", true);
|
|
212
213
|
defineSymbol(math, ams, rel, "\u2280", "\\nprec", true);
|
|
@@ -215,22 +216,22 @@ defineSymbol(math, ams, rel, "\u22e0", "\\npreceq", true);
|
|
|
215
216
|
defineSymbol(math, ams, rel, "\u22e8", "\\precnsim", true);
|
|
216
217
|
defineSymbol(math, ams, rel, "\u2ab9", "\\precnapprox", true);
|
|
217
218
|
defineSymbol(math, ams, rel, "\u2241", "\\nsim", true);
|
|
218
|
-
defineSymbol(math, ams, rel, "\ue006", "
|
|
219
|
+
defineSymbol(math, ams, rel, "\ue006", "\\@nshortmid");
|
|
219
220
|
defineSymbol(math, ams, rel, "\u2224", "\\nmid", true);
|
|
220
221
|
defineSymbol(math, ams, rel, "\u22ac", "\\nvdash", true);
|
|
221
222
|
defineSymbol(math, ams, rel, "\u22ad", "\\nvDash", true);
|
|
222
223
|
defineSymbol(math, ams, rel, "\u22ea", "\\ntriangleleft");
|
|
223
224
|
defineSymbol(math, ams, rel, "\u22ec", "\\ntrianglelefteq", true);
|
|
224
225
|
defineSymbol(math, ams, rel, "\u228a", "\\subsetneq", true);
|
|
225
|
-
defineSymbol(math, ams, rel, "\ue01a", "
|
|
226
|
+
defineSymbol(math, ams, rel, "\ue01a", "\\@varsubsetneq");
|
|
226
227
|
defineSymbol(math, ams, rel, "\u2acb", "\\subsetneqq", true);
|
|
227
|
-
defineSymbol(math, ams, rel, "\ue017", "
|
|
228
|
+
defineSymbol(math, ams, rel, "\ue017", "\\@varsubsetneqq");
|
|
228
229
|
defineSymbol(math, ams, rel, "\u226f", "\\ngtr", true);
|
|
229
|
-
defineSymbol(math, ams, rel, "\ue00f", "
|
|
230
|
-
defineSymbol(math, ams, rel, "\ue00e", "
|
|
230
|
+
defineSymbol(math, ams, rel, "\ue00f", "\\@ngeqslant");
|
|
231
|
+
defineSymbol(math, ams, rel, "\ue00e", "\\@ngeqq");
|
|
231
232
|
defineSymbol(math, ams, rel, "\u2a88", "\\gneq", true);
|
|
232
233
|
defineSymbol(math, ams, rel, "\u2269", "\\gneqq", true);
|
|
233
|
-
defineSymbol(math, ams, rel, "\ue00d", "
|
|
234
|
+
defineSymbol(math, ams, rel, "\ue00d", "\\@gvertneqq");
|
|
234
235
|
defineSymbol(math, ams, rel, "\u22e7", "\\gnsim", true);
|
|
235
236
|
defineSymbol(math, ams, rel, "\u2a8a", "\\gnapprox", true);
|
|
236
237
|
defineSymbol(math, ams, rel, "\u2281", "\\nsucc", true);
|
|
@@ -240,20 +241,20 @@ defineSymbol(math, ams, rel, "\u22e9", "\\succnsim", true);
|
|
|
240
241
|
defineSymbol(math, ams, rel, "\u2aba", "\\succnapprox", true);
|
|
241
242
|
// unicode-math maps \u2246 to \simneqq. We'll use the AMS synonym.
|
|
242
243
|
defineSymbol(math, ams, rel, "\u2246", "\\ncong", true);
|
|
243
|
-
defineSymbol(math, ams, rel, "\ue007", "
|
|
244
|
+
defineSymbol(math, ams, rel, "\ue007", "\\@nshortparallel");
|
|
244
245
|
defineSymbol(math, ams, rel, "\u2226", "\\nparallel", true);
|
|
245
246
|
defineSymbol(math, ams, rel, "\u22af", "\\nVDash", true);
|
|
246
247
|
defineSymbol(math, ams, rel, "\u22eb", "\\ntriangleright");
|
|
247
248
|
defineSymbol(math, ams, rel, "\u22ed", "\\ntrianglerighteq", true);
|
|
248
|
-
defineSymbol(math, ams, rel, "\ue018", "
|
|
249
|
+
defineSymbol(math, ams, rel, "\ue018", "\\@nsupseteqq");
|
|
249
250
|
defineSymbol(math, ams, rel, "\u228b", "\\supsetneq", true);
|
|
250
|
-
defineSymbol(math, ams, rel, "\ue01b", "
|
|
251
|
+
defineSymbol(math, ams, rel, "\ue01b", "\\@varsupsetneq");
|
|
251
252
|
defineSymbol(math, ams, rel, "\u2acc", "\\supsetneqq", true);
|
|
252
|
-
defineSymbol(math, ams, rel, "\ue019", "
|
|
253
|
+
defineSymbol(math, ams, rel, "\ue019", "\\@varsupsetneqq");
|
|
253
254
|
defineSymbol(math, ams, rel, "\u22ae", "\\nVdash", true);
|
|
254
255
|
defineSymbol(math, ams, rel, "\u2ab5", "\\precneqq", true);
|
|
255
256
|
defineSymbol(math, ams, rel, "\u2ab6", "\\succneqq", true);
|
|
256
|
-
defineSymbol(math, ams, rel, "\ue016", "
|
|
257
|
+
defineSymbol(math, ams, rel, "\ue016", "\\@nsubseteqq");
|
|
257
258
|
defineSymbol(math, ams, bin, "\u22b4", "\\unlhd");
|
|
258
259
|
defineSymbol(math, ams, bin, "\u22b5", "\\unrhd");
|
|
259
260
|
|
|
@@ -278,7 +279,6 @@ defineSymbol(math, ams, textord, "\u2204", "\\nexists");
|
|
|
278
279
|
defineSymbol(math, ams, textord, "\u2127", "\\mho");
|
|
279
280
|
defineSymbol(math, ams, textord, "\u2132", "\\Finv", true);
|
|
280
281
|
defineSymbol(math, ams, textord, "\u2141", "\\Game", true);
|
|
281
|
-
defineSymbol(math, ams, textord, "\u006b", "\\Bbbk");
|
|
282
282
|
defineSymbol(math, ams, textord, "\u2035", "\\backprime");
|
|
283
283
|
defineSymbol(math, ams, textord, "\u25b2", "\\blacktriangle");
|
|
284
284
|
defineSymbol(math, ams, textord, "\u25bc", "\\blacktriangledown");
|
|
@@ -568,7 +568,7 @@ defineSymbol(math, main, rel, "\u2265", "\\geq", true);
|
|
|
568
568
|
defineSymbol(math, main, rel, "\u2190", "\\gets");
|
|
569
569
|
defineSymbol(math, main, rel, ">", "\\gt");
|
|
570
570
|
defineSymbol(math, main, rel, "\u2208", "\\in", true);
|
|
571
|
-
defineSymbol(math, main, rel, "\
|
|
571
|
+
defineSymbol(math, main, rel, "\ue020", "\\@not");
|
|
572
572
|
defineSymbol(math, main, rel, "\u2282", "\\subset", true);
|
|
573
573
|
defineSymbol(math, main, rel, "\u2283", "\\supset", true);
|
|
574
574
|
defineSymbol(math, main, rel, "\u2286", "\\subseteq", true);
|
|
@@ -625,6 +625,8 @@ defineSymbol(math, main, open, "[", "\\lbrack");
|
|
|
625
625
|
defineSymbol(text, main, textord, "[", "\\lbrack");
|
|
626
626
|
defineSymbol(math, main, close, "]", "\\rbrack");
|
|
627
627
|
defineSymbol(text, main, textord, "]", "\\rbrack");
|
|
628
|
+
defineSymbol(math, main, open, "(", "\\lparen");
|
|
629
|
+
defineSymbol(math, main, close, ")", "\\rparen");
|
|
628
630
|
defineSymbol(text, main, textord, "<", "\\textless"); // in T1 fontenc
|
|
629
631
|
defineSymbol(text, main, textord, ">", "\\textgreater"); // in T1 fontenc
|
|
630
632
|
defineSymbol(math, main, open, "\u230a", "\\lfloor", true);
|
|
@@ -639,6 +641,8 @@ defineSymbol(math, main, textord, "\u2225", "\\|");
|
|
|
639
641
|
defineSymbol(math, main, textord, "\u2225", "\\Vert");
|
|
640
642
|
defineSymbol(text, main, textord, "\u2225", "\\textbardbl");
|
|
641
643
|
defineSymbol(text, main, textord, "~", "\\textasciitilde");
|
|
644
|
+
defineSymbol(text, main, textord, "\\", "\\textbackslash");
|
|
645
|
+
defineSymbol(text, main, textord, "^", "\\textasciicircum");
|
|
642
646
|
defineSymbol(math, main, rel, "\u2191", "\\uparrow", true);
|
|
643
647
|
defineSymbol(math, main, rel, "\u21d1", "\\Uparrow", true);
|
|
644
648
|
defineSymbol(math, main, rel, "\u2193", "\\downarrow", true);
|
|
@@ -769,6 +773,24 @@ for (let i = 0; i < letters.length; i++) {
|
|
|
769
773
|
defineSymbol(text, main, textord, ch, ch);
|
|
770
774
|
}
|
|
771
775
|
|
|
776
|
+
// Blackboard bold and script letters in Unicode range
|
|
777
|
+
defineSymbol(math, ams, textord, "C", "\u2102"); // blackboard bold
|
|
778
|
+
defineSymbol(text, ams, textord, "C", "\u2102");
|
|
779
|
+
defineSymbol(math, ams, textord, "H", "\u210D");
|
|
780
|
+
defineSymbol(text, ams, textord, "H", "\u210D");
|
|
781
|
+
defineSymbol(math, ams, textord, "N", "\u2115");
|
|
782
|
+
defineSymbol(text, ams, textord, "N", "\u2115");
|
|
783
|
+
defineSymbol(math, ams, textord, "P", "\u2119");
|
|
784
|
+
defineSymbol(text, ams, textord, "P", "\u2119");
|
|
785
|
+
defineSymbol(math, ams, textord, "Q", "\u211A");
|
|
786
|
+
defineSymbol(text, ams, textord, "Q", "\u211A");
|
|
787
|
+
defineSymbol(math, ams, textord, "R", "\u211D");
|
|
788
|
+
defineSymbol(text, ams, textord, "R", "\u211D");
|
|
789
|
+
defineSymbol(math, ams, textord, "Z", "\u2124");
|
|
790
|
+
defineSymbol(text, ams, textord, "Z", "\u2124");
|
|
791
|
+
defineSymbol(math, main, mathord, "h", "\u210E"); // italic h, Planck constant
|
|
792
|
+
defineSymbol(text, main, mathord, "h", "\u210E");
|
|
793
|
+
|
|
772
794
|
// The next loop loads wide (surrogate pair) characters.
|
|
773
795
|
// We support some letters in the Unicode range U+1D400 to U+1D7FF,
|
|
774
796
|
// Mathematical Alphanumeric Symbols.
|
package/src/tree.js
CHANGED
|
@@ -41,10 +41,6 @@ export class DocumentFragment<ChildType: VirtualNode>
|
|
|
41
41
|
return utils.contains(this.classes, className);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
tryCombine(sibling: HtmlDomNode): boolean {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
44
|
/** Convert the fragment into a node. */
|
|
49
45
|
toNode(): Node {
|
|
50
46
|
const frag = document.createDocumentFragment();
|
package/src/types.js
CHANGED
|
@@ -12,22 +12,23 @@ export type Mode = "math" | "text";
|
|
|
12
12
|
// - "color": An html color, like "#abc" or "blue"
|
|
13
13
|
// - "url": An url string, in which "\" will be ignored
|
|
14
14
|
// - if it precedes [#$%&~_^\{}]
|
|
15
|
+
// - "raw": A string, allowing single character, percent sign,
|
|
16
|
+
// and nested braces
|
|
15
17
|
// - "original": The same type as the environment that the
|
|
16
18
|
// function being parsed is in (e.g. used for the
|
|
17
19
|
// bodies of functions like \textcolor where the
|
|
18
20
|
// first argument is special and the second
|
|
19
21
|
// argument is parsed normally)
|
|
20
22
|
// - Mode: Node group parsed in given mode.
|
|
21
|
-
export type ArgType = "color" | "size" | "url" | "original" | Mode;
|
|
23
|
+
export type ArgType = "color" | "size" | "url" | "raw" | "original" | Mode;
|
|
22
24
|
|
|
23
25
|
// LaTeX display style.
|
|
24
26
|
export type StyleStr = "text" | "display" | "script" | "scriptscript";
|
|
25
27
|
|
|
26
28
|
// Allowable token text for "break" arguments in parser.
|
|
27
|
-
export type BreakToken = "]" | "}" | "$" | "\\)" | "\\cr";
|
|
29
|
+
export type BreakToken = "]" | "}" | "\\endgroup" | "$" | "\\)" | "\\cr";
|
|
28
30
|
|
|
29
31
|
// Math font variants.
|
|
30
32
|
export type FontVariant = "bold" | "bold-italic" | "bold-sans-serif" |
|
|
31
33
|
"double-struck" | "fraktur" | "italic" | "monospace" | "normal" | "sans-serif" |
|
|
32
34
|
"sans-serif-bold-italic" | "sans-serif-italic" | "script";
|
|
33
|
-
|
package/src/unicodeMake.js
CHANGED
|
@@ -14,7 +14,7 @@ if (fs.statSync(__filename).mtime <= targetMtime && fs.statSync(
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
require('babel
|
|
17
|
+
require('@babel/register');
|
|
18
18
|
const accents = require('./unicodeAccents').default;
|
|
19
19
|
|
|
20
20
|
const encode = function(string) {
|
package/src/utils.js
CHANGED
|
@@ -6,32 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
import type {AnyParseNode} from "./parseNode";
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* Provide an `indexOf` function which works in IE8, but defers to native if
|
|
11
|
-
* possible.
|
|
12
|
-
*/
|
|
13
|
-
const nativeIndexOf = Array.prototype.indexOf;
|
|
14
|
-
const indexOf = function<T>(list: Array<T>, elem: T): number {
|
|
15
|
-
if (list == null) {
|
|
16
|
-
return -1;
|
|
17
|
-
}
|
|
18
|
-
if (nativeIndexOf && list.indexOf === nativeIndexOf) {
|
|
19
|
-
return list.indexOf(elem);
|
|
20
|
-
}
|
|
21
|
-
const l = list.length;
|
|
22
|
-
for (let i = 0; i < l; i++) {
|
|
23
|
-
if (list[i] === elem) {
|
|
24
|
-
return i;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return -1;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
9
|
/**
|
|
31
10
|
* Return whether an element is contained in a list
|
|
32
11
|
*/
|
|
33
12
|
const contains = function<T>(list: Array<T>, elem: T): boolean {
|
|
34
|
-
return indexOf(
|
|
13
|
+
return list.indexOf(elem) !== -1;
|
|
35
14
|
};
|
|
36
15
|
|
|
37
16
|
/**
|
|
@@ -66,31 +45,6 @@ function escape(text: mixed): string {
|
|
|
66
45
|
return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);
|
|
67
46
|
}
|
|
68
47
|
|
|
69
|
-
/**
|
|
70
|
-
* A function to set the text content of a DOM element in all supported
|
|
71
|
-
* browsers. Note that we don't define this if there is no document.
|
|
72
|
-
*/
|
|
73
|
-
let setTextContent;
|
|
74
|
-
if (typeof document !== "undefined") {
|
|
75
|
-
const testNode = document.createElement("span");
|
|
76
|
-
if ("textContent" in testNode) {
|
|
77
|
-
setTextContent = function(node: Node, text: string) {
|
|
78
|
-
node.textContent = text;
|
|
79
|
-
};
|
|
80
|
-
} else {
|
|
81
|
-
setTextContent = function(node: Node, text: string) {
|
|
82
|
-
node.innerText = text;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* A function to clear a node.
|
|
89
|
-
*/
|
|
90
|
-
function clearNode(node: Node) {
|
|
91
|
-
setTextContent(node, "");
|
|
92
|
-
}
|
|
93
|
-
|
|
94
48
|
/**
|
|
95
49
|
* Sometimes we want to pull out the innermost element of a group. In most
|
|
96
50
|
* cases, this will just be the group itself, but when ordgroups and colors have
|
|
@@ -137,26 +91,11 @@ export const assert = function<T>(value: ?T): T {
|
|
|
137
91
|
return value;
|
|
138
92
|
};
|
|
139
93
|
|
|
140
|
-
export const assertType = function<T>(val: mixed, Cls: Class<T>): T {
|
|
141
|
-
if (val instanceof Cls) {
|
|
142
|
-
return val;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// $FlowFixMe: Get constructor name if possible.
|
|
146
|
-
const expected = String(Cls.name || Cls);
|
|
147
|
-
// $FlowFixMe: Get constructor name if possible; else stringify value.
|
|
148
|
-
const actual = String(val.constructor.name || val);
|
|
149
|
-
throw new Error(`Expected ${expected} but got ${actual}.`);
|
|
150
|
-
};
|
|
151
|
-
|
|
152
94
|
export default {
|
|
153
95
|
contains,
|
|
154
96
|
deflt,
|
|
155
97
|
escape,
|
|
156
98
|
hyphenate,
|
|
157
|
-
indexOf,
|
|
158
|
-
setTextContent,
|
|
159
|
-
clearNode,
|
|
160
99
|
getBaseElem,
|
|
161
100
|
isCharacterBox,
|
|
162
101
|
};
|
package/src/wide-character.js
CHANGED
|
@@ -25,8 +25,8 @@ const wideLatinLetterData: Array<[string, string, string]> = [
|
|
|
25
25
|
["mathbf", "textbf", "Main-Bold"], // A-Z bold upright
|
|
26
26
|
["mathbf", "textbf", "Main-Bold"], // a-z bold upright
|
|
27
27
|
|
|
28
|
-
["
|
|
29
|
-
["
|
|
28
|
+
["mathdefault", "textit", "Math-Italic"], // A-Z italic
|
|
29
|
+
["mathdefault", "textit", "Math-Italic"], // a-z italic
|
|
30
30
|
|
|
31
31
|
["boldsymbol", "boldsymbol", "Main-BoldItalic"], // A-Z bold italic
|
|
32
32
|
["boldsymbol", "boldsymbol", "Main-BoldItalic"], // a-z bold italic
|