diff --git a/schnauzer.js b/schnauzer.js index e23a0bf..e839561 100644 --- a/schnauzer.js +++ b/schnauzer.js @@ -90,11 +90,11 @@ return Schnauzer; function switchTags(_this, tags) { var tgs = (function(tags) { for (var n = tags.length; n--; ) { - tags[n] = '(' + (n ? '~*' : '') + (!n ? '\\\\*' : '') + tags[n] + (!n ? '~*' : '') + ')'; - } return tags; })(tags[0] === '{{' ? ['{{2,3}', '}{2,3}'] : tags); + tags[n] = '(' + tags[n] + ')'; + } return tags; })(tags[0] === '{{' ? ['{{2,3}', '[~}]{2,4}'] : tags); _this.regexps = { - tags: new RegExp(tgs[0] + '([#^/!>*-]*)\\s*(.*?)\\s*' + tgs[1]), + tags: new RegExp(tgs[0] + '([#~^/!>*-]*)\\s*([^~}]*)' + tgs[1]), entity: new RegExp('[' + getObjectKeys(_this.options.entityMap).join('') + ']', 'g') }; } @@ -485,6 +485,7 @@ function getVars(text, collection, out, type) { for (var n = 0, l = txtParts.length, match = /--(\d+)--/, replace = /%+/, dataType = '', parts = [], value = '', data = {}, paths = {}, skipConvert = false; n < l; n++) { + if (!txtParts[n]) continue; // whitespace after parts = txtParts[n].split('='); value = parts[1] !== undefined ? parts[1] : parts[0]; if (value === '' || value === 'as') continue; @@ -606,9 +607,9 @@ function parseTags(_this, text, tree) { for (var n = 1, type = '', vars = '', body = '', space = 0, root = '', tmpRoot = [], tmpVars = [], testRegex = /^[!-]+/, elseRegex =/^else\s*/, types = { '#':'B','^':'B','/':'C','E':'E' }, child = {}, cType = '', tag = '', tagData = {}, l = split.length; n < l; n += 5) { - type = split[1 + n]; + type = split[1 + n].replace('~', ''); vars = split[2 + n]; - body = trim(split[4 + n], split[3 + n], split[5 + n] || ''); + body = trim(split[4 + n], split[3 + n], split[6 + n] || ''); if (split[n].charAt(0) === '\\' || testRegex.test(type)) continue; diff --git a/schnauzer.min.js b/schnauzer.min.js index d90fdc6..50df8b9 100644 --- a/schnauzer.min.js +++ b/schnauzer.min.js @@ -1,2 +1,2 @@ /**! @license schnauzer v2.0.6; Copyright (C) 2017-2022 by Peter Dematté */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],function(){return t()},"schnauzer"):"object"==typeof exports?exports.schnauzer=t():e.schnauzer=t()}(this&&this.window||global,function(){"use strict";var v=Object.keys||function(e){var t=[],r="";for(r in e)hasOwnProperty.call(e,r)&&t.push(r);return t},y=function(e,t){for(var r in t)n=t,e[s=r]=n[s];var n,s;return e},f=function(e,t){return t.push.apply(t,e),t},g=function(e,t){this.version="2.0.6",this.partials={},this.helpers={},this.regexps={},this.controls={active:!1,stop:!1,loop:[]},this.options={tags:["{{","}}"],entityMap:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="},helpers:{},partials:{},self:"self",escapeHTML:!0,limitPartialScope:!0,loopHelper:null,renderHook:null},r(this,t||{},e)},r=function(e,t,r){"string"!=typeof r&&(t=r,r=""),n(e,(t=y(e.options,t)).tags),e.helpers=t.helpers,e.registerPartial(t.partials),r&&e.parse(r),delete t.helpers,delete t.partials},e=g.SafeString=function(e){this.string=e};return e.prototype.toString=e.prototype.toHTML=function(){return""+this.string},g.getObjectKeys=v,g.cloneObject=y,g.concatArrays=f,g.prototype={render:function(e,t){var r=k(this,"","",0,e,null,[{scope:e}]);return[this.partials[this.options.self]({blocks:{},extra:t,scopes:[{scope:e,helpers:r,level:[],values:null,alias:{}}]}),this.controls.active=!0][0]},parse:function(e){return this.registerPartial(this.options.self,e)},registerHelper:function(e,t){if("string"==typeof e)return this.helpers[e]=t;for(var r in e)this.helpers[r]=e[r]},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("string"==typeof e)return this.partials[e]=this.partials[e]||(t.constructor===Function?t:function(e,t,r){var n=t.split(e.regexps.tags);r.push({text:n[0]});for(var s=1,a="",l="",i="",o=0,p="",u=[],c=[],h=/^[!-]+/,v=/^else\s*/,f={"#":"B","^":"B","/":"C",E:"E"},g={},d="",y="",x={},b=n.length;s"===a&&(u.unshift("@"+p),c.unshift("@"+l)),"E"===d&&(l=l.replace(v,"")),x="/"===a?{tag:"C",text:i,vars:l}:A(e,l,a,n[s],y,i),"^"===a&&"B"===y&&(x.alt=x.vars[0].orig),"#*"===a&&(x.isPartial=!0),r=z(e,r,x,n[s]),"C"===y&&(r[r.length-1].isPartial||u[0])&&(x=r.splice(-1,1,u[0]?A(e,c[0],">",n[s],"I",x.text):{text:x.text})[0],(g=x.children[0]).children.unshift({text:g.text}),e.registerPartial(u[0]||x.vars[0].value,g.bodyFn),u.shift(),c.shift()));var k,E,m,F,S,w;if(r.parent)throw"Schnauzer Error: Missing closing tag(s)";return n=t=null,M(e,{children:r})}(this,t,[]));for(var r in e)this.registerPartial(r,e[r])},unregisterPartial:function(e){delete this.partials[e]},setTags:function(e){n(this,e)},escapeExpression:function(e){return d(this,e,!0)}},g;function n(e,t){var r=function(e){for(var t=e.length;t--;)e[t]="("+(t?"~*":"")+(t?"":"\\\\*")+e[t]+(t?"":"~*")+")";return e}("{{"===t[0]?["{{2,3}","}{2,3}"]:t);e.regexps={tags:new RegExp(r[0]+"([#^/!>*-]*)\\s*(.*?)\\s*"+r[1]),entity:new RegExp("["+v(e.options.entityMap).join("")+"]","g")}}function d(t,e,r){return null==e?"":e.constructor===g.SafeString?e.string:r&&t.options.escapeHTML?String(e).replace(t.regexps.entity,function(e){return t.options.entityMap[e]}):e}function k(e,t,r,n,s,a,l){return n?{"@index":t,"@number":t+1,"@key":r,"@odd":t%2!=0,"@last":t===n-1,"@first":0===t,"@length":n,"@depth":e.options.limitPartialScope?void 0:l.length-2,"@loop":a,"@parent":l[1].scope,"@root":l[l.length-1].scope,this:s,".":s}:{"@parent":a,"@root":l[l.length-1].scope,this:s,".":s}}function x(e,t,r){var n=e.scopes,s=e.alias?[e.alias]:[],a=f(n[0].level,s),l=e.values,i=n[1]?y({},n[1].alias):{};return e.alias=null,e.values=null,r=r?y(i,r):i,e.scopes=f(n,[{scope:t,helpers:n[0].helpers,level:a,values:l,alias:r}]),function(){e.scopes=n}}function b(e,t){var r=e.scope;return e.scope=t||{},function(){e.scope=r}}function E(e,t,r){if("."===t.value||"this"===t.value)return{value:e,variable:t};if("key"!==t.type)return{value:t.value,variable:t};for(var n="@root"===t.path[0]?1:0,s=t.path.length;n"===r?l.shift():void 0,helper:i||(">"!==r&&1":">",'"':""","'":"'","/":"/","`":"`","=":"="},helpers:{},partials:{},self:"self",escapeHTML:!0,limitPartialScope:!0,loopHelper:null,renderHook:null},r(this,t||{},e)},r=function(e,t,r){"string"!=typeof r&&(t=r,r=""),n(e,(t=y(e.options,t)).tags),e.helpers=t.helpers,e.registerPartial(t.partials),r&&e.parse(r),delete t.helpers,delete t.partials},e=g.SafeString=function(e){this.string=e};return e.prototype.toString=e.prototype.toHTML=function(){return""+this.string},g.getObjectKeys=v,g.cloneObject=y,g.concatArrays=f,g.prototype={render:function(e,t){var r=k(this,"","",0,e,null,[{scope:e}]);return[this.partials[this.options.self]({blocks:{},extra:t,scopes:[{scope:e,helpers:r,level:[],values:null,alias:{}}]}),this.controls.active=!0][0]},parse:function(e){return this.registerPartial(this.options.self,e)},registerHelper:function(e,t){if("string"==typeof e)return this.helpers[e]=t;for(var r in e)this.helpers[r]=e[r]},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if("string"==typeof e)return this.partials[e]=this.partials[e]||(t.constructor===Function?t:function(e,t,r){var n=t.split(e.regexps.tags);r.push({text:n[0]});for(var s=1,a="",l="",i="",o=0,p="",u=[],c=[],h=/^[!-]+/,v=/^else\s*/,f={"#":"B","^":"B","/":"C",E:"E"},g={},d="",y="",x={},b=n.length;s"===a&&(u.unshift("@"+p),c.unshift("@"+l)),"E"===d&&(l=l.replace(v,"")),x="/"===a?{tag:"C",text:i,vars:l}:A(e,l,a,n[s],y,i),"^"===a&&"B"===y&&(x.alt=x.vars[0].orig),"#*"===a&&(x.isPartial=!0),r=z(e,r,x,n[s]),"C"===y&&(r[r.length-1].isPartial||u[0])&&(x=r.splice(-1,1,u[0]?A(e,c[0],">",n[s],"I",x.text):{text:x.text})[0],(g=x.children[0]).children.unshift({text:g.text}),e.registerPartial(u[0]||x.vars[0].value,g.bodyFn),u.shift(),c.shift()));var k,E,m,F,S,w;if(r.parent)throw"Schnauzer Error: Missing closing tag(s)";return n=t=null,M(e,{children:r})}(this,t,[]));for(var r in e)this.registerPartial(r,e[r])},unregisterPartial:function(e){delete this.partials[e]},setTags:function(e){n(this,e)},escapeExpression:function(e){return d(this,e,!0)}},g;function n(e,t){var r=function(e){for(var t=e.length;t--;)e[t]="("+e[t]+")";return e}("{{"===t[0]?["{{2,3}","[~}]{2,4}"]:t);e.regexps={tags:new RegExp(r[0]+"([#~^/!>*-]*)\\s*([^~}]*)"+r[1]),entity:new RegExp("["+v(e.options.entityMap).join("")+"]","g")}}function d(t,e,r){return null==e?"":e.constructor===g.SafeString?e.string:r&&t.options.escapeHTML?String(e).replace(t.regexps.entity,function(e){return t.options.entityMap[e]}):e}function k(e,t,r,n,s,a,l){return n?{"@index":t,"@number":t+1,"@key":r,"@odd":t%2!=0,"@last":t===n-1,"@first":0===t,"@length":n,"@depth":e.options.limitPartialScope?void 0:l.length-2,"@loop":a,"@parent":l[1].scope,"@root":l[l.length-1].scope,this:s,".":s}:{"@parent":a,"@root":l[l.length-1].scope,this:s,".":s}}function x(e,t,r){var n=e.scopes,s=e.alias?[e.alias]:[],a=f(n[0].level,s),l=e.values,i=n[1]?y({},n[1].alias):{};return e.alias=null,e.values=null,r=r?y(i,r):i,e.scopes=f(n,[{scope:t,helpers:n[0].helpers,level:a,values:l,alias:r}]),function(){e.scopes=n}}function b(e,t){var r=e.scope;return e.scope=t||{},function(){e.scope=r}}function E(e,t,r){if("."===t.value||"this"===t.value)return{value:e,variable:t};if("key"!==t.type)return{value:t.value,variable:t};for(var n="@root"===t.path[0]?1:0,s=t.path.length;n"===r?l.shift():void 0,helper:i||(">"!==r&&1","\"","'","/","`","=","self","escapeHTML","limitPartialScope","loopHelper","renderHook","initSchnauzer","_this","template","switchTags","registerPartial","parse","HBSS","SafeString","text","string","prototype","toString","toHTML","render","data","extra","createHelper","scope","blocks","scopes","level","values","alias","txt","registerHelper","name","helperFn","unregisterHelper","constructor","Function","tree","split","n","type","vars","body","space","root","tmpRoot","tmpVars","testRegex","elseRegex","types","#","^","E","child","cType","tag","tagData","l","length","start","end","regExp","doStart","indexOf","doEnd","replace","RegExp","charAt","test","substring","unshift","getTagData","alt","orig","isPartial","buildTree","splice","children","value","bodyFn","shift","parent","createExecutor","parseTags","unregisterPartial","setTags","escapeExpression","escapeHtml","tgs","entity","join","doEscape","String","char","idx","len","@index","@number","@key","@odd","@last","@first","@length","@depth","undefined","@loop","@parent","@root",".","addScope","model","newLevel","prevAlias","tweakScope","savedScope","getDeepData","main","variable","path","getAlias","createAliasMap","aliasKey","getData","out","trackData","help","args","depth","isStrict","helper","renderHelper","Array","renderArgs","renderFn","newData","checkObjectLength","objKeys","isObject","track","renderConditions","restore","save","hash","extend","concat","getDataDetails","index","number","first","last","odd","fn","context","fnIdx","checkFn","inverse","getHelperArgs","cond","isVarOnly","canGo","reset","isArr","currentScopes","loopFn","renderEach","newModel","renderInline","helperValue","isTemplate","isBlock","partial","isEscaped","renderBlock","recursive","parsePath","skip","hasDot","$","parts","pop","parseAlias","spread","getVars","collection","txtParts","isAliasOrString","match","dataType","paths","skipConvert","single","isNaN","arr","replaceCb","$1","sizzleVars","lastIndexOf","isInline","renderInlines","open","errorMessage","getChildren","isFirstChild","isElse","getParent","lastBlock"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["schnauzer.js"],"names":["global","factory","exports","module","define","amd","schnauzer","this","window","getObjectKeys","Object","keys","obj","prop","hasOwnProperty","call","push","cloneObject","newObj","key","concatArrays","array","host","apply","Schnauzer","templateOrOptions","options","version","partials","helpers","regexps","controls","active","stop","loop","tags","entityMap","&","<",">","\"","'","/","`","=","self","escapeHTML","limitPartialScope","loopHelper","renderHook","initSchnauzer","_this","template","switchTags","registerPartial","parse","HBSS","SafeString","text","string","prototype","toString","toHTML","render","data","extra","createHelper","scope","blocks","scopes","level","values","alias","txt","registerHelper","name","helperFn","unregisterHelper","constructor","Function","tree","split","n","type","vars","body","space","root","tmpRoot","tmpVars","testRegex","elseRegex","types","#","^","E","child","cType","tag","tagData","l","length","replace","start","end","regExp","doStart","indexOf","doEnd","RegExp","charAt","test","substring","unshift","getTagData","alt","orig","isPartial","buildTree","splice","children","value","bodyFn","shift","parent","createExecutor","parseTags","unregisterPartial","setTags","escapeExpression","escapeHtml","tgs","entity","join","doEscape","String","char","idx","len","@index","@number","@key","@odd","@last","@first","@length","@depth","undefined","@loop","@parent","@root",".","addScope","model","newLevel","prevAlias","tweakScope","savedScope","getDeepData","main","variable","path","getAlias","createAliasMap","aliasKey","getData","out","trackData","help","args","depth","isStrict","helper","renderHelper","Array","renderArgs","renderFn","newData","checkObjectLength","objKeys","isObject","track","renderConditions","restore","save","hash","extend","concat","getDataDetails","index","number","first","last","odd","fn","context","fnIdx","checkFn","inverse","getHelperArgs","cond","isVarOnly","canGo","reset","isArr","currentScopes","loopFn","renderEach","newModel","renderInline","helperValue","isTemplate","isBlock","partial","isEscaped","renderBlock","recursive","parsePath","skip","hasDot","$","parts","pop","parseAlias","spread","getVars","collection","txtParts","isAliasOrString","match","dataType","paths","skipConvert","single","isNaN","arr","replaceCb","$1","sizzleVars","lastIndexOf","isInline","renderInlines","open","errorMessage","getChildren","isFirstChild","isElse","getParent","lastBlock"],"mappings":"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"} \ No newline at end of file