diff --git a/mathjax/extensions/mml2jax.js b/mathjax/extensions/mml2jax.js
index ba4f87fc6..1533e82df 100644
--- a/mathjax/extensions/mml2jax.js
+++ b/mathjax/extensions/mml2jax.js
@@ -13,6 +13,6 @@
*/
MathJax.Unpack([
- ['MathJax.Extension.mml2jax','={varsion:"1.0.2",config:{element:null,preview:"alttext"},MMLnamespace:"http://www.w3.org/1998/Math/MathML",','PreProcess',':function(','b){if(!','this.configured','){','MathJax.Hub.','Insert(','this.config',',(',7,'config.','mml2jax||{}));if(',9,'.Augment','){',7,8,'this,',9,15,')}',5,'=true}if(typeof(b)==="string"){b=document.getElementById(b)}if(!b){b=',9,'.element||document.body}var c=b.getElementsByTagName("math"),a;if(c.length===0&&','b.getElementsByTagNameNS','){c=',27,'(this.MMLnamespace,"math")}if(this.','msieMathTagBug','){','for(a=c.length-1;a>=0;a--){','if(c[a].nodeName==="MATH"){this.','msieProcessMath','(c[a])}else{','this.ProcessMath(c[a','])}}}else{',33,37,'])}}},ProcessMath',3,'e){var d','=e.parentNode;var a=document.createElement("script");a.type="math/mml";','d','.insertBefore(','a,e);if(this.msieScriptBug){var b=e.outerHTML;b=b.replace(/<\\?import .*?>/i,"").replace(/<\\?xml:namespace .*?\\/>/i,"");b=b.replace(/<(\\/?)m:/g,"<$1").replace(/ /g," ");a.text=b;d.removeChild(e)}else{var ','c=MathJax.HTML.Element("span','");c.appendChild(e);MathJax.HTML.addText(a,c.innerHTML)}','if(this.config.preview!=="none"){this.createPreview(e,a)}},',35,3,'e){var c',44,'c',46,'a,e);var b="";while(e&&','e.nodeName','!=="/MATH"){if(',58,'==="#text"||',58,'==="#comment"){b+=e.nodeValue.replace(/&/g,"&").replace(//g,">")}else{b+=this.','toLowerCase','(e.outerHTML)}var d=e;e=e.nextSibling;d','.parentNode.removeChild(','d)}if(e&&',58,'==="/MATH"){e',66,'e)}a.text=b+"";',50,64,3,'b){var d=b.split(/"/);for(var c=0,a=d.length;c=0;a--){','if(b[a].nodeName==="MATH"){this.','msieProcessMath','(b[a])}else{','this.ProcessMath(b[a','])}}}else{',51,55,'])}}}},ProcessMath',5,'e){var d','=e.parentNode;var a=document.createElement("script");a.type="math/mml";','d','.insertBefore(','a,e);if',35,'msieScriptBug','){var b=e.outerHTML;b=b.replace(/<\\?import .*?>/i,"").replace(/<\\?xml:namespace .*?\\/>/i,"");a.text=b.replace(/ /g," ");d.removeChild(e)}else{var ','c=MathJax.HTML.Element("span','");c.appendChild(e);MathJax.HTML.addText(a,c.innerHTML)}','if(this.config.preview!=="none"){this.createPreview(e,a)}},',53,5,'e){var c',62,'c',64,'a,e);var b="";while(e&&','e.nodeName','!=="/MATH"){if(',79,'==="#text"||',79,'==="#comment"){b+=e.nodeValue.replace(/&/g,"&").replace(//g,">")}else{b+=this.','toLowerCase','(e.outerHTML)}var d=e;e=e.nextSibling;d','.parentNode.removeChild(','d)}if(e&&',79,'==="/MATH"){e',87,'e)}a.text=b+"";',71,85,5,'b){var d=b.split(/"/);for(var c=0,a=d.length;c= 0; i--) {
- if (math[i].nodeName === "MATH") {this.msieProcessMath(math[i])}
- else {this.ProcessMath(math[i])}
+ //
+ // Handle all math tags with no namespaces
+ //
+ this.ProcessMathArray(element.getElementsByTagName("math"));
+ //
+ // Handle math with namespaces in XHTML
+ //
+ if (element.getElementsByTagNameNS)
+ {this.ProcessMathArray(element.getElementsByTagNameNS(this.MMLnamespace,"math"))}
+ //
+ // Handle math with namespaces in HTML
+ //
+ var html = document.getElementsByTagName("html")[0];
+ if (html) {
+ for (var i = 0, m = html.attributes.length; i < m; i++) {
+ var attr = html.attributes[i];
+ if (attr.nodeName.substr(0,6) === "xmlns:" && attr.nodeValue === this.MMLnamespace)
+ {this.ProcessMathArray(element.getElementsByTagName(attr.nodeName.substr(6)+":math"))}
+ }
+ }
+ },
+
+ ProcessMathArray: function (math) {
+ var i;
+ if (math.length) {
+ if (this.msieMathTagBug) {
+ for (i = math.length-1; i >= 0; i--) {
+ if (math[i].nodeName === "MATH") {this.msieProcessMath(math[i])}
+ else {this.ProcessMath(math[i])}
+ }
+ } else {
+ for (i = math.length-1; i >= 0; i--) {this.ProcessMath(math[i])}
}
- } else {
- for (i = math.length-1; i >= 0; i--) {this.ProcessMath(math[i])}
}
},
@@ -66,8 +89,7 @@ MathJax.Extension.mml2jax = {
if (this.msieScriptBug) {
var html = math.outerHTML;
html = html.replace(/<\?import .*?>/i,"").replace(/<\?xml:namespace .*?\/>/i,"");
- html = html.replace(/<(\/?)m:/g,"<$1").replace(/ /g," ");
- script.text = html;
+ script.text = html.replace(/ /g," ");
parent.removeChild(math);
} else {
var span = MathJax.HTML.Element("span"); span.appendChild(math);