@pie-lib/math-rendering 2.4.1 → 2.4.3

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 CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.4.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.4.2...@pie-lib/math-rendering@2.4.3) (2022-06-13)
7
+
8
+ **Note:** Version bump only for package @pie-lib/math-rendering
9
+
10
+
11
+
12
+
13
+
14
+ ## [2.4.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.4.1...@pie-lib/math-rendering@2.4.2) (2022-05-30)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * unable to load items locally ([17ab686](https://github.com/pie-framework/pie-lib/commit/17ab6864557288aef6ec1d9a130cb508e2591562))
20
+
21
+
22
+
23
+
24
+
6
25
  ## [2.4.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.4.0...@pie-lib/math-rendering@2.4.1) (2022-05-24)
7
26
 
8
27
 
@@ -98,6 +98,10 @@ var defaultOpts = function defaultOpts() {
98
98
  };
99
99
 
100
100
  var fixMathElement = function fixMathElement(element) {
101
+ if (element.dataset.mathHandled) {
102
+ return;
103
+ }
104
+
101
105
  var property = 'innerText';
102
106
 
103
107
  if (element.textContent) {
@@ -109,6 +113,7 @@ var fixMathElement = function fixMathElement(element) {
109
113
  // we need to replace the custom embedded elements with valid latex that Mathjax can understand
110
114
 
111
115
  element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);
116
+ element.dataset.mathHandled = true;
112
117
  }
113
118
  };
114
119
 
@@ -123,6 +128,13 @@ var fixMathElements = function fixMathElements() {
123
128
 
124
129
  exports.fixMathElements = fixMathElements;
125
130
 
131
+ var adjustMathMLStyle = function adjustMathMLStyle() {
132
+ var nodes = document.querySelectorAll('math');
133
+ nodes.forEach(function (node) {
134
+ return node.setAttribute('displaystyle', 'true');
135
+ });
136
+ };
137
+
126
138
  var bootstrap = function bootstrap(opts) {
127
139
  if (typeof window === 'undefined') {
128
140
  return {
@@ -154,21 +166,15 @@ var bootstrap = function bootstrap(opts) {
154
166
  longdiv: '\\enclose{longdiv}'
155
167
  };
156
168
  var texConfig = opts.useSingleDollar ? {
157
- loader: {
158
- require: require
159
- },
160
169
  packages: packages,
161
170
  macros: macros,
162
171
  inlineMath: [['$', '$'], ['\\(', '\\)']],
163
- displayMath: [['$$', '$$'], ['\\[', '\\]']],
164
172
  processEscapes: true
165
173
  } : {
166
174
  packages: packages,
167
175
  macros: macros
168
176
  };
169
177
  var mmlConfig = {
170
- parseAs: 'html',
171
- forceReparse: false,
172
178
  parseError: function parseError(node) {
173
179
  // function to process parsing errors
174
180
  console.log('error:', node);
@@ -181,7 +187,6 @@ var bootstrap = function bootstrap(opts) {
181
187
  wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes), _mstack.chtmlNodes))
182
188
  };
183
189
  var mml = new _mathml.MathML(mmlConfig);
184
- console.log([new _tex.TeX(texConfig), mml]);
185
190
  var customMmlFactory = new _MmlFactory.MmlFactory(_objectSpread(_objectSpread({}, _MmlFactory.MmlFactory.defaultNodes), _mstack.mmlNodes));
186
191
 
187
192
  var html = _mathjax.mathjax.document(document, {
@@ -232,6 +237,7 @@ var bootstrap = function bootstrap(opts) {
232
237
  var renderMath = function renderMath(el, renderOpts) {
233
238
  //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)
234
239
  fixMathElements();
240
+ adjustMathMLStyle();
235
241
 
236
242
  if (!getGlobal().instance) {
237
243
  getGlobal().instance = bootstrap(renderOpts);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/render-math.js"],"names":["window","visitor","SerializedMmlVisitor","toMMl","node","visitTree","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","pkg","name","version","split","defaultOpts","opts","fixMathElement","element","property","textContent","unwrapped","replace","fixMathElements","mathElements","document","querySelectorAll","forEach","item","bootstrap","Typeset","useSingleDollar","console","warn","packages","AllPackages","filter","push","macros","parallelogram","overarc","napprox","longdiv","texConfig","loader","require","inlineMath","displayMath","processEscapes","mmlConfig","parseAs","forceReparse","parseError","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","mml","MathML","TeX","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","InputJax","OutputJax","CHTML","setMmlFactory","elements","updatedDocument","findMath","length","compile","getMetrics","typeset","updateDocument","list","next","data","mathMl","root","parsedMathMl","replaceAll","typesetRoot","setAttribute","e","toString","clear","renderMath","el","renderOpts","instance","Element","arr","Array","from","CHTMLmspace","styles","display","height"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\nimport { MathML } from 'mathjax-full/js/input/mathml';\nimport { TeX } from 'mathjax-full/js/input/tex';\n\nimport { CHTML } from 'mathjax-full/js/output/chtml';\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';\nimport { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';\nimport { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nimport pkg from '../package.json';\nimport { mmlNodes, chtmlNodes } from './mstack';\nimport debug from 'debug';\nimport { wrapMath, unWrapMath } from './normalization';\nimport { MmlFactory } from 'mathjax-full/js/core/MmlTree/MmlFactory';\nimport { SerializedMmlVisitor } from 'mathjax-full/js/core/MmlTree/SerializedMmlVisitor';\nimport { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\n\nconst visitor = new SerializedMmlVisitor();\nconst toMMl = node => visitor.visitTree(node);\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst getGlobal = () => {\n const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\n\n if (typeof window !== 'undefined') {\n if (!window[key]) {\n window[key] = {};\n }\n return window[key];\n } else {\n return {};\n }\n};\n\n/** Add temporary support for a global singleDollar override\n * <code>\n * // This will enable single dollar rendering\n * window.pie = window.pie || {};\n * window.pie.mathRendering = {useSingleDollar: true };\n * </code>\n */\nconst defaultOpts = () => getGlobal().opts || {};\n\nexport const fixMathElement = element => {\n let property = 'innerText';\n\n if (element.textContent) {\n property = 'textContent';\n }\n\n if (element[property]) {\n element[property] = wrapMath(unWrapMath(element[property]).unwrapped);\n // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.\n // we need to replace the custom embedded elements with valid latex that Mathjax can understand\n element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);\n }\n};\n\nexport const fixMathElements = () => {\n const mathElements = document.querySelectorAll('[data-latex]');\n\n mathElements.forEach(item => fixMathElement(item));\n};\n\nconst bootstrap = opts => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\n opts = opts || defaultOpts();\n\n if (opts.useSingleDollar) {\n // eslint-disable-next-line\n console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\\\(...\\\\)');\n }\n\n const packages = AllPackages.filter(name => name !== 'bussproofs'); // Bussproofs needs an output jax\n\n // The autoload extension predefines all the macros from the extensions that haven't been loaded already\n // so that they automatically load the needed extension when they are first used\n packages.push('autoload');\n\n const macros = {\n parallelogram: '\\\\lower.2em{\\\\Huge\\\\unicode{x25B1}}',\n overarc: '\\\\overparen',\n napprox: '\\\\not\\\\approx',\n longdiv: '\\\\enclose{longdiv}'\n };\n\n const texConfig = opts.useSingleDollar\n ? {\n loader: {\n require: require\n },\n packages,\n macros,\n inlineMath: [\n ['$', '$'],\n ['\\\\(', '\\\\)']\n ],\n displayMath: [\n ['$$', '$$'],\n ['\\\\[', '\\\\]']\n ],\n processEscapes: true\n }\n : {\n packages,\n macros\n };\n\n const mmlConfig = {\n parseAs: 'html',\n forceReparse: false,\n parseError: function(node) {\n // function to process parsing errors\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n }\n };\n\n const fontURL = `https://unpkg.com/mathjax-full@${mathjax.version}/ts/output/chtml/fonts/tex-woff-v2`;\n const htmlConfig = {\n fontURL,\n\n wrapperFactory: new CHTMLWrapperFactory({\n ...CHTMLWrapperFactory.defaultNodes,\n ...chtmlNodes\n })\n };\n\n const mml = new MathML(mmlConfig);\n console.log([new TeX(texConfig), mml]);\n\n const customMmlFactory = new MmlFactory({\n ...MmlFactory.defaultNodes,\n ...mmlNodes\n });\n\n const html = mathjax.document(document, {\n compileError: (mj, math, err) => {\n console.log('bad math?:', math);\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n console.log('typeset error');\n console.error(err);\n doc.typesetError(math, err);\n },\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig)\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n return {\n version: mathjax.version,\n html: html,\n Typeset: function(...elements) {\n const updatedDocument = this.html\n .findMath(elements.length ? { elements } : {})\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument();\n\n try {\n const list = updatedDocument.math.list;\n\n for (let item = list.next; typeof item.data !== 'symbol'; item = item.next) {\n const mathMl = toMMl(item.data.root);\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n item.data.typesetRoot.setAttribute('data-mathml', parsedMathMl);\n }\n } catch (e) {\n console.error(e.toString());\n }\n\n updatedDocument.clear();\n }\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)\n fixMathElements();\n\n if (!getGlobal().instance) {\n getGlobal().instance = bootstrap(renderOpts);\n }\n\n if (!el) {\n log('el is undefined');\n return;\n }\n\n if (el instanceof Element) {\n getGlobal().instance.Typeset(el);\n } else if (el.length) {\n const arr = Array.from(el);\n getGlobal().instance.Typeset(...arr);\n }\n};\n\n/**\n * This style is added to overried default styling of mjx-mspace Mathjax tag\n * In mathjax src code \\newline latex gets parsed to <mjx-mspace></mjx-mspace>,\n * but has the default style\n * 'mjx-mspace': {\n \"display\": 'in-line',\n \"text-align\": 'left'\n} which prevents it from showing as a newline value\n */\nCHTMLmspace.styles = {\n 'mjx-mspace': {\n display: 'block',\n 'text-align': 'center',\n height: '5px'\n }\n};\n\nexport default renderMath;\n"],"file":"render-math.js"}
1
+ {"version":3,"sources":["../src/render-math.js"],"names":["window","visitor","SerializedMmlVisitor","toMMl","node","visitTree","log","NEWLINE_BLOCK_REGEX","NEWLINE_LATEX","getGlobal","key","pkg","name","version","split","defaultOpts","opts","fixMathElement","element","dataset","mathHandled","property","textContent","unwrapped","replace","fixMathElements","mathElements","document","querySelectorAll","forEach","item","adjustMathMLStyle","nodes","setAttribute","bootstrap","Typeset","useSingleDollar","console","warn","packages","AllPackages","filter","push","macros","parallelogram","overarc","napprox","longdiv","texConfig","inlineMath","processEscapes","mmlConfig","parseError","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","mml","MathML","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","InputJax","TeX","OutputJax","CHTML","setMmlFactory","elements","updatedDocument","findMath","length","compile","getMetrics","typeset","updateDocument","list","next","data","mathMl","root","parsedMathMl","replaceAll","typesetRoot","e","toString","clear","renderMath","el","renderOpts","instance","Element","arr","Array","from","CHTMLmspace","styles","display","height"],"mappings":"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","sourcesContent":["import { mathjax } from 'mathjax-full/js/mathjax';\nimport { MathML } from 'mathjax-full/js/input/mathml';\nimport { TeX } from 'mathjax-full/js/input/tex';\n\nimport { CHTML } from 'mathjax-full/js/output/chtml';\nimport { RegisterHTMLHandler } from 'mathjax-full/js/handlers/html';\nimport { browserAdaptor } from 'mathjax-full/js/adaptors/browserAdaptor';\nimport { AllPackages } from 'mathjax-full/js/input/tex/AllPackages';\n\nif (typeof window !== 'undefined') {\n RegisterHTMLHandler(browserAdaptor());\n}\n\nimport pkg from '../package.json';\nimport { mmlNodes, chtmlNodes } from './mstack';\nimport debug from 'debug';\nimport { wrapMath, unWrapMath } from './normalization';\nimport { MmlFactory } from 'mathjax-full/js/core/MmlTree/MmlFactory';\nimport { SerializedMmlVisitor } from 'mathjax-full/js/core/MmlTree/SerializedMmlVisitor';\nimport { CHTMLWrapperFactory } from 'mathjax-full/js/output/chtml/WrapperFactory';\nimport { CHTMLmspace } from 'mathjax-full/js/output/chtml/Wrappers/mspace';\n\nconst visitor = new SerializedMmlVisitor();\nconst toMMl = node => visitor.visitTree(node);\n\nconst log = debug('pie-lib:math-rendering');\n\nconst NEWLINE_BLOCK_REGEX = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = '\\\\newline ';\n\nconst getGlobal = () => {\n const key = `${pkg.name}@${pkg.version.split('.')[0]}`;\n\n if (typeof window !== 'undefined') {\n if (!window[key]) {\n window[key] = {};\n }\n return window[key];\n } else {\n return {};\n }\n};\n\n/** Add temporary support for a global singleDollar override\n * <code>\n * // This will enable single dollar rendering\n * window.pie = window.pie || {};\n * window.pie.mathRendering = {useSingleDollar: true };\n * </code>\n */\nconst defaultOpts = () => getGlobal().opts || {};\n\nexport const fixMathElement = element => {\n if (element.dataset.mathHandled) {\n return;\n }\n\n let property = 'innerText';\n\n if (element.textContent) {\n property = 'textContent';\n }\n\n if (element[property]) {\n element[property] = wrapMath(unWrapMath(element[property]).unwrapped);\n // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.\n // we need to replace the custom embedded elements with valid latex that Mathjax can understand\n element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);\n element.dataset.mathHandled = true;\n }\n};\n\nexport const fixMathElements = () => {\n const mathElements = document.querySelectorAll('[data-latex]');\n\n mathElements.forEach(item => fixMathElement(item));\n};\n\nconst adjustMathMLStyle = () => {\n const nodes = document.querySelectorAll('math');\n nodes.forEach(node => node.setAttribute('displaystyle', 'true'));\n};\n\nconst bootstrap = opts => {\n if (typeof window === 'undefined') {\n return { Typeset: () => ({}) };\n }\n\n opts = opts || defaultOpts();\n\n if (opts.useSingleDollar) {\n // eslint-disable-next-line\n console.warn('[math-rendering] using $ is not advisable, please use $$..$$ or \\\\(...\\\\)');\n }\n\n const packages = AllPackages.filter(name => name !== 'bussproofs'); // Bussproofs needs an output jax\n\n // The autoload extension predefines all the macros from the extensions that haven't been loaded already\n // so that they automatically load the needed extension when they are first used\n packages.push('autoload');\n\n const macros = {\n parallelogram: '\\\\lower.2em{\\\\Huge\\\\unicode{x25B1}}',\n overarc: '\\\\overparen',\n napprox: '\\\\not\\\\approx',\n longdiv: '\\\\enclose{longdiv}'\n };\n\n const texConfig = opts.useSingleDollar\n ? {\n packages,\n macros,\n inlineMath: [\n ['$', '$'],\n ['\\\\(', '\\\\)']\n ],\n processEscapes: true\n }\n : {\n packages,\n macros\n };\n\n const mmlConfig = {\n parseError: function(node) {\n // function to process parsing errors\n console.log('error:', node);\n this.error(this.adaptor.textContent(node).replace(/\\n.*/g, ''));\n }\n };\n\n const fontURL = `https://unpkg.com/mathjax-full@${mathjax.version}/ts/output/chtml/fonts/tex-woff-v2`;\n const htmlConfig = {\n fontURL,\n\n wrapperFactory: new CHTMLWrapperFactory({\n ...CHTMLWrapperFactory.defaultNodes,\n ...chtmlNodes\n })\n };\n\n const mml = new MathML(mmlConfig);\n\n const customMmlFactory = new MmlFactory({\n ...MmlFactory.defaultNodes,\n ...mmlNodes\n });\n\n const html = mathjax.document(document, {\n compileError: (mj, math, err) => {\n console.log('bad math?:', math);\n console.error(err);\n },\n typesetError: function(doc, math, err) {\n console.log('typeset error');\n console.error(err);\n doc.typesetError(math, err);\n },\n\n InputJax: [new TeX(texConfig), mml],\n OutputJax: new CHTML(htmlConfig)\n });\n\n // Note: we must set this *after* mathjax.document (no idea why)\n mml.setMmlFactory(customMmlFactory);\n\n return {\n version: mathjax.version,\n html: html,\n Typeset: function(...elements) {\n const updatedDocument = this.html\n .findMath(elements.length ? { elements } : {})\n .compile()\n .getMetrics()\n .typeset()\n .updateDocument();\n\n try {\n const list = updatedDocument.math.list;\n\n for (let item = list.next; typeof item.data !== 'symbol'; item = item.next) {\n const mathMl = toMMl(item.data.root);\n const parsedMathMl = mathMl.replaceAll('\\n', '');\n\n item.data.typesetRoot.setAttribute('data-mathml', parsedMathMl);\n }\n } catch (e) {\n console.error(e.toString());\n }\n\n updatedDocument.clear();\n }\n };\n};\n\nconst renderMath = (el, renderOpts) => {\n //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)\n fixMathElements();\n adjustMathMLStyle();\n\n if (!getGlobal().instance) {\n getGlobal().instance = bootstrap(renderOpts);\n }\n\n if (!el) {\n log('el is undefined');\n return;\n }\n\n if (el instanceof Element) {\n getGlobal().instance.Typeset(el);\n } else if (el.length) {\n const arr = Array.from(el);\n getGlobal().instance.Typeset(...arr);\n }\n};\n\n/**\n * This style is added to overried default styling of mjx-mspace Mathjax tag\n * In mathjax src code \\newline latex gets parsed to <mjx-mspace></mjx-mspace>,\n * but has the default style\n * 'mjx-mspace': {\n \"display\": 'in-line',\n \"text-align\": 'left'\n} which prevents it from showing as a newline value\n */\nCHTMLmspace.styles = {\n 'mjx-mspace': {\n display: 'block',\n 'text-align': 'center',\n height: '5px'\n }\n};\n\nexport default renderMath;\n"],"file":"render-math.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/math-rendering",
3
- "version": "2.4.1",
3
+ "version": "2.4.3",
4
4
  "description": "math rendering utilities",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -14,6 +14,6 @@
14
14
  "lodash": "^4.17.11",
15
15
  "mathjax-full": "3.2.0"
16
16
  },
17
- "gitHead": "611d47d0ed9fb2591be8f26cc78a40049e5e70a5",
17
+ "gitHead": "531a7f4895323a9d524cfb96f7e26a5f1ab9f7c1",
18
18
  "scripts": {}
19
19
  }
@@ -51,6 +51,10 @@ const getGlobal = () => {
51
51
  const defaultOpts = () => getGlobal().opts || {};
52
52
 
53
53
  export const fixMathElement = element => {
54
+ if (element.dataset.mathHandled) {
55
+ return;
56
+ }
57
+
54
58
  let property = 'innerText';
55
59
 
56
60
  if (element.textContent) {
@@ -62,6 +66,7 @@ export const fixMathElement = element => {
62
66
  // because mathquill doesn't understand line breaks, sometimes we end up with custom elements on prompts/rationale/etc.
63
67
  // we need to replace the custom embedded elements with valid latex that Mathjax can understand
64
68
  element[property] = element[property].replace(NEWLINE_BLOCK_REGEX, NEWLINE_LATEX);
69
+ element.dataset.mathHandled = true;
65
70
  }
66
71
  };
67
72
 
@@ -71,6 +76,11 @@ export const fixMathElements = () => {
71
76
  mathElements.forEach(item => fixMathElement(item));
72
77
  };
73
78
 
79
+ const adjustMathMLStyle = () => {
80
+ const nodes = document.querySelectorAll('math');
81
+ nodes.forEach(node => node.setAttribute('displaystyle', 'true'));
82
+ };
83
+
74
84
  const bootstrap = opts => {
75
85
  if (typeof window === 'undefined') {
76
86
  return { Typeset: () => ({}) };
@@ -98,29 +108,20 @@ const bootstrap = opts => {
98
108
 
99
109
  const texConfig = opts.useSingleDollar
100
110
  ? {
101
- loader: {
102
- require: require
103
- },
104
- packages,
105
- macros,
106
- inlineMath: [
107
- ['$', '$'],
108
- ['\\(', '\\)']
109
- ],
110
- displayMath: [
111
- ['$$', '$$'],
112
- ['\\[', '\\]']
113
- ],
114
- processEscapes: true
115
- }
111
+ packages,
112
+ macros,
113
+ inlineMath: [
114
+ ['$', '$'],
115
+ ['\\(', '\\)']
116
+ ],
117
+ processEscapes: true
118
+ }
116
119
  : {
117
- packages,
118
- macros
119
- };
120
+ packages,
121
+ macros
122
+ };
120
123
 
121
124
  const mmlConfig = {
122
- parseAs: 'html',
123
- forceReparse: false,
124
125
  parseError: function(node) {
125
126
  // function to process parsing errors
126
127
  console.log('error:', node);
@@ -139,7 +140,6 @@ const bootstrap = opts => {
139
140
  };
140
141
 
141
142
  const mml = new MathML(mmlConfig);
142
- console.log([new TeX(texConfig), mml]);
143
143
 
144
144
  const customMmlFactory = new MmlFactory({
145
145
  ...MmlFactory.defaultNodes,
@@ -196,6 +196,7 @@ const bootstrap = opts => {
196
196
  const renderMath = (el, renderOpts) => {
197
197
  //TODO: remove this - has nothing to do with math-rendering (it's from editable-html)
198
198
  fixMathElements();
199
+ adjustMathMLStyle();
199
200
 
200
201
  if (!getGlobal().instance) {
201
202
  getGlobal().instance = bootstrap(renderOpts);