From ba8a73953178e9f5bef86cafe9480bf9eaad626b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 9 Nov 2010 07:20:13 -0500 Subject: [PATCH 1/4] Fix for parentNode bug in IE --- mathjax/extensions/tex2jax.js | 2 +- mathjax/unpacked/extensions/tex2jax.js | 17 +++++------------ test/tex2jax.html | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 test/tex2jax.html diff --git a/mathjax/extensions/tex2jax.js b/mathjax/extensions/tex2jax.js index 6397fc1d3..4ac55faf7 100644 --- a/mathjax/extensions/tex2jax.js +++ b/mathjax/extensions/tex2jax.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.Extension.tex2jax','={version:"1.0",config:{element:null,','inlineMath',':[["$","$"],["\\\\(","\\\\)"]],','displayMath',':[["$$","$$"],["\\\\[","\\\\]"]],skipTags:["script","noscript","style","textarea","pre","code"],','ignoreClass',':"tex2jax_ignore",','processClass',':"tex2jax_process",','processEscapes',':false,','processEnvironments',':true,preview:"TeX"},','PreProcess',':function(','a){if(!','this.configured','){','MathJax.Hub.','Insert(','this.config',',(',19,'config.','tex2jax||{}));if(',21,'.Augment','){',19,'Insert(this,',21,27,')}','if(typeof(',21,'.previewTeX',')!=="undefined"&&!',21,36,'){',21,'.preview','="none"}',17,'=true}',34,'a)==="','string"){a=','document.','getElementById(a)}if(!a){a=',21,'.element||',49,'body}this.','createPatterns','();this.','scanElement','(a,a','.nextSibling',')},',55,':function(){var d=[],c,a,b=',21,';this.match={};','for(c=0,a=b.',2,'.length;c + +MathJax tex2jax Test + + + + + +

Text Before: \(x+1\)

+

\(x+1\) Text after

+

\(\text{no text}\)

+ +

Text Before: $$x+1$$

+

$$x+1$$ Text after

+

$$\text{no text}$$

+ + + From 6dd80fa1966fb780c8db09517ad858896fe45d56 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 9 Nov 2010 11:15:45 -0500 Subject: [PATCH 2/4] issue #18: resolve conflict between jsMath2jax and tex2jax both processing the same equation --- mathjax/extensions/jsMath2jax.js | 2 +- mathjax/unpacked/extensions/jsMath2jax.js | 16 ++++++------ test/jsMath2jax.html | 30 +++++++++++++++++++++++ 3 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 test/jsMath2jax.html diff --git a/mathjax/extensions/jsMath2jax.js b/mathjax/extensions/jsMath2jax.js index 9ccd87d46..5f5125f56 100644 --- a/mathjax/extensions/jsMath2jax.js +++ b/mathjax/extensions/jsMath2jax.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.Extension.jsMath2jax','={version:"1.0",config:{element:null,','preview',':"TeX"},','PreProcess',':function(','b){if(!','this.configured','){','MathJax.Hub.','Insert(this','.config,(',9,'config.jsMath2jax||{}));if(','this.config.','Augment','){',9,10,',',14,15,')}','if(typeof(',14,'previewTeX',')!=="undefined"&&!',14,25,'){',14,2,'="none"}this.previewClass=',9,'config.preRemoveClass',';',7,'=true}',23,'b)==="string"){b=document.getElementById(b)}if(!b){b=',14,'element||document.body}var c','=b.getElementsByTagName("','span"),a;for(a=c','.length-1;a>=0;a--){if(String(','c','[a].className).match(/(^| )math( |$)/)){this.ConvertMath(','c[a],"")}}var d',42,'div");for(a=d',44,'d',46,'d[a],"; mode=display")}}},ConvertMath',5,'c,d){var b=c','.parentNode',',a=this.','createMathTag','(d,c.innerHTML);if(c.nextSibling){b','.insertBefore(','a,c.nextSibling)}else{b.appendChild(a)}if(',14,2,'!=="none"){this.','createPreview','(c)}b.removeChild(c)},',65,5,'a){var b;if(',14,2,'==="TeX"){b=[this.filterTeX(a.innerHTML)]}else{if(',14,2,' instanceof Array){b=',14,2,'}}if(b){b=MathJax.HTML.Element("span",{className:',9,34,'},b);a',56,60,'b,a)}},',58,5,'c,b){b=b.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");var a=document.createElement("script");a.type="math/tex"+c;if(',9,'Browser.isMSIE){a.text=b}else{a.appendChild(document.createTextNode(b))}return a},filterTeX',5,'a){return a}};',9,'Register.PreProcessor(["',4,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/jsMath2jax.js");'] + ['MathJax.Extension.jsMath2jax','={version:"1.0.1",config:{element:null,','preview',':"TeX"},','PreProcess',':function(','b){if(!','this.configured','){','MathJax.Hub.','Insert(this','.config,(',9,'config.jsMath2jax||{}));if(','this.config.','Augment','){',9,10,',',14,15,')}','if(typeof(',14,'previewTeX',')!=="undefined"&&!',14,25,'){',14,2,'="none"}this.previewClass=',9,'config.preRemoveClass',';',7,'=true}',23,'b)==="string"){b=document.getElementById(b)}if(!b){b=',14,'element||document.body}var c=b','.getElementsByTagName("','span"),a;for(a=c','.length-1;a>=0;a--){if(String(','c','[a].className).match(/(^| )math( |$)/)){this.ConvertMath(','c[a],"")}}var d=b',42,'div");for(a=d',44,'d',46,'d[a],"; mode=display")}}},ConvertMath',5,'c,d){if(c',42,'script").length===0){var b=c','.parentNode',',a=this.','createMathTag','(d,c.innerHTML);if(c.nextSibling){b','.insertBefore(','a,c.nextSibling)}else{b.appendChild(a)}if(',14,2,'!=="none"){this.','createPreview','(c)}b.removeChild(c)}},',67,5,'a){var b;if(',14,2,'==="TeX"){b=[this.filterTeX(a.innerHTML)]}else{if(',14,2,' instanceof Array){b=',14,2,'}}if(b){b=MathJax.HTML.Element("span",{className:',9,34,'},b);a',58,62,'b,a)}},',60,5,'c,b){b=b.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");var a=document.createElement("script");a.type="math/tex"+c;if(',9,'Browser.isMSIE){a.text=b}else{a.appendChild(document.createTextNode(b))}return a},filterTeX',5,'a){return a}};',9,'Register.PreProcessor(["',4,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/jsMath2jax.js");'] ]); diff --git a/mathjax/unpacked/extensions/jsMath2jax.js b/mathjax/unpacked/extensions/jsMath2jax.js index 3c2fd2d68..80568a887 100644 --- a/mathjax/unpacked/extensions/jsMath2jax.js +++ b/mathjax/unpacked/extensions/jsMath2jax.js @@ -31,7 +31,7 @@ */ MathJax.Extension.jsMath2jax = { - version: "1.0", + version: "1.0.1", config: { element: null, // The ID of the element to be processed @@ -62,12 +62,14 @@ MathJax.Extension.jsMath2jax = { }, ConvertMath: function (node,mode) { - var parent = node.parentNode, - script = this.createMathTag(mode,node.innerHTML); - if (node.nextSibling) {parent.insertBefore(script,node.nextSibling)} - else {parent.appendChild(script)} - if (this.config.preview !== "none") {this.createPreview(node)} - parent.removeChild(node); + if (node.getElementsByTagName("script").length === 0) { + var parent = node.parentNode, + script = this.createMathTag(mode,node.innerHTML); + if (node.nextSibling) {parent.insertBefore(script,node.nextSibling)} + else {parent.appendChild(script)} + if (this.config.preview !== "none") {this.createPreview(node)} + parent.removeChild(node); + } }, createPreview: function (node) { diff --git a/test/jsMath2jax.html b/test/jsMath2jax.html new file mode 100644 index 000000000..08effb01c --- /dev/null +++ b/test/jsMath2jax.html @@ -0,0 +1,30 @@ + + + +jsMath2jax Test + + + + +\begin{eqnarray} + x & = & 4y + 3z \\ + z & > & a + b + ... + j + \\ + & & k + l + m + \end{eqnarray} + +
+\begin{eqnarray} + x & = & 4y + 3z \\ + z & > & a + b + ... + j + \\ + & & k + l + m + \end{eqnarray} + +
+ + + From bcac0b133e0a0cd8a40186d762c9e026a38b2b9c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 10 Nov 2010 21:59:07 -0500 Subject: [PATCH 3/4] Removed unneeded reassignment of 'element' --- mathjax/extensions/tex2jax.js | 2 +- mathjax/unpacked/extensions/tex2jax.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/mathjax/extensions/tex2jax.js b/mathjax/extensions/tex2jax.js index 4ac55faf7..6a4d4a0db 100644 --- a/mathjax/extensions/tex2jax.js +++ b/mathjax/extensions/tex2jax.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.Extension.tex2jax','={version:"1.0.1",config:{element:null,','inlineMath',':[["$","$"],["\\\\(","\\\\)"]],','displayMath',':[["$$","$$"],["\\\\[","\\\\]"]],skipTags:["script","noscript","style","textarea","pre","code"],','ignoreClass',':"tex2jax_ignore",','processClass',':"tex2jax_process",','processEscapes',':false,','processEnvironments',':true,preview:"TeX"},','PreProcess',':function(','a){if(!','this.configured','){','MathJax.Hub.','Insert(','this.config',',(',19,'config.','tex2jax||{}));if(',21,'.Augment','){',19,'Insert(this,',21,27,')}','if(typeof(',21,'.previewTeX',')!=="undefined"&&!',21,36,'){',21,'.preview','="none"}',17,'=true}',34,'a)==="','string"){a=','document.','getElementById(a)}if(!a){a=',21,'.element||',49,'body}this.','createPatterns','();this.','scanElement','(a,a','.nextSibling',')},',55,':function(){var d=[],c,a,b=',21,';this.match={};','for(c=0,a=b.',2,'.length;c Date: Thu, 11 Nov 2010 22:20:20 -0500 Subject: [PATCH 4/4] test directory was not supposed to become part of the main repository (it was just for testing the fixes --- test/jsMath2jax.html | 30 ------------------------------ test/tex2jax.html | 25 ------------------------- 2 files changed, 55 deletions(-) delete mode 100644 test/jsMath2jax.html delete mode 100644 test/tex2jax.html diff --git a/test/jsMath2jax.html b/test/jsMath2jax.html deleted file mode 100644 index 08effb01c..000000000 --- a/test/jsMath2jax.html +++ /dev/null @@ -1,30 +0,0 @@ - - - -jsMath2jax Test - - - - -\begin{eqnarray} - x & = & 4y + 3z \\ - z & > & a + b + ... + j + \\ - & & k + l + m - \end{eqnarray} - -
-\begin{eqnarray} - x & = & 4y + 3z \\ - z & > & a + b + ... + j + \\ - & & k + l + m - \end{eqnarray} - -
- - - diff --git a/test/tex2jax.html b/test/tex2jax.html deleted file mode 100644 index 712ba3956..000000000 --- a/test/tex2jax.html +++ /dev/null @@ -1,25 +0,0 @@ - - -MathJax tex2jax Test - - - - - -

Text Before: \(x+1\)

-

\(x+1\) Text after

-

\(\text{no text}\)

- -

Text Before: $$x+1$$

-

$$x+1$$ Text after

-

$$\text{no text}$$

- - -