@pie-lib/math-rendering 2.5.12 → 2.5.13
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 +8 -0
- package/lib/render-math.js +53 -3
- package/lib/render-math.js.map +1 -1
- package/package.json +3 -3
- package/src/render-math.js +52 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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.5.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.12...@pie-lib/math-rendering@2.5.13) (2023-03-20)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/math-rendering
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [2.5.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/math-rendering@2.5.10...@pie-lib/math-rendering@2.5.12) (2023-01-31)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @pie-lib/math-rendering
|
package/lib/render-math.js
CHANGED
|
@@ -159,12 +159,47 @@ var bootstrap = function bootstrap(opts) {
|
|
|
159
159
|
packages: packages,
|
|
160
160
|
macros: macros,
|
|
161
161
|
inlineMath: [['$', '$'], ['\\(', '\\)']],
|
|
162
|
-
processEscapes: true
|
|
162
|
+
processEscapes: true,
|
|
163
|
+
options: {
|
|
164
|
+
enableExplorer: true,
|
|
165
|
+
enableAssistiveMml: true,
|
|
166
|
+
a11y: {
|
|
167
|
+
speech: true,
|
|
168
|
+
braille: true,
|
|
169
|
+
subtitles: true
|
|
170
|
+
},
|
|
171
|
+
sre: {
|
|
172
|
+
domain: 'default',
|
|
173
|
+
style: 'default',
|
|
174
|
+
locale: 'en'
|
|
175
|
+
}
|
|
176
|
+
}
|
|
163
177
|
} : {
|
|
164
178
|
packages: packages,
|
|
165
|
-
macros: macros
|
|
179
|
+
macros: macros,
|
|
180
|
+
options: {
|
|
181
|
+
enableExplorer: true,
|
|
182
|
+
enableAssistiveMml: true,
|
|
183
|
+
a11y: {
|
|
184
|
+
speech: true,
|
|
185
|
+
braille: true,
|
|
186
|
+
subtitles: true
|
|
187
|
+
},
|
|
188
|
+
sre: {
|
|
189
|
+
domain: 'default',
|
|
190
|
+
style: 'default',
|
|
191
|
+
locale: 'en'
|
|
192
|
+
}
|
|
193
|
+
}
|
|
166
194
|
};
|
|
167
195
|
var mmlConfig = {
|
|
196
|
+
options: {
|
|
197
|
+
a11y: {
|
|
198
|
+
speech: true,
|
|
199
|
+
braille: true,
|
|
200
|
+
subtitles: true
|
|
201
|
+
}
|
|
202
|
+
},
|
|
168
203
|
parseError: function parseError(node) {
|
|
169
204
|
// function to process parsing errors
|
|
170
205
|
console.log('error:', node);
|
|
@@ -174,7 +209,12 @@ var bootstrap = function bootstrap(opts) {
|
|
|
174
209
|
var fontURL = "https://unpkg.com/mathjax-full@".concat(_mathjax.mathjax.version, "/ts/output/chtml/fonts/tex-woff-v2");
|
|
175
210
|
var htmlConfig = {
|
|
176
211
|
fontURL: fontURL,
|
|
177
|
-
wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes), _mstack.chtmlNodes))
|
|
212
|
+
wrapperFactory: new _WrapperFactory.CHTMLWrapperFactory(_objectSpread(_objectSpread({}, _WrapperFactory.CHTMLWrapperFactory.defaultNodes), _mstack.chtmlNodes)),
|
|
213
|
+
options: {
|
|
214
|
+
renderActions: {
|
|
215
|
+
assistiveMml: [['AssistiveMmlHandler']]
|
|
216
|
+
}
|
|
217
|
+
}
|
|
178
218
|
};
|
|
179
219
|
var mml = new _mathml.MathML(mmlConfig);
|
|
180
220
|
var customMmlFactory = new _MmlFactory.MmlFactory(_objectSpread(_objectSpread({}, _MmlFactory.MmlFactory.defaultNodes), _mstack.mmlNodes));
|
|
@@ -189,6 +229,16 @@ var bootstrap = function bootstrap(opts) {
|
|
|
189
229
|
console.error(err);
|
|
190
230
|
doc.typesetError(math, err);
|
|
191
231
|
},
|
|
232
|
+
options: {
|
|
233
|
+
enableAssistiveMml: true,
|
|
234
|
+
menuOptions: {
|
|
235
|
+
settings: {
|
|
236
|
+
assistiveMml: true,
|
|
237
|
+
collapsible: true,
|
|
238
|
+
explorer: true
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
},
|
|
192
242
|
InputJax: [new _tex.TeX(texConfig), mml],
|
|
193
243
|
OutputJax: new _chtml.CHTML(htmlConfig)
|
|
194
244
|
}); // Note: we must set this *after* mathjax.document (no idea why)
|
package/lib/render-math.js.map
CHANGED
|
@@ -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","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"}
|
|
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","options","enableExplorer","enableAssistiveMml","a11y","speech","braille","subtitles","sre","domain","style","locale","mmlConfig","parseError","error","adaptor","fontURL","mathjax","htmlConfig","wrapperFactory","CHTMLWrapperFactory","defaultNodes","chtmlNodes","renderActions","assistiveMml","mml","MathML","customMmlFactory","MmlFactory","mmlNodes","html","compileError","mj","math","err","typesetError","doc","menuOptions","settings","collapsible","explorer","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 options: {\n enableExplorer: true,\n enableAssistiveMml: true,\n a11y: {\n speech: true,\n braille: true,\n subtitles: true,\n },\n sre: {\n domain: 'default',\n style: 'default',\n locale: 'en',\n },\n },\n }\n : {\n packages,\n macros,\n options: {\n enableExplorer: true,\n enableAssistiveMml: true,\n a11y: {\n speech: true,\n braille: true,\n subtitles: true,\n },\n sre: {\n domain: 'default',\n style: 'default',\n locale: 'en',\n },\n },\n };\n\n const mmlConfig = {\n options: {\n a11y: {\n speech: true,\n braille: true,\n subtitles: true,\n },\n },\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 options: {\n renderActions: {\n assistiveMml: [['AssistiveMmlHandler']],\n },\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 options: {\n enableAssistiveMml: true,\n menuOptions: {\n settings: {\n assistiveMml: true,\n collapsible: true,\n explorer: true,\n },\n },\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.5.
|
|
3
|
+
"version": "2.5.13",
|
|
4
4
|
"description": "math rendering utilities",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"debug": "^4.1.1",
|
|
14
14
|
"lodash": "^4.17.11",
|
|
15
|
-
"mathjax-full": "3.2.
|
|
15
|
+
"mathjax-full": "3.2.2"
|
|
16
16
|
},
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "95e4b8d96c905e5513f7684eb9605dbd9bf31310",
|
|
18
18
|
"scripts": {}
|
|
19
19
|
}
|
package/src/render-math.js
CHANGED
|
@@ -115,13 +115,48 @@ const bootstrap = (opts) => {
|
|
|
115
115
|
['\\(', '\\)'],
|
|
116
116
|
],
|
|
117
117
|
processEscapes: true,
|
|
118
|
+
options: {
|
|
119
|
+
enableExplorer: true,
|
|
120
|
+
enableAssistiveMml: true,
|
|
121
|
+
a11y: {
|
|
122
|
+
speech: true,
|
|
123
|
+
braille: true,
|
|
124
|
+
subtitles: true,
|
|
125
|
+
},
|
|
126
|
+
sre: {
|
|
127
|
+
domain: 'default',
|
|
128
|
+
style: 'default',
|
|
129
|
+
locale: 'en',
|
|
130
|
+
},
|
|
131
|
+
},
|
|
118
132
|
}
|
|
119
133
|
: {
|
|
120
134
|
packages,
|
|
121
135
|
macros,
|
|
136
|
+
options: {
|
|
137
|
+
enableExplorer: true,
|
|
138
|
+
enableAssistiveMml: true,
|
|
139
|
+
a11y: {
|
|
140
|
+
speech: true,
|
|
141
|
+
braille: true,
|
|
142
|
+
subtitles: true,
|
|
143
|
+
},
|
|
144
|
+
sre: {
|
|
145
|
+
domain: 'default',
|
|
146
|
+
style: 'default',
|
|
147
|
+
locale: 'en',
|
|
148
|
+
},
|
|
149
|
+
},
|
|
122
150
|
};
|
|
123
151
|
|
|
124
152
|
const mmlConfig = {
|
|
153
|
+
options: {
|
|
154
|
+
a11y: {
|
|
155
|
+
speech: true,
|
|
156
|
+
braille: true,
|
|
157
|
+
subtitles: true,
|
|
158
|
+
},
|
|
159
|
+
},
|
|
125
160
|
parseError: function(node) {
|
|
126
161
|
// function to process parsing errors
|
|
127
162
|
console.log('error:', node);
|
|
@@ -137,6 +172,12 @@ const bootstrap = (opts) => {
|
|
|
137
172
|
...CHTMLWrapperFactory.defaultNodes,
|
|
138
173
|
...chtmlNodes,
|
|
139
174
|
}),
|
|
175
|
+
|
|
176
|
+
options: {
|
|
177
|
+
renderActions: {
|
|
178
|
+
assistiveMml: [['AssistiveMmlHandler']],
|
|
179
|
+
},
|
|
180
|
+
},
|
|
140
181
|
};
|
|
141
182
|
|
|
142
183
|
const mml = new MathML(mmlConfig);
|
|
@@ -157,6 +198,17 @@ const bootstrap = (opts) => {
|
|
|
157
198
|
doc.typesetError(math, err);
|
|
158
199
|
},
|
|
159
200
|
|
|
201
|
+
options: {
|
|
202
|
+
enableAssistiveMml: true,
|
|
203
|
+
menuOptions: {
|
|
204
|
+
settings: {
|
|
205
|
+
assistiveMml: true,
|
|
206
|
+
collapsible: true,
|
|
207
|
+
explorer: true,
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
|
|
160
212
|
InputJax: [new TeX(texConfig), mml],
|
|
161
213
|
OutputJax: new CHTML(htmlConfig),
|
|
162
214
|
});
|