hogan-3.0.2.min.mustache.js 8.81 KB
/**
* @preserve Copyright 2012 Twitter, Inc.
* @license http://www.apache.org/licenses/LICENSE-2.0.txt
*/
var Hogan={};!function(t){function n(t,n,e){var r;return n&&"object"==typeof n&&(void 0!==n[t]?r=n[t]:e&&n.get&&"function"==typeof n.get&&(r=n.get(t))),r}function e(t,n,e,r,i,a){function s(){}function o(){}s.prototype=t,o.prototype=t.subs;var u,c=new s;c.subs=new o,c.subsText={},c.buf="",r=r||{},c.stackSubs=r,c.subsText=a;for(u in n)r[u]||(r[u]=n[u]);for(u in r)c.subs[u]=r[u];i=i||{},c.stackPartials=i;for(u in e)i[u]||(i[u]=e[u]);for(u in i)c.partials[u]=i[u];return c}function r(t){return String(null===t||void 0===t?"":t)}function i(t){return t=r(t),l.test(t)?t.replace(a,"&amp;").replace(s,"&lt;").replace(o,"&gt;").replace(u,"&#39;").replace(c,"&quot;"):t}t.Template=function(t,n,e,r){t=t||{},this.r=t.code||this.r,this.c=e,this.options=r||{},this.text=n||"",this.partials=t.partials||{},this.subs=t.subs||{},this.buf=""},t.Template.prototype={r:function(){return""},v:i,t:r,render:function(t,n,e){return this.ri([t],n||{},e)},ri:function(t,n,e){return this.r(t,n,e)},ep:function(t,n){var r=this.partials[t],i=n[r.name];if(r.instance&&r.base==i)return r.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[t].base=i,r.subs){n.stackText||(n.stackText={});for(key in r.subs)n.stackText[key]||(n.stackText[key]=void 0!==this.activeSub&&n.stackText[this.activeSub]?n.stackText[this.activeSub]:this.text);i=e(i,r.subs,r.partials,this.stackSubs,this.stackPartials,n.stackText)}return this.partials[t].instance=i,i},rp:function(t,n,e,r){var i=this.ep(t,e);return i?i.ri(n,e,r):""},rs:function(t,n,e){var r=t[t.length-1];if(!f(r))return void e(t,n,this);for(var i=0;i<r.length;i++)t.push(r[i]),e(t,n,this),t.pop()},s:function(t,n,e,r,i,a,s){var o;return f(t)&&0===t.length?!1:("function"==typeof t&&(t=this.ms(t,n,e,r,i,a,s)),o=!!t,!r&&o&&n&&n.push("object"==typeof t?t:n[n.length-1]),o)},d:function(t,e,r,i){var a,s=t.split("."),o=this.f(s[0],e,r,i),u=this.options.modelGet,c=null;if("."===t&&f(e[e.length-2]))o=e[e.length-1];else for(var l=1;l<s.length;l++)a=n(s[l],o,u),void 0!==a?(c=o,o=a):o="";return i&&!o?!1:(i||"function"!=typeof o||(e.push(c),o=this.mv(o,e,r),e.pop()),o)},f:function(t,e,r,i){for(var a=!1,s=null,o=!1,u=this.options.modelGet,c=e.length-1;c>=0;c--)if(s=e[c],a=n(t,s,u),void 0!==a){o=!0;break}return o?(i||"function"!=typeof a||(a=this.mv(a,e,r)),a):i?!1:""},ls:function(t,n,e,i,a){var s=this.options.delimiters;return this.options.delimiters=a,this.b(this.ct(r(t.call(n,i)),n,e)),this.options.delimiters=s,!1},ct:function(t,n,e){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(t,this.options).render(n,e)},b:function(t){this.buf+=t},fl:function(){var t=this.buf;return this.buf="",t},ms:function(t,n,e,r,i,a,s){var o,u=n[n.length-1],c=t.call(u);return"function"==typeof c?r?!0:(o=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,e,o.substring(i,a),s)):c},mv:function(t,n,e){var i=n[n.length-1],a=t.call(i);return"function"==typeof a?this.ct(r(a.call(i)),i,e):a},sub:function(t,n,e,r){var i=this.subs[t];i&&(this.activeSub=t,i(n,e,this,r),this.activeSub=!1)}};var a=/&/g,s=/</g,o=/>/g,u=/\'/g,c=/\"/g,l=/[&<>\"\']/,f=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}}("undefined"!=typeof exports?exports:Hogan),function(t){function n(t){"}"===t.n.substr(t.n.length-1)&&(t.n=t.n.substring(0,t.n.length-1))}function e(t){return t.trim?t.trim():t.replace(/^\s*|\s*$/g,"")}function r(t,n,e){if(n.charAt(e)!=t.charAt(0))return!1;for(var r=1,i=t.length;i>r;r++)if(n.charAt(e+r)!=t.charAt(r))return!1;return!0}function i(n,e,r,o){var u=[],c=null,l=null,f=null;for(l=r[r.length-1];n.length>0;){if(f=n.shift(),l&&"<"==l.tag&&!(f.tag in y))throw new Error("Illegal content in < super tag.");if(t.tags[f.tag]<=t.tags.$||a(f,o))r.push(f),f.nodes=i(n,f.tag,r,o);else{if("/"==f.tag){if(0===r.length)throw new Error("Closing tag without opener: /"+f.n);if(c=r.pop(),f.n!=c.n&&!s(f.n,c.n,o))throw new Error("Nesting error: "+c.n+" vs. "+f.n);return c.end=f.i,u}"\n"==f.tag&&(f.last=0==n.length||"\n"==n[0].tag)}u.push(f)}if(r.length>0)throw new Error("missing closing tag: "+r.pop().n);return u}function a(t,n){for(var e=0,r=n.length;r>e;e++)if(n[e].o==t.n)return t.tag="#",!0}function s(t,n,e){for(var r=0,i=e.length;i>r;r++)if(e[r].c==t&&e[r].o==n)return!0}function o(t){var n=[];for(var e in t)n.push('"'+c(e)+'": function(c,p,t,i) {'+t[e]+"}");return"{ "+n.join(",")+" }"}function u(t){var n=[];for(var e in t.partials)n.push('"'+c(e)+'":{name:"'+c(t.partials[e].name)+'", '+u(t.partials[e])+"}");return"partials: {"+n.join(",")+"}, subs: "+o(t.subs)}function c(t){return t.replace(m,"\\\\").replace(v,'\\"').replace(b,"\\n").replace(d,"\\r").replace(w,"\\u2028").replace(x,"\\u2029")}function l(t){return~t.indexOf(".")?"d":"f"}function f(t,n){var e="<"+(n.prefix||""),r=e+t.n+k++;return n.partials[r]={name:t.n,partials:{}},n.code+='t.b(t.rp("'+c(r)+'",c,p,"'+(t.indent||"")+'"));',r}function p(t,n){n.code+="t.b(t.t(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'}function h(t){return"t.b("+t+");"}var g=/\S/,v=/\"/g,b=/\n/g,d=/\r/g,m=/\\/g,w=/\u2028/,x=/\u2029/;t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(i,a){function s(){m.length>0&&(w.push({tag:"_t",text:new String(m)}),m="")}function o(){for(var n=!0,e=k;e<w.length;e++)if(n=t.tags[w[e].tag]<t.tags._v||"_t"==w[e].tag&&null===w[e].text.match(g),!n)return!1;return n}function u(t,n){if(s(),t&&o())for(var e,r=k;r<w.length;r++)w[r].text&&((e=w[r+1])&&">"==e.tag&&(e.indent=w[r].text.toString()),w.splice(r,1));else n||w.push({tag:"\n"});x=!1,k=w.length}function c(t,n){var r="="+S,i=t.indexOf(r,n),a=e(t.substring(t.indexOf("=",n)+1,i)).split(" ");return T=a[0],S=a[a.length-1],i+r.length-1}var l=i.length,f=0,p=1,h=2,v=f,b=null,d=null,m="",w=[],x=!1,y=0,k=0,T="{{",S="}}";for(a&&(a=a.split(" "),T=a[0],S=a[1]),y=0;l>y;y++)v==f?r(T,i,y)?(--y,s(),v=p):"\n"==i.charAt(y)?u(x):m+=i.charAt(y):v==p?(y+=T.length-1,d=t.tags[i.charAt(y+1)],b=d?i.charAt(y+1):"_v","="==b?(y=c(i,y),v=f):(d&&y++,v=h),x=y):r(S,i,y)?(w.push({tag:b,n:e(m),otag:T,ctag:S,i:"/"==b?x-T.length:y+S.length}),m="",y+=S.length-1,v=f,"{"==b&&("}}"==S?y++:n(w[w.length-1]))):m+=i.charAt(y);return u(x,!0),w};var y={_t:!0,"\n":!0,$:!0,"/":!0};t.stringify=function(n){return"{code: function (c,p,i) { "+t.wrapMain(n.code)+" },"+u(n)+"}"};var k=0;t.generate=function(n,e,r){k=0;var i={code:"",subs:{},partials:{}};return t.walk(n,i),r.asString?this.stringify(i,e,r):this.makeTemplate(i,e,r)},t.wrapMain=function(t){return'var t=this;t.b(i=i||"");'+t+"return t.fl();"},t.template=t.Template,t.makeTemplate=function(t,n,e){var r=this.makePartials(t);return r.code=new Function("c","p","i",this.wrapMain(t.code)),new this.template(r,n,this,e)},t.makePartials=function(t){var n,e={subs:{},partials:t.partials,name:t.name};for(n in e.partials)e.partials[n]=this.makePartials(e.partials[n]);for(n in t.subs)e.subs[n]=new Function("c","p","t","i",t.subs[n]);return e},t.codegen={"#":function(n,e){e.code+="if(t.s(t."+l(n.n)+'("'+c(n.n)+'",c,p,1),c,p,0,'+n.i+","+n.end+',"'+n.otag+" "+n.ctag+'")){t.rs(c,p,function(c,p,t){',t.walk(n.nodes,e),e.code+="});c.pop();}"},"^":function(n,e){e.code+="if(!t.s(t."+l(n.n)+'("'+c(n.n)+'",c,p,1),c,p,1,0,0,"")){',t.walk(n.nodes,e),e.code+="};"},">":f,"<":function(n,e){var r={partials:{},code:"",subs:{},inPartial:!0};t.walk(n.nodes,r);var i=e.partials[f(n,e)];i.subs=r.subs,i.partials=r.partials},$:function(n,e){var r={subs:{},code:"",partials:e.partials,prefix:n.n};t.walk(n.nodes,r),e.subs[n.n]=r.code,e.inPartial||(e.code+='t.sub("'+c(n.n)+'",c,p,i);')},"\n":function(t,n){n.code+=h('"\\n"'+(t.last?"":" + i"))},_v:function(t,n){n.code+="t.b(t.v(t."+l(t.n)+'("'+c(t.n)+'",c,p,0)));'},_t:function(t,n){n.code+=h('"'+c(t.text)+'"')},"{":p,"&":p},t.walk=function(n,e){for(var r,i=0,a=n.length;a>i;i++)r=t.codegen[n[i].tag],r&&r(n[i],e);return e},t.parse=function(t,n,e){return e=e||{},i(t,"",[],e.sectionTags||[])},t.cache={},t.cacheKey=function(t,n){return[t,!!n.asString,!!n.disableLambda,n.delimiters,!!n.modelGet].join("||")},t.compile=function(n,e){e=e||{};var r=t.cacheKey(n,e),i=this.cache[r];if(i){var a=i.partials;for(var s in a)delete a[s].instance;return i}return i=this.generate(this.parse(this.scan(n,e.delimiters),n,e),n,e),this.cache[r]=i}}("undefined"!=typeof exports?exports:Hogan);var Mustache=function(t){function n(n,e,r,i){var a=this.f(n,e,r,0),s=e;return a&&(s=s.concat(a)),t.Template.prototype.rp.call(this,n,s,r,i)}var e=function(e,r,i){this.rp=n,t.Template.call(this,e,r,i)};e.prototype=t.Template.prototype;var r,i=function(){this.cache={},this.generate=function(t,n){return new e(new Function("c","p","i",t),n,r)}};return i.prototype=t,r=new i,{to_html:function(t,n,e,i){var a=r.compile(t),s=a.render(n,e);return i?void i(s):s}}}(Hogan);