Add check for xmlns that specifies MathML, and process tags with namespace prefixes in HTML documents
git-svn-id: https://mathjax.svn.sourceforge.net/svnroot/mathjax/trunk@614 b8fd5906-0fad-46e2-a0d3-10d94ff285d1
This commit is contained in:
parent
fa7820f393
commit
173f1e22df
|
@ -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,"<").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+"</math>";',50,64,3,'b){var d=b.split(/"/);for(var c=0,a=d.length;c<a;c+=2){d[c]=d[c].',64,'()}return d.join(\'"\')},createPreview',3,'b,a){var c;if(',9,'.preview','==="alttext"){var d=b.getAttribute("alttext");if(d!=null){c=[this.filterText(d)]}}else{if(',9,81,' instanceof Array){c=',9,81,'}}if(c){',48,'",{className:',7,12,'preRemoveClass},c);a.parentNode',46,'c,a)}},filterText',3,'a){return a}};',7,'Browser.Select({MSIE',3,'a){',7,8,0,',{msieScriptBug:true,',31,':true})}});',7,'Register.PreProcessor(["',2,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/mml2jax.js");']
|
||||
['MathJax.Extension.mml2jax','={varsion:"1.0.3",config:{element:null,preview:"alttext"},','MMLnamespace',':"http://www.w3.org/1998/Math/MathML",','PreProcess',':function(','e){if(!','this.configured','){','MathJax.Hub.','Insert(','this.config',',(',9,'config.','mml2jax||{}));if(',11,'.Augment','){',9,10,'this,',11,17,')}',7,'=true}if(typeof(e)==="string"){e=document.getElementById(e)}if(!e){e=',11,'.element||document.body}','this.ProcessMathArray(e.getElementsByTagName','("math"));if','(e.getElementsByTagNameNS','){this.','ProcessMathArray',31,'(this.',2,',"math"))}var d=document.getElementsByTagName("html")[0];if(d){for(var c=0,b=d.attributes.length;c<b;c++){var a=d.attributes[c];if','(a.nodeName.substr(','0,6)==="xmlns:"&&a.nodeValue===this.',2,'){',29,38,'6)+":math"))}}}},',33,5,'b){var a;if(b.length){if',35,'msieMathTagBug','){','for(a=b.length-1;a>=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,"<").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+"</math>";',71,85,5,'b){var d=b.split(/"/);for(var c=0,a=d.length;c<a;c+=2){d[c]=d[c].',85,'()}return d.join(\'"\')},createPreview',5,'b,a){var c;if(',11,'.preview','==="alttext"){var d=b.getAttribute("alttext");if(d!=null){c=[this.filterText(d)]}}else{if(',11,102,' instanceof Array){c=',11,102,'}}if(c){',69,'",{className:',9,14,'preRemoveClass},c);a.parentNode',64,'c,a)}},filterText',5,'a){return a}};',9,'Browser.Select({MSIE',5,'a){',9,10,0,',{',67,':true,',49,':true})}});',9,'Register.PreProcessor(["',4,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/mml2jax.js");']
|
||||
]);
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
*/
|
||||
|
||||
MathJax.Extension.mml2jax = {
|
||||
varsion: "1.0.2",
|
||||
varsion: "1.0.3",
|
||||
config: {
|
||||
element: null, // The ID of the element to be processed
|
||||
// (defaults to full document)
|
||||
|
@ -45,16 +45,39 @@ MathJax.Extension.mml2jax = {
|
|||
}
|
||||
if (typeof(element) === "string") {element = document.getElementById(element)}
|
||||
if (!element) {element = this.config.element || document.body}
|
||||
var math = element.getElementsByTagName("math"), i;
|
||||
if (math.length === 0 && element.getElementsByTagNameNS)
|
||||
{math = element.getElementsByTagNameNS(this.MMLnamespace,"math")}
|
||||
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])}
|
||||
//
|
||||
// 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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user