www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit f0c0c6386ef298a42ec433d390300a0f023421fc
parent 05c7aace269cb682be70b9916d979b3d0bf9bdc8
Author: Davide P. Cervone <dpvc@union.edu>
Date:   Sat, 16 Aug 2014 12:58:51 -0400

Properly handle callbacks returned by pre- and postfilter hooks.

Diffstat:
Munpacked/jax/input/AsciiMath/jax.js | 7++++---
Munpacked/jax/input/MathML/jax.js | 9+++++----
Munpacked/jax/input/TeX/jax.js | 7++++---
3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/unpacked/jax/input/AsciiMath/jax.js b/unpacked/jax/input/AsciiMath/jax.js @@ -1284,15 +1284,16 @@ junk = null; Translate: function (script) { var mml, math = MathJax.HTML.getScript(script); var data = {math:math, script:script}; - this.prefilterHooks.Execute(data); math = data.math; + var callback = this.prefilterHooks.Execute(data); if (callback) return callback; + math = data.math; try { mml = this.AM.parseMath(math); } catch(err) { if (!err.asciimathError) {throw err} mml = this.formatError(err,math); } - data.math = MML(mml); this.postfilterHooks.Execute(data); - return data.math; + data.math = MML(mml); + return this.postfilterHooks.Execute(data) || data.math; }, formatError: function (err,math,script) { var message = err.message.replace(/\n.*/,""); diff --git a/unpacked/jax/input/MathML/jax.js b/unpacked/jax/input/MathML/jax.js @@ -247,20 +247,21 @@ if (script.firstChild && script.firstChild.nodeName.toLowerCase().replace(/^[a-z]+:/,"") === "math") { data.math = script.firstChild; - this.prefilterHooks.Execute(data); math = data.math; } else { math = MathJax.HTML.getScript(script); if (BROWSER.isMSIE) {math = math.replace(/(&nbsp;)+$/,"")} - data.math = math; this.prefilterHooks.Execute(data); math = data.math; + data.math = math; } + var callback = this.prefilterHooks.Execute(data); if (callback) return callback; + math = data.math; try { mml = MATHML.Parse(math).mml; } catch(err) { if (!err.mathmlError) {throw err} mml = this.formatError(err,math,script); } - data.math = MML(mml); this.postfilterHooks.Execute(data); - return data.math; + data.math = MML(mml); + return this.postfilterHooks.Execute(data) || data.math; }, prefilterMath: function (math,script) {return math}, prefilterMathML: function (math,script) {return math}, diff --git a/unpacked/jax/input/TeX/jax.js b/unpacked/jax/input/TeX/jax.js @@ -2086,7 +2086,8 @@ var mml, isError = false, math = MathJax.HTML.getScript(script); var display = (script.type.replace(/\n/g," ").match(/(;|\s|\n)mode\s*=\s*display(;|\s|\n|$)/) != null); var data = {math:math, display:display, script:script}; - this.prefilterHooks.Execute(data); math = data.math; + var callback = this.prefilterHooks.Execute(data); if (callback) return callback; + math = data.math; try { mml = TEX.Parse(math).mml(); } catch(err) { @@ -2097,8 +2098,8 @@ if (mml.inferred) {mml = MML.apply(MathJax.ElementJax,mml.data)} else {mml = MML(mml)} if (display) {mml.root.display = "block"} if (isError) {mml.texError = true} - data.math = mml; this.postfilterHooks.Execute(data); - return data.math; + data.math = mml; + return this.postfilterHooks.Execute(data) || data.math; }, prefilterMath: function (math,displaystyle,script) { return math;