You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
blog/static/js/mustache.min.js

2 lines
5.0 KiB
JavaScript

!function(a,b){"object"===typeof exports&&exports?b(exports):"function"===typeof define&&define.amd?define(["exports"],b):b(a.Mustache={})}(this,function(a){function d(a){return"function"===typeof a}function e(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function g(a,b){return f.call(a,b)}function i(a){return!g(h,a)}function k(a){return String(a).replace(/[&<>"'\/]/g,function(a){return j[a]})}function q(b,d){function q(){if(j&&!k)for(;h.length;)delete g[h.pop()];else h=[];j=!1,k=!1}function x(a){if("string"===typeof a&&(a=a.split(m,2)),!c(a)||2!==a.length)throw new Error("Invalid tags: "+a);u=new RegExp(e(a[0])+"\\s*"),v=new RegExp("\\s*"+e(a[1])),w=new RegExp("\\s*"+e("}"+a[1]))}if(!b)return[];var u,v,w,f=[],g=[],h=[],j=!1,k=!1;x(d||a.tags);for(var z,A,B,C,D,E,y=new t(b);!y.eos();){if(z=y.pos,B=y.scanUntil(u))for(var F=0,G=B.length;F<G;++F)C=B.charAt(F),i(C)?h.push(g.length):k=!0,g.push(["text",C,z,z+1]),z+=1,"\n"===C&&q();if(!y.scan(u))break;if(j=!0,A=y.scan(p)||"name",y.scan(l),"="===A?(B=y.scanUntil(n),y.scan(n),y.scanUntil(v)):"{"===A?(B=y.scanUntil(w),y.scan(o),y.scanUntil(v),A="&"):B=y.scanUntil(v),!y.scan(v))throw new Error("Unclosed tag at "+y.pos);if(D=[A,B,z,y.pos],g.push(D),"#"===A||"^"===A)f.push(D);else if("/"===A){if(E=f.pop(),!E)throw new Error('Unopened section "'+B+'" at '+z);if(E[1]!==B)throw new Error('Unclosed section "'+E[1]+'" at '+z)}else"name"===A||"{"===A||"&"===A?k=!0:"="===A&&x(B)}if(E=f.pop())throw new Error('Unclosed section "'+E[1]+'" at '+y.pos);return s(r(g))}function r(a){for(var c,d,b=[],e=0,f=a.length;e<f;++e)c=a[e],c&&("text"===c[0]&&d&&"text"===d[0]?(d[1]+=c[1],d[3]=c[3]):(b.push(c),d=c));return b}function s(a){for(var e,f,b=[],c=b,d=[],g=0,h=a.length;g<h;++g)switch(e=a[g],e[0]){case"#":case"^":c.push(e),d.push(e),c=e[4]=[];break;case"/":f=d.pop(),f[5]=e[2],c=d.length>0?d[d.length-1][4]:b;break;default:c.push(e)}return b}function t(a){this.string=a,this.tail=a,this.pos=0}function u(a,b){this.view=null==a?{}:a,this.cache={".":this.view},this.parent=b}function v(){this.cache={}}var b=Object.prototype.toString,c=Array.isArray||function(a){return"[object Array]"===b.call(a)},f=RegExp.prototype.test,h=/\S/,j={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},l=/\s*/,m=/\s+/,n=/\s*=/,o=/\s*\}/,p=/#|\^|\/|>|\{|&|=|!/;t.prototype.eos=function(){return""===this.tail},t.prototype.scan=function(a){var b=this.tail.match(a);if(!b||0!==b.index)return"";var c=b[0];return this.tail=this.tail.substring(c.length),this.pos+=c.length,c},t.prototype.scanUntil=function(a){var c,b=this.tail.search(a);switch(b){case-1:c=this.tail,this.tail="";break;case 0:c="";break;default:c=this.tail.substring(0,b),this.tail=this.tail.substring(b)}return this.pos+=c.length,c},u.prototype.push=function(a){return new u(a,this)},u.prototype.lookup=function(a){var c,b=this.cache;if(a in b)c=b[a];else{for(var f,g,e=this;e;){if(a.indexOf(".")>0)for(c=e.view,f=a.split("."),g=0;null!=c&&g<f.length;)c=c[f[g++]];else"object"==typeof e.view&&(c=e.view[a]);if(null!=c)break;e=e.parent}b[a]=c}return d(c)&&(c=c.call(this.view)),c},v.prototype.clearCache=function(){this.cache={}},v.prototype.parse=function(a,b){var c=this.cache,d=c[a];return null==d&&(d=c[a]=q(a,b)),d},v.prototype.render=function(a,b,c){var d=this.parse(a),e=b instanceof u?b:new u(b);return this.renderTokens(d,e,c,a)},v.prototype.renderTokens=function(a,b,c,d){for(var f,g,h,e="",i=0,j=a.length;i<j;++i)h=void 0,f=a[i],g=f[0],"#"===g?h=this._renderSection(f,b,c,d):"^"===g?h=this._renderInverted(f,b,c,d):">"===g?h=this._renderPartial(f,b,c,d):"&"===g?h=this._unescapedValue(f,b):"name"===g?h=this._escapedValue(f,b):"text"===g&&(h=this._rawValue(f)),void 0!==h&&(e+=h);return e},v.prototype._renderSection=function(a,b,e,f){function j(a){return g.render(a,b,e)}var g=this,h="",i=b.lookup(a[1]);if(i){if(c(i))for(var k=0,l=i.length;k<l;++k)h+=this.renderTokens(a[4],b.push(i[k]),e,f);else if("object"===typeof i||"string"===typeof i)h+=this.renderTokens(a[4],b.push(i),e,f);else if(d(i)){if("string"!==typeof f)throw new Error("Cannot use higher-order sections without the original template");i=i.call(b.view,f.slice(a[3],a[5]),j),null!=i&&(h+=i)}else h+=this.renderTokens(a[4],b,e,f);return h}},v.prototype._renderInverted=function(a,b,d,e){var f=b.lookup(a[1]);return!f||c(f)&&0===f.length?this.renderTokens(a[4],b,d,e):void 0},v.prototype._renderPartial=function(a,b,c){if(c){var e=d(c)?c(a[1]):c[a[1]];return null!=e?this.renderTokens(this.parse(e),b,c,e):void 0}},v.prototype._unescapedValue=function(a,b){var c=b.lookup(a[1]);return null!=c?c:void 0},v.prototype._escapedValue=function(b,c){var d=c.lookup(b[1]);return null!=d?a.escape(d):void 0},v.prototype._rawValue=function(a){return a[1]},a.name="mustache.js",a.version="1.1.0",a.tags=["{{","}}"];var w=new v;a.clearCache=function(){return w.clearCache()},a.parse=function(a,b){return w.parse(a,b)},a.render=function(a,b,c){return w.render(a,b,c)},a.to_html=function(b,c,e,f){var g=a.render(b,c,e);return d(f)?void f(g):g},a.escape=k,a.Scanner=t,a.Context=u,a.Writer=v});