summaryrefslogtreecommitdiff
path: root/examples/includes/ASCIIMathPHP-2.0/htmlMathML.js
diff options
context:
space:
mode:
Diffstat (limited to 'examples/includes/ASCIIMathPHP-2.0/htmlMathML.js')
-rw-r--r--examples/includes/ASCIIMathPHP-2.0/htmlMathML.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/examples/includes/ASCIIMathPHP-2.0/htmlMathML.js b/examples/includes/ASCIIMathPHP-2.0/htmlMathML.js
new file mode 100644
index 000000000..f81a1d234
--- /dev/null
+++ b/examples/includes/ASCIIMathPHP-2.0/htmlMathML.js
@@ -0,0 +1,86 @@
+/* March 19, 2004 MathHTML (c) Peter Jipsen http://www.chapman.edu/~jipsen
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+(at http://www.gnu.org/copyleft/gpl.html) for more details.*/
+
+function convertMath(node) {// for Gecko
+ if (node.nodeType==1) {
+ var newnode =
+ document.createElementNS("http://www.w3.org/1998/Math/MathML",
+ node.nodeName.toLowerCase());
+ for(var i=0; i < node.attributes.length; i++) {
+ if (node.attributes[i].nodeName == 'displaystyle') {
+ newnode.setAttribute(node.attributes[i].nodeName,node.attributes[i].nodeValue);
+ }
+ }
+ for (var i=0; i<node.childNodes.length; i++) {
+ var st = node.childNodes[i].nodeValue;
+ if (st==null || st.slice(0,1)!=" " && st.slice(0,1)!="\n")
+ newnode.appendChild(convertMath(node.childNodes[i]));
+ }
+ return newnode;
+ }
+ else return node;
+}
+function convert() {
+
+ if (document.createElementNS) {
+ var mmlnode = document.getElementsByTagName("span");
+
+ for (var i=0; i<mmlnode.length; i++) {
+ var tmp_node = mmlnode[i];
+ if (tmp_node.className == 'asciimath') {
+ tmp_node.replaceChild(convertMath(tmp_node.firstChild),tmp_node.firstChild);
+ /*
+ for (var j=0;j<tmp_node.childNodes.length;j++) {
+ if (tmp_node.childNodes[j].nodeType != 3) {
+
+ }
+ }
+ */
+ }
+ }
+ } else {
+ var st,node,newnode;
+ var mmlnode = document.getElementsByTagName("math");
+
+ for (var i=0; i<mmlnode.length; i++) {
+ var str = "";
+ node = mmlnode[i];
+ while (node.nodeName!="/MATH" && node.nextSibling) {
+ st = node.nodeName.toLowerCase();
+ if (st=="#text") {
+ str += node.nodeValue;
+ } else {
+ str += (st.slice(0,1)=="/" ? "</m:"+st.slice(1) : "<m:"+st);
+ if (st.slice(0,1)!="/") {
+ for(var j=0; j < node.attributes.length; j++) {
+ if (node.attributes[j].nodeValue!="italic" &&
+ node.attributes[j].nodeValue!="" &&
+ node.attributes[j].nodeValue!="inherit" &&
+ node.attributes[j].nodeValue!=undefined) {
+ str += " "+node.attributes[j].nodeName+"="+
+ "\""+node.attributes[j].nodeValue+"\"";
+ }
+ }
+ }
+ str += ">";
+ }
+ node = node.nextSibling;
+ node.parentNode.removeChild(node.previousSibling);
+ }
+
+ if (str != '') {
+ str += "</m:math>";
+ newnode = document.createElement("span");
+ node.parentNode.replaceChild(newnode,node);
+ newnode.innerHTML = str;
+ }
+ }
+ }
+} \ No newline at end of file