lib/gollum/frontend/public/javascript/MathJax/extensions/tex2jax.js in gollum-1.1.1 vs lib/gollum/frontend/public/javascript/MathJax/extensions/tex2jax.js in gollum-1.2.0
- old
+ new
@@ -1,242 +1,18 @@
-/*************************************************************
- *
- * MathJax/extensions/tex2jax.js
+/*
+ * ../SourceForge/trunk/mathjax/extensions/tex2jax.js
*
- * Implements the TeX to Jax preprocessor that locates TeX code
- * within the text of a document and replaces it with SCRIPT tags
- * for processing by MathJax.
+ * Copyright (c) 2010 Design Science, Inc.
*
- * ---------------------------------------------------------------------
- *
- * Copyright (c) 2009 Design Science, Inc.
+ * Part of the MathJax library.
+ * See http://www.mathjax.org for details.
*
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Apache License, Version 2.0;
* you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
*/
-MathJax.Extension.tex2jax = {
- config: {
- element: null, // The ID of the element to be processed
- // (defaults to full document)
+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<a;c++){d.push(this.patternQuote(b.',2,'[c][0]));this.match[b.',2,'[c][0]]={mode:"",','end:b.',2,'[c][1],pattern:this.endPattern(b.',2,'[c][1])}}',65,4,67,4,69,4,'[c][0]]={','mode:"; mode=display",',72,4,74,4,76,'this.start','=','new RegExp','(d.sort(this.sortLength).join("|")+(b.',12,'?"|\\\\\\\\begin\\\\{([^}]*)\\\\}":"")+(b.',10,'?"|\\\\\\\\*\\\\\\\\\\\\$":""),"g");this.skipTags=',92,'("^("+b.skipTags.join("|")+")$","i");this.',6,'=new RegExp("(^| )("+b.',6,'+")( |$)");this.',8,101,8,'+")( |$)")},','patternQuote',15,'a){return ','a','.replace','(/([\\^$(){}+*?\\-|\\[\\]\\:\\\\])/g,"\\\\$1")},endPattern',15,110,92,'(this.',108,'(a)+"|\\\\\\\\.","g")},sortLength',15,'d,c){if(d.length!==c.length){return c.length-d.length}return(d==c?0:(d<c?-1:1))},',57,15,'c,b,e){var a,d;while(c&&c!=b){if(c','.nodeName.toLowerCase()==="#','text"){if(!e){c=this.scanText(c)}}else{a','=(typeof(c.','className',')==="undefined"?"":c.',128,');d',127,'tagName',129,133,');',34,'a)!=="',48,'String(a)}if','(c.firstChild','&&!a.match(/(^| )MathJax/)&&!this.skipTags.exec(d)){e=(e||this.',6,'.exec(a))&&!this.',8,'.exec(a);this.',57,141,',b,e)}}if(c){c=c',59,'}}},scanText',15,'b){if(b','.nodeValue',112,'(/\\s+/,"")==""){return b}var a,c;','this.search','={start:true};','this.pattern','=',90,';while(b){','this.pattern.lastIndex','=0;while(b&&b',125,'text"&&(a=',159,'.exec(b',154,'))){if(',157,'.start){b=this.startMatch(a,b)}else{b=this.endMatch(a,b)}}if(',157,'.matched','){','b=this.encloseMath(b',')}if(b){do{c=b;b=b',59,'}while(b&&(b','.nodeName','.toLowerCase()==="br"||b',125,'comment"));if(!b||b',180,'!=="#text"){return c}}}return b},startMatch',15,'b,c){var d=this.match[b[0]];if(d!=null){',157,'={end:d.end,mode:d.mode,','open:c,olen:','b[0].length',',opos:',163,'-',191,'};','this.switchPattern(','d.pattern)}else{if(b[0].substr(0,6)==="\\\\begin"){',157,'={end:"\\\\end{"+b[1]+"}",',84,190,'0,opos:',163,'-',191,',isBeginEnd:true};',197,'this.endPattern(',157,'.end))}else{var a=b[0].replace(/\\\\(.)/g,"$1");c',154,'=c',154,'.substr(','0,b.index)+a+c',154,215,'b.index+',191,');',163,'-=',191,'-a.length}}return c},endMatch',15,'a,b){if(a[0]==',157,'.end){',157,'.close=b;',157,'.cpos=',163,';',157,'.clen=(',157,'.isBeginEnd?0:a[0].length);',157,174,'=true;',176,');',197,90,')}return b},switchPattern',15,'a){a.lastIndex=',163,';',159,'=a;',157,'.start=(a===',90,')},encloseMath',15,'b){var a=',157,',f=a.close,e;if(a.cpos===f.length){f=f',59,'}else{f=f.splitText(a.cpos)}if(!f){e=f=','a.close.parentNode','.appendChild(document.createTextNode','(""))}if(b===a.close){b=f}a.close=f;var c=a.open.splitText(a.opos);while(c',59,'&&c',59,'!==f){if(c',59,154,'!==null){if(c',59,180,'==="#comment"){c',154,'+=c',59,154,112,'(/^\\[CDATA\\[(.*)\\]\\]$/,"$1")}else{c',154,'+=c',59,154,'}}else{c',154,'+=" "}c','.parentNode.removeChild(','c',59,')}var d=c',154,215,'a.olen,c',154,'.length-a.olen-a.clen);c',290,'c);if(',21,42,'!=="none"){this.','createPreview','(a.mode,d',')}c=this.','createMathTag',305,');',157,'={};',163,'=0;if(e){e',290,'e)}return c},insertNode',15,259,157,';if(a.close&&',264,'){',264,'.insertBefore(b,a.','close)}else{if(a.open',59,'){a.open.parentNode',323,'open',59,')}else{a.open.parentNode.appendChild(b)}}},',304,15,'c,a){var b;if(',21,42,'==="TeX"){b=[this.filterTeX(a)]}else{if(',21,42,' instanceof Array){b=',21,42,'}}if(b){b=MathJax.HTML.Element("span",{',128,':',19,24,'preRemoveClass},b);','this.insertNode(','b)}},',307,15,'c,',259,49,'createElement("script");a.type="math/tex"+c;if(',19,'Browser.isMSIE){a.text=b}else{a',265,'(b))}',348,'a);return a},filterTeX',15,110,'a}};',19,'Register.PreProcessor(["',14,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/tex2jax.js");']
+]);
- inlineMath: [ // The start/stop pairs for in-line math
- ['$','$'], // (comment out any you don't want, or add your own, but
- ['\\(','\\)'] // be sure that you don't have an extra comma at the end)
- ],
-
- displayMath: [ // The start/stop pairs for display math
- ['$$','$$'], // (comment out any you don't want, or add your own, but
- ['\\[','\\]'] // be sure that you don't have an extra comma at the end)
- ],
-
- processEscapes: 0, // set to 1 to allow \$ to produce a dollar without
- // starting in-line math mode
-
- processEnvironments: 1, // set to 1 to process \begin{xxx}...\end{xxx} outside
- // of math mode
-
- previewTeX: 1 // set to 0 to not insert MathJax_Preview spans
-
- },
-
- PreProcess: function (element) {
- if (!this.configured) {
- MathJax.Hub.Insert(this.config,(MathJax.Hub.config.tex2jax||{}));
- this.configured = true;
- }
- if (typeof(element) === "string") {element = document.getElementById(element)}
- if (!element) {element = this.config.element || document.body}
- this.createPatterns();
- this.scanElement(element,element.nextSibling);
- },
-
- createPatterns: function () {
- var starts = [], i, m, config = this.config;
- this.match = {};
- for (i = 0, m = config.inlineMath.length; i < m; i++) {
- starts.push(this.patternQuote(config.inlineMath[i][0]));
- this.match[config.inlineMath[i][0]] = {
- mode: "",
- end: config.inlineMath[i][1],
- pattern: this.endPattern(config.inlineMath[i][1])
- };
- }
- for (i = 0, m = config.displayMath.length; i < m; i++) {
- starts.push(this.patternQuote(config.displayMath[i][0]));
- this.match[config.displayMath[i][0]] = {
- mode: "; mode=display",
- end: config.displayMath[i][1],
- pattern: this.endPattern(config.displayMath[i][1])
- };
- }
- this.start = new RegExp(
- starts.sort(this.sortLength).join("|") +
- (config.processEnvironments ? "|\\\\begin\\{([^}]*)\\}" : "") +
- (config.processEscapes ? "|\\\\*\\\\\\\$" : ""), "g"
- );
- },
-
- patternQuote: function (s) {return s.replace(/([\^$(){}+*?\-|\[\]\:\\])/g,'\\$1')},
-
- endPattern: function (end) {
- return new RegExp(this.patternQuote(end)+"|\\\\.","g");
- },
-
- sortLength: function (a,b) {
- if (a.length !== b.length) {return b.length - a.length}
- return (a == b ? 0 : (a < b ? -1 : 1));
- },
-
- scanElement: function (element,stop,ignore) {
- var cname, tname;
- while (element && element != stop) {
- if (element.nodeName.toLowerCase() === '#text') {
- if (!ignore) {element = this.scanText(element)}
- } else {
- cname = (typeof(element.className) === "undefined" ? "" : element.className);
- tname = (typeof(element.tagName) === "undefined" ? "" : element.tagName);
- if (typeof(cname) !== "string") {cname = String(cname)} // jsxgraph uses non-string class names!
- if (element.firstChild && !cname.match(/(^| )MathJax/) &&
- !tname.match(/^(script|noscript|style|textarea|pre|code)$/i)) {
- ignore = (ignore || cname.match(/(^| )tex2jax_ignore( |$)/)) &&
- !cname.match(/(^| )tex2jax_process( |$)/);
- this.scanElement(element.firstChild,stop,ignore);
- }
- }
- if (element) {element = element.nextSibling}
- }
- },
-
- scanText: function (element) {
- if (element.nodeValue.replace(/\s+/,'') == '') {return element}
- var match, prev;
- this.search = {start: true};
- this.pattern = this.start;
- while (element) {
- this.pattern.lastIndex = 0;
- while (element && element.nodeName.toLowerCase() === '#text' &&
- (match = this.pattern.exec(element.nodeValue))) {
- if (this.search.start) {element = this.startMatch(match,element)}
- else {element = this.endMatch(match,element)}
- }
- if (this.search.matched) {element = this.encloseMath(element)}
- if (element) {
- do {prev = element; element = element.nextSibling}
- while (element && (element.nodeName.toLowerCase() === 'br' ||
- element.nodeName.toLowerCase() === '#comment'));
- if (!element || element.nodeName !== '#text') {return prev}
- }
- }
- return element;
- },
-
- startMatch: function (match,element) {
- var delim = this.match[match[0]];
- if (delim != null) { // a start delimiter
- this.search = {
- end: delim.end, mode: delim.mode,
- open: element, olen: match[0].length, opos: this.pattern.lastIndex - match[0].length
- };
- this.switchPattern(delim.pattern);
- } else if (match[0].substr(0,6) === "\\begin") { // \begin{...}
- this.search = {
- end: "\\end{"+match[1]+"}", mode: "; mode=display",
- open: element, olen: 0, opos: this.pattern.lastIndex - match[0].length,
- isBeginEnd: true
- };
- this.switchPattern(this.endPattern(this.search.end));
- } else { // escaped dollar signs
- var dollar = match[0].replace(/\\(.)/g,'$1');
- element.nodeValue = element.nodeValue.substr(0,match.index) + dollar +
- element.nodeValue.substr(match.index + match[0].length);
- this.pattern.lastIndex -= match[0].length - dollar.length;
- }
- return element;
- },
-
- endMatch: function (match,element) {
- if (match[0] == this.search.end) {
- this.search.close = element;
- this.search.cpos = this.pattern.lastIndex;
- this.search.clen = (this.search.isBeginEnd ? 0 : match[0].length);
- this.search.matched = true;
- element = this.encloseMath(element);
- this.switchPattern(this.start);
- }
- return element;
- },
-
- switchPattern: function (pattern) {
- pattern.lastIndex = this.pattern.lastIndex;
- this.pattern = pattern;
- this.search.start = (pattern === this.start);
- },
-
- encloseMath: function (element) {
- var search = this.search, close = search.close, CLOSE;
- if (search.cpos === close.length) {close = close.nextSibling}
- else {close = close.splitText(search.cpos)}
- if (!close) {CLOSE = close = search.close.parentNode.appendChild(document.createTextNode(""))}
- if (element === search.close) {element = close}
- search.close = close;
- var math = search.open.splitText(search.opos);
- while (math.nextSibling && math.nextSibling !== close) {
- if (math.nextSibling.nodeValue !== null) {
- if (math.nextSibling.nodeName === "#comment") {
- math.nodeValue += math.nextSibling.nodeValue.replace(/^\[CDATA\[(.*)\]\]$/,"$1");
- } else {
- math.nodeValue += math.nextSibling.nodeValue;
- }
- } else {math.nodeValue += ' '}
- math.parentNode.removeChild(math.nextSibling);
- }
- var TeX = math.nodeValue.substr(search.olen,math.nodeValue.length-search.olen-search.clen);
- math.parentNode.removeChild(math);
- if (this.config.previewTeX) {this.createMathPreview(search.mode,TeX)}
- math = this.createMathTag(search.mode,TeX);
- this.search = {}; this.pattern.lastIndex = 0;
- if (CLOSE) {CLOSE.parentNode.removeChild(CLOSE)}
- return math;
- },
-
- insertNode: function (node) {
- var search = this.search;
- if (search.close && search.close.parentNode) {
- search.close.parentNode.insertBefore(node,search.close);
- } else if (search.open.nextSibling) {
- search.open.parentNode.insertBefore(node,search.open.nextSibling);
- } else {
- search.open.parentNode.appendChild(node);
- }
- },
-
- createMathPreview: function (mode,tex) {
- var preview = document.createElement("span");
- preview.className = MathJax.Hub.config.preRemoveClass;
- preview.appendChild(document.createTextNode(tex));
- this.insertNode(preview);
- return preview;
- },
-
- createMathTag: function (mode,tex) {
- var script = document.createElement("script");
- script.type = "math/tex" + mode;
- if (MathJax.Hub.Browser.isMSIE) {script.text = tex}
- else {script.appendChild(document.createTextNode(tex))}
- this.insertNode(script);
- return script;
- }
-
-};
-
-MathJax.Hub.Register.PreProcessor(["PreProcess",MathJax.Extension.tex2jax]);
-MathJax.Ajax.loadComplete("[MathJax]/extensions/tex2jax.js");