UNPKG

easy.templatejs

Version:

Small, pure, high-performance JavaScript template engine.

16 lines (15 loc) 4.5 kB
/** * EasyTemplate * * Version 2.1.1 * * http://easyproject.cn * https://github.com/ushelp * * Copyright 2012 Ray [ inthinkcolor@gmail.com ] * Released under the MIT license * * [Support AMD, CMD, CommonJS, Node.js] * */ (function(){"use strict";var a,b="object"==typeof global&&global&&global.Object===Object&&global,c="object"==typeof self&&self&&self.Object===Object&&self,d=b||c||Function("return this")(),e="object"==typeof exports&&exports&&!exports.nodeType&&exports,f=e&&"object"==typeof module&&module&&!module.nodeType&&module,g=d.Et,h={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},i={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},unescape:{"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'"}},j=function(a,b){return hasOwnProperty.call(a,b)},k=Object.keys||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[];for(var c in a)j(a,c)&&b.push(c);return b},l={escape:new RegExp("["+k(i.escape).join("")+"]","g"),unescape:new RegExp("("+k(i.unescape).join("|")+")","g")},m=Array.prototype.slice,n=function(a){return q.each(m.call(arguments,1),function(b){if(b)for(var c in b)void 0===a[c]&&(a[c]=b[c])}),a},o=new RegExp(["\\b"+"break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined".replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),p=function(a){for(var b=a.replace(/\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|\s*\.\s*[$\w\.]+/g,"").replace(/[^\w$]+/g,",").replace(o,"").replace(/^\d[^,]*|,\d[^,]*/g,"").replace(/^,+|,+$/g,"").split(/^$|,+/),c={},d=[],e=0;e<b.length;e++)c[b[e]]||"_p"==b[e]||"Et"==b[e]||"out"==b[e]||(c[b[e]]=!0,d.push(b[e]));for(var f="var ";d.length;){var g=d.shift();f+=g+"= data."+g+","}return f},g=d.Et,q={tmplSettings:{scriptBegin:"%{",scriptEnd:"}%",outBegin:"{",outEnd:"}",escapeOutBegin:"{-",escapeOutEnd:"}"},escape:function(a){return null==a?"":(""+a).replace(l.escape,function(a){return i.escape[a]})},unescape:function(a){return null==a?"":(""+a).replace(l.unescape,function(a){return i.unescape[a]})},each:function(a,b,c){if(null!=a)if(Array.prototype.forEach&&a.forEach===Array.prototype.forEach)a.forEach(b,c);else if(a.length===+a.length){for(var d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a)===breaker)return}else for(var f=f(a),d=0,e=f.length;d<e;d++)if(b.call(c,a[f[d]],f[d],a)===breaker)return},template:function(b,c,d){d?(d=n({},d,q.tmplSettings),d={script:new RegExp(d.scriptBegin.replace(/(.)/g,"\\$1")+"([\\s\\S]+?)"+d.scriptEnd.replace(/(.)/g,"\\$1"),"g"),out:new RegExp(d.outBegin.replace(/(.)/g,"\\$1")+"([\\s\\S]+?)"+d.outEnd.replace(/(.)/g,"\\$1"),"g"),escapeOut:new RegExp(d.escapeOutBegin.replace(/(.)/g,"\\$1")+"([\\s\\S]+?)"+d.escapeOutEnd.replace(/(.)/g,"\\$1"),"g")}):(a||(a={script:new RegExp(q.tmplSettings.scriptBegin.replace(/(.)/g,"\\$1")+"([\\s\\S]+?)"+q.tmplSettings.scriptEnd.replace(/(.)/g,"\\$1"),"g"),out:new RegExp(q.tmplSettings.outBegin.replace(/(.)/g,"\\$1")+"([\\s\\S]+?)"+q.tmplSettings.outEnd.replace(/(.)/g,"\\$1"),"g"),escapeOut:new RegExp(q.tmplSettings.escapeOutBegin.replace(/(.)/g,"\\$1")+"([\\s\\S]+?)"+q.tmplSettings.escapeOutEnd.replace(/(.)/g,"\\$1"),"g")}),d=a),b=q.unescape(b);var e,f=new RegExp([(d.escapeOut||/(.)^/).source,(d.out||/(.)^/).source,(d.script||/(.)^/).source].join("|")+"|$","g"),g=0,i="_p+='";b.replace(f,function(a,c,d,e,f){return i+=b.slice(g,f).replace(/\\|'|\r|\n|\t|\u2028|\u2029/g,function(a){return"\\"+h[a]}),c&&(i+="'+\n((_t=("+c+"))==null?'':Et.escape(_t))+'"),d&&(i+="'+\n((_t=("+d+"))==null?'':_t)+'"),e&&(i+="';"+e+"\n_p+='"),g=f+a.length,a}),i+="';";var j=p(i);i="'use strict';"+j+"_t,_p='',out=function(){_p+=Array.prototype.join.call(arguments, '')};"+i+"return _p";try{e=new Function("data","Et",i)}catch(a){throw a.source="function anonymous(data,Et) {"+i+"}",a}if(c)try{return e(c,q)}catch(a){console.error(a)}return function(a){try{return e(a,q)}catch(a){console.error(a)}}},noConflict:function(){return d.Et===q&&(d.Et=g),q}};"function"==typeof define&&(define.amd||define.cmd)?define([],function(){return q}):f?((f.exports=q).Et=q,e.Et=q):d.Et=q}).call(this);