diff --git a/Parser.js b/Parser.js index 59c9cbc31..8e535c1d7 100644 --- a/Parser.js +++ b/Parser.js @@ -1,4 +1,5 @@ var Lexer = require("./Lexer"); +var utils = require("./utils"); // Main Parser class function Parser() { @@ -164,10 +165,6 @@ Parser.prototype.parseGroup = function(pos) { } }; -// Tests whether an element is in a list -function contains(list, elem) { - return list.indexOf(elem) !== -1; -} // A list of 1-argument color functions var colorFuncs = [ @@ -211,7 +208,7 @@ for (var type in copyFuncs) { Parser.prototype.parseNucleus = function(pos) { var nucleus = this.lexer.lex(pos); - if (contains(colorFuncs, nucleus.type)) { + if (utils.contains(colorFuncs, nucleus.type)) { // If this is a color function, parse its argument and return var group = this.parseGroup(nucleus.position); if (group) { diff --git a/katex.js b/katex.js index 991bb3d84..4300f933f 100644 --- a/katex.js +++ b/katex.js @@ -1,11 +1,16 @@ var parseTree = require("./parseTree"); +var utils = require("./utils"); + var buildExpression = function(expression) { - return _.map(expression, function(ex, i) { + var groups = []; + for (var i = 0; i < expression.length; i++) { + var group = expression[i]; var prev = i > 0 ? expression[i-1] : null; - return buildGroup(ex, prev); - }); + groups.push(buildGroup(group, prev)); + }; + return groups; }; var makeSpan = function(className, children) { @@ -28,7 +33,7 @@ var buildGroup = function(group, prev) { return makeSpan("mord", [textit(group.value)]); } else if (group.type === "bin") { var className = "mbin"; - if (prev == null || _.contains(["bin", "open", "rel"], prev.type)) { + if (prev == null || utils.contains(["bin", "open", "rel"], prev.type)) { group.type = "ord"; className = "mord"; } diff --git a/static/index.html b/static/index.html index ea278133e..5d7118d67 100644 --- a/static/index.html +++ b/static/index.html @@ -2,7 +2,6 @@