UNPKG

jtl

Version:

JTL templating language and engine

14 lines (13 loc) 2.7 kB
/*! ------------------------------------------------------------------------------ jiro v1.0.0 Written by Darius Aseriskis Licensed under MIT ------------------------------------------------------------------------------ */ function f(g){return function(){return g}} (function(){var g=/\{\{?([`/?~!@#$%^&*+=])?([`/?~!@#$%^&*+=])?\s*([\s\S]*?)\s*([`/?~!@#$%^&*+=])?\}\}/g,h={},d={g:"it",b:"def",extend:function(c){for(var a in c)h[a]=c[a]},h:function(c,a){h[c].debug=a},trim:function(c){return c.replace(/^\s+|\s+$/g,"")},a:function(c){return"undefined"===typeof c},f:function(c){var a=this,b=c,l=[],k;for(k in h)a.a(h[k].c)||l.push(h[k].c());b="var out='"+b.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,"").replace(/'|\\/g,"\\$&").replace(g, function(b,d,e,j,g){d=["{{",a.a(d)?"":d,a.a(e)?"":e,a.a(j)||!a.a(j)&&0==a.trim(j).length?"":"{code}",a.a(g)?"":g,"}}"].join("");e=h[d];if(!a.a(e)&&!a.a(e.exec))return b=!0,a.a(e.debug)||(b=e.debug(d,j,c)),null==b||!0==b?e.exec(d,j):b;a.debug&&a.debug.error("No such pattern: "+d,{code:j,match:b,f:c});return""})+"';return out;";b="var "+d.b+" = {"+l.join(",")+"};"+b;!a.a(a.debug)&&!a.a(a.debug.e)&&(b=a.debug.e(b));try{return a.a(a.debug)||!a.a(a.debug)&&a.debug.finish(b,c)?new Function(d.g,b):f("Debugger found an issue. Check for console for errors.")}catch(m){throw a.debug&& a.debug.error("Could not create a template function: \n"+b),m;}}};"undefined"!==typeof module&&module.d?module.d=d:function(){return this||(0,eval)("this")}().i=d;d.extend({"{{{code}}}":{exec:function(c,a){return"';"+unescape(a)+"out+='"}},"{{={code}}}":{exec:function(c,a){return"'+("+unescape(a)+")+'"}},"{{?{code}}}":{exec:function(c,a){return"';if("+unescape(a)+"){out+='"}},"{{?}}":{exec:f("';}out+='")},"{{??}}":{exec:f("';}else{out+='")},"{{??{code}}}":{exec:function(c,a){return"';}else if("+unescape(a)+ "){out+='"}},"{{~{code}}}":{exec:function(c,a){var b=a.split(":");return"';"+d.b+".iterate("+unescape(b[0])+", function("+b[1]+"){ out+='"},c:function(){return"iterate : "+function(c,a){if(c instanceof Array)for(var b=0;b<c.length;b++)a(b,c[b]);else for(b in c)a(b,c[b])}.toString()}},"{{~}}":{exec:f("';});out+='")},"{{`{code}}}":{exec:f("")},"{{#{code}}}":{exec:function(c,a){var b=a.split(":");return"';var "+d.trim(unescape(b[0]))+"= function("+(1<b.length?b[1]:"")+"){out+='"}},"{{#}}":{exec:f("';};out+='")}, "{{!{code}}}":{exec:function(c,a){return"'+("+d.b+".encode("+unescape(a)+"))+'"},c:function(){return"encode : "+function(c){var a={"&":"&#38;","<":"&#60;",">":"&#62;",'"':"&#34;","'":"&#39;","/":"&#47;"};return c.replace(/&(?!#?\w+;)|<|>|"|'|\//g,function(b){return a[b]||b})}.toString()}}})})();