diff --git a/mustache.js b/mustache.js index ded994a..e5b4246 100644 --- a/mustache.js +++ b/mustache.js @@ -40,16 +40,7 @@ var Mustache = { // finally, render tags // render until all is rendered - var new_result = ""; - var result = this.render_tags(html); - // print(result); - // while(result != new_result) { - // print(1); - // result = new_result; - // new_result = this.render_tags(result); - // print(new_result); - // } - return result; + return this.render_tags(html); }, /* @@ -98,10 +89,20 @@ var Mustache = { Replace {{foo}} and friends with values from our view */ render_tags: function(template) { + var pop_first = function(lines) { + var lines_array = lines.split("\n"); + lines_array.shift(); + return lines_array.join("\n"); + }; + + var new_regex = function() { + return new RegExp(that.otag + "(=|!|<|\\{)?([^\/#]+?)\\1?" + that.ctag + "+", "m"); + }; + // tit for tat var that = this; // for each {{(!<{)?foo}} tag, do... - regex = this.new_regex(); + regex = new_regex(); var lines = template; while(regex.test(lines)) { template = template.replace(regex, function (match, operator, name) { @@ -120,30 +121,12 @@ var Mustache = { return that.escape(that.find(name)); } }, this); - regex = this.new_regex(); - lines = this.pop_first(lines); + regex = new_regex(); + lines = pop_first(lines); } return template; }, - pop_first: function(lines) { - var lines_array = lines.split("\n"); - lines_array.shift(); - return lines_array.join("\n"); - }, - - new_regex: function() { - return new RegExp(this.otag + "(=|!|<|\\{)?([^\/#]+?)\\1?" + this.ctag + "+", "m"); - }, -/* -{{=<% %>=}} -* <% first %> -<%=| |=%> -* | second | -|={{ }}=| -* {{ third }} -*/ - set_delimiters: function(delimiters) { var dels = delimiters.split(" "); this.otag = this.escape_regex(dels[0]); @@ -170,9 +153,6 @@ var Mustache = { */ find: function(name) { name = this.trim(name); - if(name === "") { - // return ""; - } var context = this.context; if(typeof context[name] === "function") { return context[name].apply(context);