diff options
author | Samrat Man Singh <samratmansingh@gmail.com> | 2012-07-07 08:31:08 +0545 |
---|---|---|
committer | Samrat Man Singh <samratmansingh@gmail.com> | 2012-07-07 08:31:08 +0545 |
commit | 2ce26b4ed17e153d9834e6dd21ec0da92d71139e (patch) | |
tree | 9b59308831e99ed534f28aac51b5b236ac54ce87 | |
parent | 705357519b7345422a003d8970d1f396579d91b2 (diff) | |
download | pelican-themes-2ce26b4ed17e153d9834e6dd21ec0da92d71139e.zip pelican-themes-2ce26b4ed17e153d9834e6dd21ec0da92d71139e.tar.gz pelican-themes-2ce26b4ed17e153d9834e6dd21ec0da92d71139e.tar.bz2 |
Move syte-pelican to syte
68 files changed, 6036 insertions, 0 deletions
diff --git a/syte/.gitignore b/syte/.gitignore new file mode 100644 index 0000000..b948985 --- /dev/null +++ b/syte/.gitignore @@ -0,0 +1,2 @@ +*.swp +*.pyc diff --git a/syte/README.md b/syte/README.md new file mode 100644 index 0000000..0d86f68 --- /dev/null +++ b/syte/README.md @@ -0,0 +1,13 @@ +Syte theme for Pelican +====================== + +This theme is based on [Syte][syte] and is for Pelican. Right now, its a bit messy. But I'll clean this up later. + +Anyway, you can [see this theme in action here][samrat]. + +![screenshot](https://github.com/samrat/syte-pelican/raw/master/screenshot.png) + +To try this out, clone this repo and in your `settings.py`, set `THEME = /path/to/syte-pelican` and `MEDIA_URL= /path/to/syte-pelican/static`. + +[syte]: http://rigoneri.github.com/syte/ +[samrat]: http://samrat.github.com diff --git a/syte/compress.py b/syte/compress.py new file mode 100644 index 0000000..99fec93 --- /dev/null +++ b/syte/compress.py @@ -0,0 +1,91 @@ + +import os +import sys +import subprocess +import shlex +import traceback + +path_to_here = os.path.abspath(os.path.dirname(__file__)) +path_before_site = path_to_here[0:path_to_here.rfind('syte')] +sys.path.append(path_before_site) + +#os.environ['DJANGO_SETTINGS_MODULE'] = 'syte.settings' + +#from django.conf import settings +import settings + +def compress_statics(): + try: + #This won't work on windows. + subprocess.check_call(shlex.split('mkdir -p static/css static/js/min')) + except Exception: + print 'Make sure to create "syte > static > css" and "syte > static > js > min" before compressing statics.' + + compress_styles() + compress_js() + +def compress_styles(): + less_path = 'static/less/styles.less' + css_path = 'static/css/' + + try: + subprocess.check_call(shlex.split('lessc {0} {1}styles.min.css -yui-compress'.format(less_path, css_path))) + print 'CSS Styles Generated: styles.min.css' + except Exception: + exc_type, exc_value, exc_traceback = sys.exc_info() + stack_trace = traceback.format_exception(exc_type, exc_value, exc_traceback) + print stack_trace + +def compress_js(): + js_files = [ + 'libs/jquery.url.js', + 'libs/require.js', + 'libs/handlebars.js', + 'libs/moment.min.js', + 'libs/bootstrap-modal.js', + 'libs/spin.min.js', + 'libs/prettify.js', + + 'components/base.js', + 'components/mobile.js', + 'components/blog-posts.js', + 'components/links.js', + ] + + if settings.TWITTER_INTEGRATION_ENABLED: + js_files.append('components/twitter.js') + + if settings.GITHUB_INTEGRATION_ENABLED: + js_files.append('components/github.js') + + if settings.DRIBBBLE_INTEGRATION_ENABLED: + js_files.append('components/dribbble.js') + + if settings.INSTAGRAM_INTEGRATION_ENABLED: + js_files.append('components/instagram.js') + + if settings.DISQUS_INTEGRATION_ENABLED: + js_files.append('components/disqus.js') + + combined = '' + for js in js_files: + f = open('static/js/' + js, 'r') + combined += f.read() + f.close() + + f = open('static/js/combined.js', 'w') + f.write(combined) + f.close() + + try: + subprocess.check_call(shlex.split('uglifyjs -o static/js/min/scripts.min.js static/js/combined.js')) + subprocess.check_call(shlex.split('rm -f static/js/combined.js')) + print 'JavaScript Combined and Minified: scripts.min.js' + except Exception: + exc_type, exc_value, exc_traceback = sys.exc_info() + stack_trace = traceback.format_exception(exc_type, exc_value, exc_traceback) + print stack_trace + +if __name__ == "__main__": + compress_statics() + sys.exit() diff --git a/syte/screenshot.png b/syte/screenshot.png Binary files differnew file mode 100644 index 0000000..51eb2cf --- /dev/null +++ b/syte/screenshot.png diff --git a/syte/static/css/less-1.1.5.min.js b/syte/static/css/less-1.1.5.min.js new file mode 100755 index 0000000..49949fb --- /dev/null +++ b/syte/static/css/less-1.1.5.min.js @@ -0,0 +1,9 @@ +// +// LESS - Leaner CSS v1.1.5 +// http://lesscss.org +// +// Copyright (c) 2009-2011, Alexis Sellier +// Licensed under the Apache 2.0 License. +// +(function(a,b){function c(b){return a.less[b.split("/")[1]]}function l(){var a=document.getElementsByTagName("style");for(var b=0;b<a.length;b++)a[b].type.match(j)&&(new d.Parser).parse(a[b].innerHTML||"",function(c,d){var e=d.toCSS(),f=a[b];try{f.innerHTML=e}catch(g){f.styleSheets.cssText=e}f.type="text/css"})}function m(a,b){for(var c=0;c<d.sheets.length;c++)n(d.sheets[c],a,b,d.sheets.length-(c+1))}function n(b,c,e,f){var h=a.location.href.replace(/[#?].*$/,""),i=b.href.replace(/\?.*$/,""),j=g&&g.getItem(i),k=g&&g.getItem(i+":timestamp"),l={css:j,timestamp:k};/^(https?|file):/.test(i)||(i.charAt(0)=="/"?i=a.location.protocol+"//"+a.location.host+i:i=h.slice(0,h.lastIndexOf("/")+1)+i),q(b.href,b.type,function(a,g){if(!e&&l&&g&&(new Date(g)).valueOf()===(new Date(l.timestamp)).valueOf())p(l.css,b),c(null,b,{local:!0,remaining:f});else try{(new d.Parser({optimization:d.optimization,paths:[i.replace(/[\w\.-]+$/,"")],mime:b.type})).parse(a,function(a,d){if(a)return u(a,i);try{c(d,b,{local:!1,lastModified:g,remaining:f}),s(document.getElementById("less-error-message:"+o(i)))}catch(a){u(a,i)}})}catch(h){u(h,i)}},function(a,b){throw new Error("Couldn't load "+b+" ("+a+")")})}function o(a){return a.replace(/^[a-z]+:\/\/?[^\/]+/,"").replace(/^\//,"").replace(/\?.*$/,"").replace(/\.[^\.\/]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")}function p(a,b,c){var d,e=b.href?b.href.replace(/\?.*$/,""):"",f="less:"+(b.title||o(e));(d=document.getElementById(f))===null&&(d=document.createElement("style"),d.type="text/css",d.media=b.media||"screen",d.id=f,document.getElementsByTagName("head")[0].appendChild(d));if(d.styleSheet)try{d.styleSheet.cssText=a}catch(h){throw new Error("Couldn't reassign styleSheet.cssText.")}else(function(a){d.childNodes.length>0?d.firstChild.nodeValue!==a.nodeValue&&d.replaceChild(a,d.firstChild):d.appendChild(a)})(document.createTextNode(a));c&&g&&(t("saving "+e+" to cache."),g.setItem(e,a),g.setItem(e+":timestamp",c))}function q(a,b,c,e){function i(b,c,d){b.status>=200&&b.status<300?c(b.responseText,b.getResponseHeader("Last-Modified")):typeof d=="function"&&d(b.status,a)}var g=r(),h=f?!1:d.async;typeof g.overrideMimeType=="function"&&g.overrideMimeType("text/css"),g.open("GET",a,h),g.setRequestHeader("Accept",b||"text/x-less, text/css; q=0.9, */*; q=0.5"),g.send(null),f?g.status===0?c(g.responseText):e(g.status,a):h?g.onreadystatechange=function(){g.readyState==4&&i(g,c,e)}:i(g,c,e)}function r(){if(a.XMLHttpRequest)return new XMLHttpRequest;try{return new ActiveXObject("MSXML2.XMLHTTP.3.0")}catch(b){return t("browser doesn't support AJAX."),null}}function s(a){return a&&a.parentNode.removeChild(a)}function t(a){d.env=="development"&&typeof console!="undefined"&&console.log("less: "+a)}function u(a,b){var c="less-error-message:"+o(b),e=["<ul>",'<li><label>[-1]</label><pre class="ctx">{0}</pre></li>',"<li><label>[0]</label><pre>{current}</pre></li>",'<li><label>[1]</label><pre class="ctx">{2}</pre></li>',"</ul>"].join("\n"),f=document.createElement("div"),g,h;f.id=c,f.className="less-error-message",h="<h3>"+(a.message||"There is an error in your .less file")+"</h3>"+'<p><a href="'+b+'">'+b+"</a> ",a.extract&&(h+="on line "+a.line+", column "+(a.column+1)+":</p>"+e.replace(/\[(-?\d)\]/g,function(b,c){return parseInt(a.line)+parseInt(c)||""}).replace(/\{(\d)\}/g,function(b,c){return a.extract[parseInt(c)]||""}).replace(/\{current\}/,a.extract[1].slice(0,a.column)+'<span class="error">'+a.extract[1].slice(a.column)+"</span>")),f.innerHTML=h,p([".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #ee4444;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.ctx {","color: #dd4444;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"),{title:"error-message"}),f.style.cssText=["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),d.env=="development"&&(g=setInterval(function(){document.body&&(document.getElementById(c)?document.body.replaceChild(f,document.getElementById(c)):document.body.insertBefore(f,document.body.firstChild),clearInterval(g))},10))}Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"||a instanceof Array}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=this.length>>>0;for(var d=0;d<c;d++)d in this&&a.call(b,this[d],d,this)}),Array.prototype.map||(Array.prototype.map=function(a){var b=this.length>>>0,c=new Array(b),d=arguments[1];for(var e=0;e<b;e++)e in this&&(c[e]=a.call(d,this[e],e,this));return c}),Array.prototype.filter||(Array.prototype.filter=function(a){var b=[],c=arguments[1];for(var d=0;d<this.length;d++)a.call(c,this[d])&&b.push(this[d]);return b}),Array.prototype.reduce||(Array.prototype.reduce=function(a){var b=this.length>>>0,c=0;if(b===0&&arguments.length===1)throw new TypeError;if(arguments.length>=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c<b;c++)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length,c=arguments[1]||0;if(!b)return-1;if(c>=b)return-1;c<0&&(c+=b);for(;c<b;c++){if(!Object.prototype.hasOwnProperty.call(this,c))continue;if(a===this[c])return c}return-1}),Object.keys||(Object.keys=function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b}),String.prototype.trim||(String.prototype.trim=function(){return String(this).replace(/^\s\s*/,"").replace(/\s\s*$/,"")});var d,e;typeof environment=="object"&&{}.toString.call(environment)==="[object Environment]"?(d={},e=d.tree={},d.mode="rhino"):typeof a=="undefined"?(d=exports,e=c("./tree"),d.mode="node"):(typeof a.less=="undefined"&&(a.less={}),d=a.less,e=a.less.tree={},d.mode="browser"),d.Parser=function(a){function p(){g=j[f],h=c,k=c}function q(){j[f]=g,c=h,k=c}function r(){c>k&&(j[f]=j[f].slice(c-k),k=c)}function s(a){var d,e,g,h,i,m,n,o;if(a instanceof Function)return a.call(l.parsers);if(typeof a=="string")d=b.charAt(c)===a?a:null,g=1,r();else{r();if(d=a.exec(j[f]))g=d[0].length;else return null}if(d){o=c+=g,m=c+j[f].length-g;while(c<m){h=b.charCodeAt(c);if(h!==32&&h!==10&&h!==9)break;c++}return j[f]=j[f].slice(g+(c-o)),k=c,j[f].length===0&&f<j.length-1&&f++,typeof d=="string"?d:d.length===1?d[0]:d}}function t(a){return typeof a=="string"?b.charAt(c)===a:a.test(j[f])?!0:!1}var b,c,f,g,h,i,j,k,l,m=this,n=function(){},o=this.imports={paths:a&&a.paths||[],queue:[],files:{},mime:a&&a.mime,push:function(b,c){var e=this;this.queue.push(b),d.Parser.importer(b,this.paths,function(a){e.queue.splice(e.queue.indexOf(b),1),e.files[b]=a,c(a),e.queue.length===0&&n()},a)}};return this.env=a=a||{},this.optimization="optimization"in this.env?this.env.optimization:1,this.env.filename=this.env.filename||null,l={imports:o,parse:function(d,g){var h,l,m,o,p,q,r=[],t,u=null;c=f=k=i=0,j=[],b=d.replace(/\r\n/g,"\n"),j=function(c){var d=0,e=/[^"'`\{\}\/\(\)]+/g,f=/\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,g=0,h,i=c[0],j,k;for(var l=0,m,n;l<b.length;l++){e.lastIndex=l,(h=e.exec(b))&&h.index===l&&(l+=h[0].length,i.push(h[0])),m=b.charAt(l),f.lastIndex=l,!k&&!j&&m==="/"&&(n=b.charAt(l+1),(n==="/"||n==="*")&&(h=f.exec(b))&&h.index===l&&(l+=h[0].length,i.push(h[0]),m=b.charAt(l)));if(m==="{"&&!k&&!j)g++,i.push(m);else if(m==="}"&&!k&&!j)g--,i.push(m),c[++d]=i=[];else if(m==="("&&!k&&!j)i.push(m),j=!0;else if(m===")"&&!k&&j)i.push(m),j=!1;else{if(m==='"'||m==="'"||m==="`")k?k=k===m?!1:k:k=m;i.push(m)}}if(g>0)throw{type:"Syntax",message:"Missing closing `}`",filename:a.filename};return c.map(function(a){return a.join("")})}([[]]),h=new e.Ruleset([],s(this.parsers.primary)),h.root=!0,h.toCSS=function(c){var d,f,g;return function(g,h){function n(a){return a?(b.slice(0,a).match(/\n/g)||"").length:null}var i=[];g=g||{},typeof h=="object"&&!Array.isArray(h)&&(h=Object.keys(h).map(function(a){var b=h[a];return b instanceof e.Value||(b instanceof e.Expression||(b=new e.Expression([b])),b=new e.Value([b])),new e.Rule("@"+a,b,!1,0)}),i=[new e.Ruleset(null,h)]);try{var j=c.call(this,{frames:i}).toCSS([],{compress:g.compress||!1})}catch(k){f=b.split("\n"),d=n(k.index);for(var l=k.index,m=-1;l>=0&&b.charAt(l)!=="\n";l--)m++;throw{type:k.type,message:k.message,filename:a.filename,index:k.index,line:typeof d=="number"?d+1:null,callLine:k.call&&n(k.call)+1,callExtract:f[n(k.call)],stack:k.stack,column:m,extract:[f[d-1],f[d],f[d+1]]}}return g.compress?j.replace(/(\s)+/g,"$1"):j}}(h.eval);if(c<b.length-1){c=i,q=b.split("\n"),p=(b.slice(0,c).match(/\n/g)||"").length+1;for(var v=c,w=-1;v>=0&&b.charAt(v)!=="\n";v--)w++;u={name:"ParseError",message:"Syntax Error on line "+p,index:c,filename:a.filename,line:p,column:w,extract:[q[p-2],q[p-1],q[p]]}}this.imports.queue.length>0?n=function(){g(u,h)}:g(u,h)},parsers:{primary:function(){var a,b=[];while((a=s(this.mixin.definition)||s(this.rule)||s(this.ruleset)||s(this.mixin.call)||s(this.comment)||s(this.directive))||s(/^[\s\n]+/))a&&b.push(a);return b},comment:function(){var a;if(b.charAt(c)!=="/")return;if(b.charAt(c+1)==="/")return new e.Comment(s(/^\/\/.*/),!0);if(a=s(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/))return new e.Comment(a)},entities:{quoted:function(){var a,d=c,f;b.charAt(d)==="~"&&(d++,f=!0);if(b.charAt(d)!=='"'&&b.charAt(d)!=="'")return;f&&s("~");if(a=s(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/))return new e.Quoted(a[0],a[1]||a[2],f)},keyword:function(){var a;if(a=s(/^[_A-Za-z-][_A-Za-z0-9-]*/))return new e.Keyword(a)},call:function(){var a,b,d=c;if(!(a=/^([\w-]+|%)\(/.exec(j[f])))return;a=a[1].toLowerCase();if(a==="url")return null;c+=a.length;if(a==="alpha")return s(this.alpha);s("("),b=s(this.entities.arguments);if(!s(")"))return;if(a)return new e.Call(a,b,d)},arguments:function(){var a=[],b;while(b=s(this.expression)){a.push(b);if(!s(","))break}return a},literal:function(){return s(this.entities.dimension)||s(this.entities.color)||s(this.entities.quoted)},url:function(){var a;if(b.charAt(c)!=="u"||!s(/^url\(/))return;a=s(this.entities.quoted)||s(this.entities.variable)||s(this.entities.dataURI)||s(/^[-\w%@$\/.&=:;#+?~]+/)||"";if(!s(")"))throw new Error("missing closing ) for url()");return new e.URL(a.value||a.data||a instanceof e.Variable?a:new e.Anonymous(a),o.paths)},dataURI:function(){var a;if(s(/^data:/)){a={},a.mime=s(/^[^\/]+\/[^,;)]+/)||"",a.charset=s(/^;\s*charset=[^,;)]+/)||"",a.base64=s(/^;\s*base64/)||"",a.data=s(/^,\s*[^)]+/);if(a.data)return a}},variable:function(){var a,d=c;if(b.charAt(c)==="@"&&(a=s(/^@@?[\w-]+/)))return new e.Variable(a,d)},color:function(){var a;if(b.charAt(c)==="#"&&(a=s(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/)))return new e.Color(a[1])},dimension:function(){var a,d=b.charCodeAt(c);if(d>57||d<45||d===47)return;if(a=s(/^(-?\d*\.?\d+)(px|%|em|pc|ex|in|deg|s|ms|pt|cm|mm|rad|grad|turn)?/))return new e.Dimension(a[1],a[2])},javascript:function(){var a,d=c,f;b.charAt(d)==="~"&&(d++,f=!0);if(b.charAt(d)!=="`")return;f&&s("~");if(a=s(/^`([^`]*)`/))return new e.JavaScript(a[1],c,f)}},variable:function(){var a;if(b.charAt(c)==="@"&&(a=s(/^(@[\w-]+)\s*:/)))return a[1]},shorthand:function(){var a,b;if(!t(/^[@\w.%-]+\/[@\w.-]+/))return;if((a=s(this.entity))&&s("/")&&(b=s(this.entity)))return new e.Shorthand(a,b)},mixin:{call:function(){var a=[],d,f,g,h=c,i=b.charAt(c);if(i!=="."&&i!=="#")return;while(d=s(/^[#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/))a.push(new e.Element(f,d,c)),f=s(">");s("(")&&(g=s(this.entities.arguments))&&s(")");if(a.length>0&&(s(";")||t("}")))return new e.mixin.Call(a,g,h)},definition:function(){var a,d=[],f,g,h,i;if(b.charAt(c)!=="."&&b.charAt(c)!=="#"||t(/^[^{]*(;|})/))return;if(f=s(/^([#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+)\s*\(/)){a=f[1];while(h=s(this.entities.variable)||s(this.entities.literal)||s(this.entities.keyword)){if(h instanceof e.Variable)if(s(":"))if(i=s(this.expression))d.push({name:h.name,value:i});else throw new Error("Expected value");else d.push({name:h.name});else d.push({value:h});if(!s(","))break}if(!s(")"))throw new Error("Expected )");g=s(this.block);if(g)return new e.mixin.Definition(a,d,g)}}},entity:function(){return s(this.entities.literal)||s(this.entities.variable)||s(this.entities.url)||s(this.entities.call)||s(this.entities.keyword)||s(this.entities.javascript)||s(this.comment)},end:function(){return s(";")||t("}")},alpha:function(){var a;if(!s(/^\(opacity=/i))return;if(a=s(/^\d+/)||s(this.entities.variable)){if(!s(")"))throw new Error("missing closing ) for alpha()");return new e.Alpha(a)}},element:function(){var a,b,d;d=s(this.combinator),a=s(/^(?:\d+\.\d+|\d+)%/)||s(/^(?:[.#]?|:*)(?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/)||s("*")||s(this.attribute)||s(/^\([^)@]+\)/);if(a)return new e.Element(d,a,c);if(d.value&&d.value.charAt(0)==="&")return new e.Element(d,null,c)},combinator:function(){var a,d=b.charAt(c);if(d===">"||d==="+"||d==="~"){c++;while(b.charAt(c)===" ")c++;return new e.Combinator(d)}if(d==="&"){a="&",c++,b.charAt(c)===" "&&(a="& ");while(b.charAt(c)===" ")c++;return new e.Combinator(a)}if(d===":"&&b.charAt(c+1)===":"){c+=2;while(b.charAt(c)===" ")c++;return new e.Combinator("::")}return b.charAt(c-1)===" "?new e.Combinator(" "):new e.Combinator(null)},selector:function(){var a,d,f=[],g,h;while(d=s(this.element)){g=b.charAt(c),f.push(d);if(g==="{"||g==="}"||g===";"||g===",")break}if(f.length>0)return new e.Selector(f)},tag:function(){return s(/^[a-zA-Z][a-zA-Z-]*[0-9]?/)||s("*")},attribute:function(){var a="",b,c,d;if(!s("["))return;if(b=s(/^[a-zA-Z-]+/)||s(this.entities.quoted))(d=s(/^[|~*$^]?=/))&&(c=s(this.entities.quoted)||s(/^[\w-]+/))?a=[b,d,c.toCSS?c.toCSS():c].join(""):a=b;if(!s("]"))return;if(a)return"["+a+"]"},block:function(){var a;if(s("{")&&(a=s(this.primary))&&s("}"))return a},ruleset:function(){var a=[],b,d,f;p();while(b=s(this.selector)){a.push(b),s(this.comment);if(!s(","))break;s(this.comment)}if(a.length>0&&(d=s(this.block)))return new e.Ruleset(a,d);i=c,q()},rule:function(){var a,d,g=b.charAt(c),k,l;p();if(g==="."||g==="#"||g==="&")return;if(a=s(this.variable)||s(this.property)){a.charAt(0)!="@"&&(l=/^([^@+\/'"*`(;{}-]*);/.exec(j[f]))?(c+=l[0].length-1,d=new e.Anonymous(l[1])):a==="font"?d=s(this.font):d=s(this.value),k=s(this.important);if(d&&s(this.end))return new e.Rule(a,d,k,h);i=c,q()}},"import":function(){var a;if(s(/^@import\s+/)&&(a=s(this.entities.quoted)||s(this.entities.url))&&s(";"))return new e.Import(a,o)},directive:function(){var a,d,f,g;if(b.charAt(c)!=="@")return;if(d=s(this["import"]))return d;if(a=s(/^@media|@page/)||s(/^@(?:-webkit-|-moz-)?keyframes/)){g=(s(/^[^{]+/)||"").trim();if(f=s(this.block))return new e.Directive(a+" "+g,f)}else if(a=s(/^@[-a-z]+/))if(a==="@font-face"){if(f=s(this.block))return new e.Directive(a,f)}else if((d=s(this.entity))&&s(";"))return new e.Directive(a,d)},font:function(){var a=[],b=[],c,d,f,g;while(g=s(this.shorthand)||s(this.entity))b.push(g);a.push(new e.Expression(b));if(s(","))while(g=s(this.expression)){a.push(g);if(!s(","))break}return new e.Value(a)},value:function(){var a,b=[],c;while(a=s(this.expression)){b.push(a);if(!s(","))break}if(b.length>0)return new e.Value(b)},important:function(){if(b.charAt(c)==="!")return s(/^! *important/)},sub:function(){var a;if(s("(")&&(a=s(this.expression))&&s(")"))return a},multiplication:function(){var a,b,c,d;if(a=s(this.operand)){while((c=s("/")||s("*"))&&(b=s(this.operand)))d=new e.Operation(c,[d||a,b]);return d||a}},addition:function(){var a,d,f,g;if(a=s(this.multiplication)){while((f=s(/^[-+]\s+/)||b.charAt(c-1)!=" "&&(s("+")||s("-")))&&(d=s(this.multiplication)))g=new e.Operation(f,[g||a,d]);return g||a}},operand:function(){var a,d=b.charAt(c+1);b.charAt(c)==="-"&&(d==="@"||d==="(")&&(a=s("-"));var f=s(this.sub)||s(this.entities.dimension)||s(this.entities.color)||s(this.entities.variable)||s(this.entities.call);return a?new e.Operation("*",[new e.Dimension(-1),f]):f},expression:function(){var a,b,c=[],d;while(a=s(this.addition)||s(this.entity))c.push(a);if(c.length>0)return new e.Expression(c)},property:function(){var a;if(a=s(/^(\*?-?[-a-z_0-9]+)\s*:/))return a[1]}}}};if(d.mode==="browser"||d.mode==="rhino")d.Parser.importer=function(a,b,c,d){a.charAt(0)!=="/"&&b.length>0&&(a=b[0]+a),n({href:a,title:a,type:d.mime},c,!0)};(function(a){function b(b){return a.functions.hsla(b.h,b.s,b.l,b.a)}function c(b){if(b instanceof a.Dimension)return parseFloat(b.unit=="%"?b.value/100:b.value);if(typeof b=="number")return b;throw{error:"RuntimeError",message:"color functions take numbers as parameters"}}function d(a){return Math.min(1,Math.max(0,a))}a.functions={rgb:function(a,b,c){return this.rgba(a,b,c,1)},rgba:function(b,d,e,f){var g=[b,d,e].map(function(a){return c(a)}),f=c(f);return new a.Color(g,f)},hsl:function(a,b,c){return this.hsla(a,b,c,1)},hsla:function(a,b,d,e){function h(a){return a=a<0?a+1:a>1?a-1:a,a*6<1?g+(f-g)*a*6:a*2<1?f:a*3<2?g+(f-g)*(2/3-a)*6:g}a=c(a)%360/360,b=c(b),d=c(d),e=c(e);var f=d<=.5?d*(b+1):d+b-d*b,g=d*2-f;return this.rgba(h(a+1/3)*255,h(a)*255,h(a-1/3)*255,e)},hue:function(b){return new a.Dimension(Math.round(b.toHSL().h))},saturation:function(b){return new a.Dimension(Math.round(b.toHSL().s*100),"%")},lightness:function(b){return new a.Dimension(Math.round(b.toHSL().l*100),"%")},alpha:function(b){return new a.Dimension(b.toHSL().a)},saturate:function(a,c){var e=a.toHSL();return e.s+=c.value/100,e.s=d(e.s),b(e)},desaturate:function(a,c){var e=a.toHSL();return e.s-=c.value/100,e.s=d(e.s),b(e)},lighten:function(a,c){var e=a.toHSL();return e.l+=c.value/100,e.l=d(e.l),b(e)},darken:function(a,c){var e=a.toHSL();return e.l-=c.value/100,e.l=d(e.l),b(e)},fadein:function(a,c){var e=a.toHSL();return e.a+=c.value/100,e.a=d(e.a),b(e)},fadeout:function(a,c){var e=a.toHSL();return e.a-=c.value/100,e.a=d(e.a),b(e)},fade:function(a,c){var e=a.toHSL();return e.a=c.value/100,e.a=d(e.a),b(e)},spin:function(a,c){var d=a.toHSL(),e=(d.h+c.value)%360;return d.h=e<0?360+e:e,b(d)},mix:function(b,c,d){var e=d.value/100,f=e*2-1,g=b.toHSL().a-c.toHSL().a,h=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,i=1-h,j=[b.rgb[0]*h+c.rgb[0]*i,b.rgb[1]*h+c.rgb[1]*i,b.rgb[2]*h+c.rgb[2]*i],k=b.alpha*e+c.alpha*(1-e);return new a.Color(j,k)},greyscale:function(b){return this.desaturate(b,new a.Dimension(100))},e:function(b){return new a.Anonymous(b instanceof a.JavaScript?b.evaluated:b)},escape:function(b){return new a.Anonymous(encodeURI(b.value).replace(/=/g,"%3D").replace(/:/g,"%3A").replace(/#/g,"%23").replace(/;/g,"%3B").replace(/\(/g,"%28").replace(/\)/g,"%29"))},"%":function(b){var c=Array.prototype.slice.call(arguments,1),d=b.value;for(var e=0;e<c.length;e++)d=d.replace(/%[sda]/i,function(a){var b=a.match(/s/i)?c[e].value:c[e].toCSS();return a.match(/[A-Z]$/)?encodeURIComponent(b):b});return d=d.replace(/%%/g,"%"),new a.Quoted('"'+d+'"',d)},round:function(b){if(b instanceof a.Dimension)return new a.Dimension(Math.round(c(b)),b.unit);if(typeof b=="number")return Math.round(b);throw{error:"RuntimeError",message:"math functions take numbers as parameters"}},argb:function(b){return new a.Anonymous(b.toARGB())}}})(c("./tree")),function(a){a.Alpha=function(a){this.value=a},a.Alpha.prototype={toCSS:function(){return"alpha(opacity="+(this.value.toCSS?this.value.toCSS():this.value)+")"},eval:function(a){return this.value.eval&&(this.value=this.value.eval(a)),this}}}(c("../tree")),function(a){a.Anonymous=function(a){this.value=a.value||a},a.Anonymous.prototype={toCSS:function(){return this.value},eval:function(){return this}}}(c("../tree")),function(a){a.Call=function(a,b,c){this.name=a,this.args=b,this.index=c},a.Call.prototype={eval:function(b){var c=this.args.map(function(a){return a.eval(b)});if(!(this.name in a.functions))return new a.Anonymous(this.name+"("+c.map(function(a){return a.toCSS()}).join(", ")+")");try{return a.functions[this.name].apply(a.functions,c)}catch(d){throw{message:"error evaluating function `"+this.name+"`",index:this.index}}},toCSS:function(a){return this.eval(a).toCSS()}}}(c("../tree")),function(a){a.Color=function(a,b){Array.isArray(a)?this.rgb=a:a.length==6?this.rgb=a.match(/.{2}/g).map(function(a){return parseInt(a,16)}):this.rgb=a.split("").map(function(a){return parseInt(a+a,16)}),this.alpha=typeof b=="number"?b:1},a.Color.prototype={eval:function(){return this},toCSS:function(){return this.alpha<1?"rgba("+this.rgb.map(function(a){return Math.round(a)}).concat(this.alpha).join(", ")+")":"#"+this.rgb.map(function(a){return a=Math.round(a),a=(a>255?255:a<0?0:a).toString(16),a.length===1?"0"+a:a}).join("")},operate:function(b,c){var d=[];c instanceof a.Color||(c=c.toColor());for(var e=0;e<3;e++)d[e]=a.operate(b,this.rgb[e],c.rgb[e]);return new a.Color(d,this.alpha+c.alpha)},toHSL:function(){var a=this.rgb[0]/255,b=this.rgb[1]/255,c=this.rgb[2]/255,d=this.alpha,e=Math.max(a,b,c),f=Math.min(a,b,c),g,h,i=(e+f)/2,j=e-f;if(e===f)g=h=0;else{h=i>.5?j/(2-e-f):j/(e+f);switch(e){case a:g=(b-c)/j+(b<c?6:0);break;case b:g=(c-a)/j+2;break;case c:g=(a-b)/j+4}g/=6}return{h:g*360,s:h,l:i,a:d}},toARGB:function(){var a=[Math.round(this.alpha*255)].concat(this.rgb);return"#"+a.map(function(a){return a=Math.round(a),a=(a>255?255:a<0?0:a).toString(16),a.length===1?"0"+a:a}).join("")}}}(c("../tree")),function(a){a.Comment=function(a,b){this.value=a,this.silent=!!b},a.Comment.prototype={toCSS:function(a){return a.compress?"":this.value},eval:function(){return this}}}(c("../tree")),function(a){a.Dimension=function(a,b){this.value=parseFloat(a),this.unit=b||null},a.Dimension.prototype={eval:function(){return this},toColor:function(){return new a.Color([this.value,this.value,this.value])},toCSS:function(){var a=this.value+this.unit;return a},operate:function(b,c){return new a.Dimension(a.operate(b,this.value,c.value),this.unit||c.unit)}}}(c("../tree")),function(a){a.Directive=function(b,c){this.name=b,Array.isArray(c)?this.ruleset=new a.Ruleset([],c):this.value=c},a.Directive.prototype={toCSS:function(a,b){return this.ruleset?(this.ruleset.root=!0,this.name+(b.compress?"{":" {\n ")+this.ruleset.toCSS(a,b).trim().replace(/\n/g,"\n ")+(b.compress?"}":"\n}\n")):this.name+" "+this.value.toCSS()+";\n"},eval:function(a){return a.frames.unshift(this),this.ruleset=this.ruleset&&this.ruleset.eval(a),a.frames.shift(),this},variable:function(b){return a.Ruleset.prototype.variable.call(this.ruleset,b)},find:function(){return a.Ruleset.prototype.find.apply(this.ruleset,arguments)},rulesets:function(){return a.Ruleset.prototype.rulesets.apply(this.ruleset)}}}(c("../tree")),function(a){a.Element=function(b,c,d){this.combinator=b instanceof a.Combinator?b:new a.Combinator(b),this.value=c?c.trim():"",this.index=d},a.Element.prototype.toCSS=function(a){return this.combinator.toCSS(a||{})+this.value},a.Combinator=function(a){a===" "?this.value=" ":a==="& "?this.value="& ":this.value=a?a.trim():""},a.Combinator.prototype.toCSS=function(a){return{"":""," ":" ","&":"","& ":" ",":":" :","::":"::","+":a.compress?"+":" + ","~":a.compress?"~":" ~ ",">":a.compress?">":" > "}[this.value]}}(c("../tree")),function(a){a.Expression=function(a){this.value=a},a.Expression.prototype={eval:function(b){return this.value.length>1?new a.Expression(this.value.map(function(a){return a.eval(b)})):this.value.length===1?this.value[0].eval(b):this},toCSS:function(a){return this.value.map(function(b){return b.toCSS(a)}).join(" ")}}}(c("../tree")),function(a){a.Import=function(b,c){var d=this;this._path=b,b instanceof a.Quoted?this.path=/\.(le?|c)ss(\?.*)?$/.test(b.value)?b.value:b.value+".less":this.path=b.value.value||b.value,this.css=/css(\?.*)?$/.test(this.path),this.css||c.push(this.path,function(a){if(!a)throw new Error("Error parsing "+d.path);d.root=a})},a.Import.prototype={toCSS:function(){return this.css?"@import "+this._path.toCSS()+";\n":""},eval:function(b){var c;if(this.css)return this;c=new a.Ruleset(null,this.root.rules.slice(0));for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.Import&&Array.prototype.splice.apply(c.rules,[d,1].concat(c.rules[d].eval(b)));return c.rules}}}(c("../tree")),function(a){a.JavaScript=function(a,b,c){this.escaped=c,this.expression=a,this.index=b},a.JavaScript.prototype={eval:function(b){var c,d=this,e={},f=this.expression.replace(/@\{([\w-]+)\}/g,function(c,e){return a.jsify((new a.Variable("@"+e,d.index)).eval(b))});try{f=new Function("return ("+f+")")}catch(g){throw{message:"JavaScript evaluation error: `"+f+"`",index:this.index}}for(var h in b.frames[0].variables())e[h.slice(1)]={value:b.frames[0].variables()[h].value,toJS:function(){return this.value.eval(b).toCSS()}};try{c=f.call(e)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message+"'",index:this.index}}return typeof c=="string"?new a.Quoted('"'+c+'"',c,this.escaped,this.index):Array.isArray(c)?new a.Anonymous(c.join(", ")):new a.Anonymous(c)}}}(c("../tree")),function(a){a.Keyword=function(a){this.value=a},a.Keyword.prototype={eval:function(){return this},toCSS:function(){return this.value}}}(c("../tree")),function(a){a.mixin={},a.mixin.Call=function(b,c,d){this.selector=new a.Selector(b),this.arguments=c,this.index=d},a.mixin.Call.prototype={eval:function(a){var b,c,d=[],e=!1;for(var f=0;f<a.frames.length;f++)if((b=a.frames[f].find(this.selector)).length>0){c=this.arguments&&this.arguments.map(function(b){return b.eval(a)});for(var g=0;g<b.length;g++)if(b[g].match(c,a))try{Array.prototype.push.apply(d,b[g].eval(a,this.arguments).rules),e=!0}catch(h){throw{message:h.message,index:h.index,stack:h.stack,call:this.index}}if(e)return d;throw{message:"No matching definition was found for `"+this.selector.toCSS().trim()+"("+this.arguments.map(function(a){return a.toCSS()}).join(", ")+")`",index:this.index}}throw{message:this.selector.toCSS().trim()+" is undefined",index:this.index}}},a.mixin.Definition=function(b,c,d){this.name=b,this.selectors=[new a.Selector([new a.Element(null,b)])],this.params=c,this.arity=c.length,this.rules=d,this._lookups={},this.required=c.reduce(function(a,b){return!b.name||b.name&&!b.value?a+1:a},0),this.parent=a.Ruleset.prototype,this.frames=[]},a.mixin.Definition.prototype={toCSS:function(){return""},variable:function(a){return this.parent.variable.call(this,a)},variables:function(){return this.parent.variables.call(this)},find:function(){return this.parent.find.apply(this,arguments)},rulesets:function(){return this.parent.rulesets.apply(this)},eval:function(b,c){var d=new a.Ruleset(null,[]),e,f=[];for(var g=0,h;g<this.params.length;g++)if(this.params[g].name)if(h=c&&c[g]||this.params[g].value)d.rules.unshift(new a.Rule(this.params[g].name,h.eval(b)));else throw{message:"wrong number of arguments for "+this.name+" ("+c.length+" for "+this.arity+")"};for(var g=0;g<Math.max(this.params.length,c&&c.length);g++)f.push(c[g]||this.params[g].value);return d.rules.unshift(new a.Rule("@arguments",(new a.Expression(f)).eval(b))),(new a.Ruleset(null,this.rules.slice(0))).eval({frames:[this,d].concat(this.frames,b.frames)})},match:function(a,b){var c=a&&a.length||0,d;if(c<this.required)return!1;if(this.required>0&&c>this.params.length)return!1;d=Math.min(c,this.arity);for(var e=0;e<d;e++)if(!this.params[e].name&&a[e].eval(b).toCSS()!=this.params[e].value.eval(b).toCSS())return!1;return!0}}}(c("../tree")),function(a){a.Operation=function(a,b){this.op=a.trim(),this.operands=b},a.Operation.prototype.eval=function(b){var c=this.operands[0].eval(b),d=this.operands[1].eval(b),e;if(c instanceof a.Dimension&&d instanceof a.Color)if(this.op==="*"||this.op==="+")e=d,d=c,c=e;else throw{name:"OperationError",message:"Can't substract or divide a color from a number"};return c.operate(this.op,d)},a.operate=function(a,b,c){switch(a){case"+":return b+c;case"-":return b-c;case"*":return b*c;case"/":return b/c}}}(c("../tree")),function(a){a.Quoted=function(a,b,c,d){this.escaped=c,this.value=b||"",this.quote=a.charAt(0),this.index=d},a.Quoted.prototype={toCSS:function(){return this.escaped?this.value:this.quote+this.value+this.quote},eval:function(b){var c=this,d=this.value.replace(/`([^`]+)`/g,function(d,e){return(new a.JavaScript(e,c.index,!0)).eval(b).value}).replace(/@\{([\w-]+)\}/g,function(d,e){var f=(new a.Variable("@"+e,c.index)).eval(b);return f.value||f.toCSS()});return new a.Quoted(this.quote+d+this.quote,d,this.escaped,this.index)}}}(c("../tree")),function(a){a.Rule=function(b,c,d,e){this.name=b,this.value=c instanceof a.Value?c:new a.Value([c]),this.important=d?" "+d.trim():"",this.index=e,b.charAt(0)==="@"?this.variable=!0:this.variable=!1},a.Rule.prototype.toCSS=function(a){return this.variable?"":this.name+(a.compress?":":": ")+this.value.toCSS(a)+this.important+";"},a.Rule.prototype.eval=function(b){return new a.Rule(this.name,this.value.eval(b),this.important,this.index)},a.Shorthand=function(a,b){this.a=a,this.b=b},a.Shorthand.prototype={toCSS:function(a){return this.a.toCSS(a)+"/"+this.b.toCSS(a)},eval:function(){return this}}}(c("../tree")),function(a){a.Ruleset=function(a,b){this.selectors=a,this.rules=b,this._lookups={}},a.Ruleset.prototype={eval:function(b){var c=new a.Ruleset(this.selectors,this.rules.slice(0));c.root=this.root,b.frames.unshift(c);if(c.root)for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.Import&&Array.prototype.splice.apply(c.rules,[d,1].concat(c.rules[d].eval(b)));for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.mixin.Definition&&(c.rules[d].frames=b.frames.slice(0));for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.mixin.Call&&Array.prototype.splice.apply(c.rules,[d,1].concat(c.rules[d].eval(b)));for(var d=0,e;d<c.rules.length;d++)e=c.rules[d],e instanceof a.mixin.Definition||(c.rules[d]=e.eval?e.eval(b):e);return b.frames.shift(),c},match:function(a){return!a||a.length===0},variables:function(){return this._variables?this._variables:this._variables=this.rules.reduce(function(b,c){return c instanceof a.Rule&&c.variable===!0&&(b[c.name]=c),b},{})},variable:function(a){return this.variables()[a]},rulesets:function(){return this._rulesets?this._rulesets:this._rulesets=this.rules.filter(function(b){return b instanceof a.Ruleset||b instanceof a.mixin.Definition})},find:function(b,c){c=c||this;var d=[],e,f,g=b.toCSS();return g in this._lookups?this._lookups[g]:(this.rulesets().forEach(function(e){if(e!==c)for(var g=0;g<e.selectors.length;g++)if(f=b.match(e.selectors[g])){b.elements.length>e.selectors[g].elements.length?Array.prototype.push.apply(d,e.find(new a.Selector(b.elements.slice(1)),c)):d.push(e);break}}),this._lookups[g]=d)},toCSS:function(b,c){var d=[],e=[],f=[],g=[],h,i;this.root||(b.length===0?g=this.selectors.map(function(a){return[a]}):this.joinSelectors(g,b,this.selectors));for(var j=0;j<this.rules.length;j++)i=this.rules[j],i.rules||i instanceof a.Directive?f.push(i.toCSS(g,c)):i instanceof a.Comment?i.silent||(this.root?f.push(i.toCSS(c)):e.push(i.toCSS(c))):i.toCSS&&!i.variable?e.push(i.toCSS(c)):i.value&&!i.variable&&e.push(i.value.toString());return f=f.join(""),this.root?d.push(e.join(c.compress?"":"\n")):e.length>0&&(h=g.map(function(a){return a.map(function(a){return a.toCSS(c)}).join("").trim()}).join(c.compress?",":g.length>3?",\n":", "),d.push(h,(c.compress?"{":" {\n ")+e.join(c.compress?"":"\n ")+(c.compress?"}":"\n}\n"))),d.push(f),d.join("")+(c.compress?"\n":"")},joinSelectors:function(a,b,c){for(var d=0;d<c.length;d++)this.joinSelector(a,b,c[d])},joinSelector:function(b,c,d){var e=[],f=[],g=[],h=[],i=!1,j;for(var k=0;k<d.elements.length;k++)j=d.elements[k],j.combinator.value.charAt(0)==="&"&&(i=!0),i?h.push(j):g.push(j);i||(h=g,g=[]),g.length>0&&e.push(new a.Selector(g)),h.length>0&&f.push(new a.Selector(h));for(var l=0;l<c.length;l++)b.push(e.concat(c[l]).concat(f))}}}(c("../tree")),function(a){a.Selector=function(a){this.elements=a,this.elements[0].combinator.value===""&&(this.elements[0].combinator.value=" ")},a.Selector.prototype.match=function(a){var b=this.elements.length,c=a.elements.length,d=Math.min(b,c);if(b<c)return!1;for(var e=0;e<d;e++)if(this.elements[e].value!==a.elements[e].value)return!1 +;return!0},a.Selector.prototype.toCSS=function(a){return this._css?this._css:this._css=this.elements.map(function(b){return typeof b=="string"?" "+b.trim():b.toCSS(a)}).join("")}}(c("../tree")),function(a){a.URL=function(a,b){a.data?this.attrs=a:(d.mode==="browser"&&!/^(?:https?:\/\/|file:\/\/|data:|\/)/.test(a.value)&&b.length>0&&(a.value=b[0]+(a.value.charAt(0)==="/"?a.value.slice(1):a.value)),this.value=a,this.paths=b)},a.URL.prototype={toCSS:function(){return"url("+(this.attrs?"data:"+this.attrs.mime+this.attrs.charset+this.attrs.base64+this.attrs.data:this.value.toCSS())+")"},eval:function(b){return this.attrs?this:new a.URL(this.value.eval(b),this.paths)}}}(c("../tree")),function(a){a.Value=function(a){this.value=a,this.is="value"},a.Value.prototype={eval:function(b){return this.value.length===1?this.value[0].eval(b):new a.Value(this.value.map(function(a){return a.eval(b)}))},toCSS:function(a){return this.value.map(function(b){return b.toCSS(a)}).join(a.compress?",":", ")}}}(c("../tree")),function(a){a.Variable=function(a,b){this.name=a,this.index=b},a.Variable.prototype={eval:function(b){var c,d,e=this.name;e.indexOf("@@")==0&&(e="@"+(new a.Variable(e.slice(1))).eval(b).value);if(c=a.find(b.frames,function(a){if(d=a.variable(e))return d.value.eval(b)}))return c;throw{message:"variable "+e+" is undefined",index:this.index}}}}(c("../tree")),c("./tree").find=function(a,b){for(var c=0,d;c<a.length;c++)if(d=b.call(a,a[c]))return d;return null},c("./tree").jsify=function(a){return Array.isArray(a.value)&&a.value.length>1?"["+a.value.map(function(a){return a.toCSS(!1)}).join(", ")+"]":a.toCSS(!1)};var f=location.protocol==="file:"||location.protocol==="chrome:"||location.protocol==="chrome-extension:"||location.protocol==="resource:";d.env=d.env||(location.hostname=="127.0.0.1"||location.hostname=="0.0.0.0"||location.hostname=="localhost"||location.port.length>0||f?"development":"production"),d.async=!1,d.poll=d.poll||(f?1e3:1500),d.watch=function(){return this.watchMode=!0},d.unwatch=function(){return this.watchMode=!1},d.env==="development"?(d.optimization=0,/!watch/.test(location.hash)&&d.watch(),d.watchTimer=setInterval(function(){d.watchMode&&m(function(a,b,c){a&&p(a.toCSS(),b,c.lastModified)})},d.poll)):d.optimization=3;var g;try{g=typeof a.localStorage=="undefined"?null:a.localStorage}catch(h){g=null}var i=document.getElementsByTagName("link"),j=/^text\/(x-)?less$/;d.sheets=[];for(var k=0;k<i.length;k++)(i[k].rel==="stylesheet/less"||i[k].rel.match(/stylesheet/)&&i[k].type.match(j))&&d.sheets.push(i[k]);d.refresh=function(a){var b,c;b=c=new Date,m(function(a,d,e){e.local?t("loading "+d.href+" from cache."):(t("parsed "+d.href+" successfully."),p(a.toCSS(),d,e.lastModified)),t("css for "+d.href+" generated in "+(new Date-c)+"ms"),e.remaining===0&&t("css generated in "+(new Date-b)+"ms"),c=new Date},a),l()},d.refreshStyles=l,d.refresh(d.env==="development")})(window); diff --git a/syte/static/css/styles.min.css b/syte/static/css/styles.min.css new file mode 100644 index 0000000..81eefdc --- /dev/null +++ b/syte/static/css/styles.min.css @@ -0,0 +1 @@ +html,body{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;font-family:inherit}strong,b{font-weight:bold}em,i{font-style:italic}body{line-height:1}table{border-collapse:collapse;border-spacing:0}q:before,q:after,blockquote:before,blockquote:after{content:""}html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0;-ms-interpolation-mode:bicubic}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.fade{-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear;opacity:0}.fade.in{opacity:1}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;color:#404040}::selection,::-moz-selection{background:#336;color:#fff;text-shadow:none}h1,.h1{font-size:30px;line-height:35px;font-weight:500}h2,.h2{font-size:24px;line-height:30px;font-weight:500}h3,.h3{font-size:18px;line-height:25px;font-weight:500}h4,.h4{font-size:16px;line-height:20px;font-weight:500}h5,.h5{font-size:16px;line-height:20px;font-weight:500}h6,.h6{font-size:14px;line-height:20px;font-weight:500}ul{margin:0 0 15px 15px}ol{margin:0 0 15px 20px}li{margin-bottom:5px}li ul,li ol{margin-bottom:0}dl{margin-bottom:10px}dl dt{font-weight:bold}dl dd{margin:0 0 5px 10px}p{line-height:25px;margin-top:20px;margin-bottom:20px}a{color:#000;text-decoration:none;border-bottom:1px solid #404040}a:hover{color:#336;border-bottom:1px solid #336}a.no-border{border-bottom:0}blockquote{margin-top:20px 0;padding:0 0 0 20px;border-left:5px solid #336}blockquote p:first-child{margin-top:5px}.descr{display:block;font-size:12px;line-height:20px;color:#7f7e7e}.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#e6e6e6;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#fff),to(#e6e6e6));background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);border:1px solid #ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;border-bottom-color:#b3b3b3;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.modal-backdrop{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;background:#000}.modal-backdrop.fade,.modal-backdrop.fade-large{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear;filter:alpha(opacity=0);-khtml-opacity:0;-moz-opacity:0;opacity:0}.modal-backdrop,.modal-backdrop.fade.in{filter:alpha(opacity=50);-khtml-opacity:.5;-moz-opacity:.5;opacity:.5}.modal{position:fixed;top:0;left:240px;z-index:1050;overflow:auto;width:400px;height:100%;background-color:#fff;border-right:1px solid #404040;-webkit-box-shadow:0 0 7px rgba(0,0,0,0.5);-moz-box-shadow:0 0 7px rgba(0,0,0,0.5);box-shadow:0 0 7px rgba(0,0,0,0.5)}.modal.fade-large{width:700px;-webkit-transition:left .4s ease-out;-moz-transition:left .4s ease-out;-o-transition:left .4s ease-out;transition:left .4s ease-out;left:-1100px}.modal.fade{-webkit-transition:left .4s ease-out;-moz-transition:left .4s ease-out;-o-transition:left .4s ease-out;transition:left .4s ease-out;left:-700px}.modal.fade.in,.modal.fade-large.in{left:240px}.close{float:right;font-size:26px;line-height:30px;font-weight:bold;color:#000;background-color:#fff;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);-khtml-opacity:.2;-moz-opacity:.2;opacity:.2}.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4}.profile{background:#e9e9e9 url('/static/imgs/b.png')}.profile-info{position:relative;padding:15px;background:#fff}.profile-info .close{line-height:20px}.profile-info .btn{position:absolute;right:17px;bottom:20px}.profile-avatar{display:inline-block;float:left;border-bottom:0}.profile-avatar img{height:52px;width:52px;border:2px solid #336}.profile-avatar:hover{border-bottom:0}.profile-name{display:block;float:left;margin:0 0 10px 10px}.profile-name h2{font-size:22px;line-height:30px}.profile-name h2 a{font-weight:500;color:#404040;border-bottom:0}.profile-name h3{font-size:16px;line-height:20px}.profile-name h3 a{color:#777;border-bottom:0}.profile-name h2 a:hover,.profile-name h3 a:hover{color:#336}.profile-description{clear:left;font-size:13px;line-height:18px;font-style:italic;color:#777;margin:0;padding:5px 0}.profile-description a{border-bottom:0}.profile-location-url{clear:left;margin:0}.profile-location-url span{display:inline-block;font-size:13px;line-height:18px;color:#777}.profile-location-url .divider{padding:0 4px;color:#ccc}.profile-location-url a{border-bottom:0}.profile-stats{margin:0;list-style:none;overflow:hidden;border-top:1px solid #c2c2c2;border-bottom:1px solid #c2c2c2;background:#fff}.profile-stats li{display:inline}.profile-stats li a,.profile-stats li span{float:left;padding:7px 15px;color:#777;font-size:10px;line-height:16px;text-transform:uppercase;border-left:1px solid #c2c2c2;border-bottom:0}.profile-stats li strong{display:block;color:#404040;font-size:14px}.profile-stats li a:hover,.profile-stats li a:hover strong{color:#336}.profile-stats li:first-child span{border-left:0}.profile-info-footer{padding:10px 15px;border-bottom:1px solid #c2c2c2}.profile-watchers{display:inline-block;background:url('/static/imgs/ico-watchers.png') no-repeat;margin-left:10px;padding-left:20px}.profile-forks{display:inline-block;background:url('/static/imgs/ico-forks.png') no-repeat;margin-left:10px;padding-left:20px}.profile-comments{display:inline-block;background:url('/static/imgs/ico-comments.png') no-repeat;margin-left:10px;padding-left:20px}.profile-likes{display:inline-block;background:url('/static/imgs/ico-likes.png') no-repeat;margin-left:10px;padding-left:20px}.profile.twitter{overflow:hidden}.profile-tweets{list-style:none;margin:0;background:#fff}.profile-tweets li{padding:10px 15px;border-bottom:1px solid #c2c2c2}.tweet-title{border-bottom:0;position:relative;padding-left:45px}.tweet-title img{position:absolute;left:0;width:32px;height:32px;border:2px solid #336}.tweet-title span{color:#777;font-size:13px;padding-left:3px}.tweet-title:hover{border-bottom:0}.tweet-text{color:#777;margin:0;padding:3px 0;font-size:13px;line-height:18px;margin-left:45px}.tweet-text a{border-bottom:0}.tweet-date{margin:0;font-size:13px;line-height:18px;margin-left:45px;color:#999}.profile-repos{list-style:none;margin:0;background:#fff}.profile-repos li{padding:10px 15px;border-bottom:1px solid #c2c2c2}.profile-repo-name{border-bottom:0;font-weight:500}.profile-repo-name:hover{border-bottom:0}.profile-repo-text{color:#777;margin:0;padding:5px 0;font-size:13px;line-height:18px}.profile-repo-stats{list-style:none;margin:0;font-size:13px;line-height:18px}.profile-repo-stats li{padding:0;border:0;display:inline-block;zoom:1;*display:inline}.profile-repo-stats a{border-bottom:0}.profile-repo-stats a:hover{border-bottom:0;color:#336}.profile-shots{list-style:none;margin:0;padding:15px 0}.profile-shots>li{float:left;width:300px;padding:10px;margin:0 0 20px 20px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25);box-shadow:0 1px 3px rgba(0,0,0,0.25)}.profile-shot{border-bottom:0;display:block}.profile-shot img{width:300px;height:225px}.profile-shot:hover{border-bottom:0}.profile-shot-title{display:block;padding:5px 0;font-size:13px;line-height:18px;color:#4b4b4b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-shot-stats{list-style:none;margin:0;font-size:13px;line-height:18px}.profile-shot-stats li{margin-bottom:0;padding:0;border:0;display:inline-block;zoom:1;*display:inline}.profile-shot-stats li:first-child a,.profile-shot-stats li:first-child span{margin-left:0}.profile-shot-stats a{border-bottom:0}.profile-shot-stats a:hover{border-bottom:0;color:#336}.profile-shot-date{float:right;color:#999}.instagram .profile-shot img{width:300px;height:300px}code,pre{padding:0 3px 2px;color:#333;font-family:"Monaco",Courier New,monospace;font-size:12px;font-weight:normal;line-height:20px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#336;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8px;margin:0 0 9px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}blockquote code{padding:0;color:inherit;background-color:transparent;border:0}.com{color:#93a1a1}.lit{color:#195f91}.pun,.opn,.clo{color:#93a1a1}.fun{color:#dc322f}.str,.atv{color:#da3f47}.kwd,.linenums .tag{color:#1e347b}.typ,.atn,.dec,.var{color:teal}.pln{color:#48484c}.prettyprint{padding:8px;background-color:#f7f7f9;border:1px solid #e1e1e8}.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;-moz-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0}ol.linenums{margin:0 0 0 33px}ol.linenums li{padding-left:12px;color:#bebec5;line-height:18px;text-shadow:0 1px 0 #fff}.main-header{position:fixed;z-index:1100;top:0;left:0;width:240px;height:100%;min-height:700px;float:left;border-right:1px solid #c2c2c2;background:#e9e9e9 url('/static/imgs/b.png')}.main-header hgroup .picture a{display:inline-block;height:84px;width:84px;margin:60px 35px 20px 35px;border:3px solid #336;background:#000 0 url('https://twimg0-a.akamaihd.net/profile_images/1149409097/20101018060848_samrat94_6HR8FZ5V2JQDPU34ENIKCWBL0STAMO91XG7Y.jpg');-webkit-box-shadow:0 1px 1px #f9f9f9,inset 0 0 6px #000;-moz-box-shadow:0 1px 1px #f9f9f9,inset 0 0 6px #000;box-shadow:0 1px 1px #f9f9f9,inset 0 0 6px #000}.main-header hgroup h1{font-size:24px;margin:0 35px;text-shadow:0 1px 1px #f9f9f9}.main-header hgroup h2{margin:10px 35px;font-size:14px;font-weight:normal;line-height:25px;color:#4b4b4b}.main-header nav{margin:65px 0}.main-header nav ul{border-top:1px solid #d2d2d2;list-style:none;margin-left:0}.main-header nav li{margin-bottom:0}.main-header nav a,.main-header nav a:hover{border-bottom:1px solid #d2d2d2}.main-header nav a{position:relative;padding:15px 30px;color:#404040;display:block;font-weight:500;text-shadow:0 1px 1px #f9f9f9}.main-header nav a:hover{color:#fff;background:#336;border-right:0;text-shadow:none}.main-header nav .sel{border-right:6px solid #336}.main-header .spinner{position:absolute!important;right:30px;top:23px}.main-header .fork-me{position:absolute;left:30px;bottom:20px;font-size:13px;color:#4b4b4b;border-bottom:0}.main-header .fork-me:hover{color:#336}.main-section{position:relative;overflow:hidden;margin-left:241px;padding:35px}.main-section h3.date{width:100%;display:block;margin-left:-34px;padding:20px 35px 30px 75px;border-bottom:1px solid #c2c2c2;border-top:1px solid #c2c2c2;font-size:16px;font-weight:bold;background-color:#fff;background-color:rgba(255,255,255,0.8);color:#336}a.button_accent{margin:40px 50px;padding:10px 20px;display:inline-block;border:3px solid #336;border-radius:70px;-moz-border-radius:70px;-webkit-border-radius:70px;text-transform:uppercase;color:#336;font-size:17px;font-weight:400}a.button_accent:link{color:#0e94ec}a.button_accent:hover{color:#fff;background-color:#336;outline:0}a.button_accent:active{color:#fff;background-color:#339;outline:0}.blog-section{padding:0}.blog-section hgroup h2,.blog-section hgroup h1{font-size:30px;line-height:35px;font-weight:500;line-height:40px;margin:50px 0 25px 0}.blog-section hgroup h2 a{border-bottom:0;font-weight:500}.blog-section hgroup h3 a{display:none}.blog-section hgroup h3 a.active{position:fixed;top:0;bottom:auto;margin-top:0}.blog-section article{width:700px;overflow:hidden;line-height:25px;padding:5px 35px 50px 34px}.blog-section article img{padding:2px;border:1px solid #c2c2c2;margin:0 15px 5px 0}.blog-section article a.img-link{border-bottom:0}.blog-section article a.img-link:hover img{border-color:#336}.blog-section footer{padding-top:10px}.blog-section footer h4{float:left;text-transform:uppercase;font-size:13px;line-height:28px;padding:0 15px 0 0}.tags{list-style:none;margin:0}.tags li{display:inline-block;zoom:1;*display:inline}.tags a{padding:3px 10px;font-size:13px;text-shadow:0 1px 1px #f9f9f9;background:#e9e9e9;border:1px solid #c2c2c2}.tags a:hover{background:#336;color:#fff;text-shadow:none;border:1px solid #336}.mobile-nav{display:none}.load-more-button{display:inline-block;margin:0 20px 50px 20px;padding:10px 30px;background-color:#336;color:#fff}.load-more-button:hover{border:1px solid #336;background:#fff;color:#336}.load-more-button .spinner{left:140px;top:-8px}@media(max-width:767px){header.main-header hgroup .picture a,header.main-header nav{margin-top:30px}.blog-section article{width:400px}.blog-section article img{max-width:400px}}@media(max-width:600px){body{background:#e9e9e9 url('/static/imgs/b.png');overflow-x:hidden}.mobile-nav{display:block;position:fixed;top:0;height:45px;width:100%;z-index:3000;background:#e9e9e9 url('/static/imgs/b.png');border-top:3px solid #336;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25);box-shadow:0 1px 3px rgba(0,0,0,0.25)}.mobile-nav h3{float:right;padding:10px}.mobile-nav h3 a{border-bottom:0;font-weight:bold;color:#404040;text-shadow:0 1px 1px #f9f9f9}.mobile-nav .nav-btn{float:left;padding:7px 10px 4px;margin:8px 10px;background-color:#333;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#404040),to(#333));background-image:-moz-linear-gradient(top,#404040,#333);background-image:-ms-linear-gradient(top,#404040,#333);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#404040),color-stop(100%,#333));background-image:-webkit-linear-gradient(top,#404040,#333);background-image:-o-linear-gradient(top,#404040,#333);background-image:linear-gradient(top,#404040,#333);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#404040',endColorstr='#333333',GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px #f9f9f9;-moz-box-shadow:0 1px 1px #f9f9f9;box-shadow:0 1px 1px #f9f9f9}.mobile-nav .nav-btn-bar{display:block;width:18px;height:2px;margin-bottom:3px;background-color:#f9f9f9;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}header.main-header{position:absolute}header.main-header hgroup .picture a{margin:60px 0 10px 10px}header.main-header hgroup h1{font-size:18px;margin:0 10px}header.main-header hgroup h2{margin:0 10px 10px 10px}header.main-header nav{margin:20px 0}header.main-header .fork-me{display:none}.main-section{margin:45px 0 0 0;position:relative;min-height:500px;left:0;z-index:2000;background-color:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25);box-shadow:0 1px 3px rgba(0,0,0,0.25);-webkit-transition:left .3s ease-out;-moz-transition:left .3s ease-out;-o-transition:left .3s ease-out;transition:left .3s ease-out}.main-section.nav-opened{left:240px}.blog-section hgroup h2,.blog-section hgroup h1{font-size:24px;line-height:30px;font-weight:500;margin:10px 0 5px 0}.blog-section hgroup h3 a{position:static;margin:0;padding:5px 0;border:0;font-weight:300}.blog-section article{width:95%;padding:10px 10px 30px;border-bottom:1px solid #c2c2c2}.blog-section article img{max-width:300px}.blog-section .loading{padding:15px}.modal-backdrop{z-index:3500}.modal{position:absolute;width:100%;height:1500px;z-index:4000;top:45px}.modal.fade-large{width:100%}.modal.fade.in,.modal.fade-large.in{left:0}.profile.twitter,.profile.github,.profile.dribbble,.profile.instagram{overflow:scroll}.profile-info .btn{position:static;margin-top:5px}.shots-likes-received,.shots-likes-given{display:none}.profile-shots{padding:10px 0}.profile-shots>li{margin:0 0 20px 10px;width:280px}.profile-shots img{width:280px;height:210px}.instagram .profile-shot img{width:280px;height:280px}}
\ No newline at end of file diff --git a/syte/static/imgs/b.png b/syte/static/imgs/b.png Binary files differnew file mode 100644 index 0000000..a39c4b0 --- /dev/null +++ b/syte/static/imgs/b.png diff --git a/syte/static/imgs/favicon.ico b/syte/static/imgs/favicon.ico Binary files differnew file mode 100644 index 0000000..5b8796d --- /dev/null +++ b/syte/static/imgs/favicon.ico diff --git a/syte/static/imgs/ico-comments.png b/syte/static/imgs/ico-comments.png Binary files differnew file mode 100644 index 0000000..67b8e05 --- /dev/null +++ b/syte/static/imgs/ico-comments.png diff --git a/syte/static/imgs/ico-forks.png b/syte/static/imgs/ico-forks.png Binary files differnew file mode 100644 index 0000000..e0dfb1b --- /dev/null +++ b/syte/static/imgs/ico-forks.png diff --git a/syte/static/imgs/ico-likes.png b/syte/static/imgs/ico-likes.png Binary files differnew file mode 100644 index 0000000..755053e --- /dev/null +++ b/syte/static/imgs/ico-likes.png diff --git a/syte/static/imgs/ico-watchers.png b/syte/static/imgs/ico-watchers.png Binary files differnew file mode 100644 index 0000000..2420f28 --- /dev/null +++ b/syte/static/imgs/ico-watchers.png diff --git a/syte/static/imgs/pic.png b/syte/static/imgs/pic.png Binary files differnew file mode 100644 index 0000000..c723ab5 --- /dev/null +++ b/syte/static/imgs/pic.png diff --git a/syte/static/imgs/twitter_pic.jpg b/syte/static/imgs/twitter_pic.jpg Binary files differnew file mode 100644 index 0000000..6f48afd --- /dev/null +++ b/syte/static/imgs/twitter_pic.jpg diff --git a/syte/static/js/components/base.js b/syte/static/js/components/base.js new file mode 100644 index 0000000..0d60276 --- /dev/null +++ b/syte/static/js/components/base.js @@ -0,0 +1,32 @@ +//Global configs and functions shared between js + +function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); +} + +require.config({ + baseUrl: "/static/", + paths: { + "text": "js/libs/text", + "json": "js/libs/json" + }, + waitSeconds: 15 +}); + +var spin_opts = { + lines: 9, + length: 5, + width: 2, + radius: 4, + rotate: 9, + color: '#4c4c4c', + speed: 1.5, + trail: 40, + shadow: false, + hwaccel: false, + className: 'spinner', + zIndex: 2e9 +}; + + + diff --git a/syte/static/js/components/blog-posts.js b/syte/static/js/components/blog-posts.js new file mode 100644 index 0000000..27f8ab5 --- /dev/null +++ b/syte/static/js/components/blog-posts.js @@ -0,0 +1,143 @@ + +function fetchBlogPosts(post, tag) { + var blog_fetch_url = '/blog.json'; + + if (post) + blog_fetch_url = '/post/' + post; + else if (tag) + blog_fetch_url = '/tags/' + tag; + + $.getJSON(blog_fetch_url, function(blog_posts) { + require(["text!templates/blog-post-text.html", + "text!templates/blog-post-photo.html", + "text!templates/blog-post-link.html", + "text!templates/blog-post-video.html", + "text!templates/blog-post-audio.html", + "text!templates/blog-post-quote.html"], + + function(text_post_template, photo_post_template, + link_post_template, video_post_template, audio_post_template, + quote_post_template) { + + var text_template = Handlebars.compile(text_post_template); + var photo_template = Handlebars.compile(photo_post_template); + var link_template = Handlebars.compile(link_post_template); + var video_template = Handlebars.compile(video_post_template); + var audio_template = Handlebars.compile(audio_post_template); + var quote_template = Handlebars.compile(quote_post_template); + + $('.loading').remove(); + $.each(blog_posts.response.posts, function(i, p) { + p.formated_date = moment(p.date).format('MMMM DD, YYYY') + + if (p.type == 'text') + $('#blog-posts').append(text_template(p)); + else if (p.type == 'photo') + $('#blog-posts').append(photo_template(p)); + else if (p.type == 'link') + $('#blog-posts').append(link_template(p)); + else if (p.type == 'video') + $('#blog-posts').append(video_template(p)); + else if (p.type == 'audio') + $('#blog-posts').append(audio_template(p)); + else if (p.type == 'quote') + $('#blog-posts').append(quote_template(p)); + + }); + + setupLinks(); + adjustBlogHeaders(); + prettyPrint(); + setTimeout(setupBlogHeaderScroll, 1000); + adjustSelection('home-link'); + }); + }); +} + +function adjustBlogHeaders() { + if(isMobileView) + return; + + $('.blog-section article hgroup').each(function(i, e) { + $(e).find('h3 a').css({ + 'margin-top': '-' + ($(e).height() + 100) + 'px' + }).addClass('adjusted'); + }); +} + +function setupBlogHeaderScroll() { + + if(isMobileView) + return; + + var previousTarget, + activeTarget, + $window = $(window), + offsets = [], + targets = [], + $posts = $('.blog-section article hgroup h3 a').each(function() { + if (this.hash) { + targets.push(this.hash); + offsets.push($(this.hash).offset().top); + } + }); + + function processScroll(e) { + var scrollTop = $window.scrollTop(), + i = offsets.length; + + for (i; i--;) { + if (activeTarget != targets[i] && scrollTop > offsets[i] && (!offsets[i + 1] || scrollTop < offsets[i + 1])) { + + var hgroup = $(activeTarget).find("hgroup"); + var margintop = ''; + if (hgroup.length) { + margintop = '-' + ($(hgroup[0]).height() + 100) + 'px'; + } + + //set current target to be absolute + $("h3 a[href=" + activeTarget + "]").removeClass("active").css({ + position: "absolute", + top: "auto", + 'margin-top': margintop + }); + + //set new target to be fixed + activeTarget = targets[i]; + $("h3 a[href=" + activeTarget + "]").attr('style', '').addClass("active"); + } + + if (activeTarget && activeTarget != targets[i] && scrollTop + 50 >= offsets[i] && (!offsets[i + 1] || scrollTop + 50 <= offsets[i + 1])) { + + // if it's close to the new target scroll the current target up + $("h3 a[href=" + activeTarget + "]") + .removeClass("active") + .css({ + position: "absolute", + top: ($(activeTarget).outerHeight(true) + $(activeTarget).offset().top - 50) + "px", + bottom: "auto" + }); + } + + if (activeTarget == targets[i] && scrollTop > offsets[i] - 50 && (!offsets[i + 1] || scrollTop <= offsets[i + 1] - 50)) { + // if the current target is not fixed make it fixed. + if (!$("h3 a[href=" + activeTarget + "]").hasClass("active")) { + $("h3 a[href=" + activeTarget + "]").attr('style', '').addClass("active"); + } + } + } + } + + $posts.click(function(e) { + if (!this.hash) + return; + $('html, body').stop().animate({ + scrollTop: $(this.hash).offset().top + }, 500, 'linear'); + + processScroll(); + e.preventDefault(); + }); + + $window.scroll(processScroll).trigger("scroll"); +} diff --git a/syte/static/js/components/dribbble.js b/syte/static/js/components/dribbble.js new file mode 100644 index 0000000..7c2ed59 --- /dev/null +++ b/syte/static/js/components/dribbble.js @@ -0,0 +1,53 @@ + +function setupDribbble(url, el) { + var href = el.href; + + if ($('#dribbble-profile').length > 0) { + window.location = href; + return; + } + + var params = url.attr('path').split('/').filter(function(w) { + if (w.length) + return true; + return false; + }) + + if (params.length == 1) { + var username = params[0]; + + var spinner = new Spinner(spin_opts).spin(); + $('#dribbble-link').append(spinner.el); + + require(["json!/dribbble/" + username, "text!templates/dribbble-view.html"], + function(dribbble_data, dribbble_view) { + if (dribbble_data.message || dribbble_data.length == 0) { + window.location = href; + return; + } + + var template = Handlebars.compile(dribbble_view); + + var user = dribbble_data.shots[0].player; + user.following_count = numberWithCommas(user.following_count); + user.followers_count = numberWithCommas(user.followers_count); + user.likes_count = numberWithCommas(user.likes_count); + + var template_data = { + "user": user, + "shots": dribbble_data.shots + } + + $(template(template_data)).modal().on('hidden', function () { + $(this).remove(); + adjustSelection('home-link'); + }) + + spinner.stop(); + }); + + return; + } + + window.location = href; +} diff --git a/syte/static/js/components/github.js b/syte/static/js/components/github.js new file mode 100644 index 0000000..7bad5ea --- /dev/null +++ b/syte/static/js/components/github.js @@ -0,0 +1,46 @@ + +function setupGithub(url, el) { + var href = el.href; + + if ($('#github-profile').length > 0) { + window.location = href; + return; + } + + var params = url.attr('path').split('/').filter(function(w) { + if (w.length) + return true; + return false; + }) + + if (params.length == 1) { + var username = params[0]; + + var spinner = new Spinner(spin_opts).spin(); + $('#github-link').append(spinner.el); + + require(["json!/github/" + username, "text!templates/github-view.html"], + function(github_data, github_view) { + if (github_data.error || github_data.length == 0) { + window.location = href; + return; + } + + var template = Handlebars.compile(github_view); + github_data.user.following_count = numberWithCommas(github_data.user.following_count) + github_data.user.followers_count = numberWithCommas(github_data.user.followers_count) + + $(template(github_data)).modal().on('hidden', function () { + $(this).remove(); + adjustSelection('home-link'); + }) + + spinner.stop(); + + }); + + return; + } + + window.location = href; +} diff --git a/syte/static/js/components/instagram.js b/syte/static/js/components/instagram.js new file mode 100644 index 0000000..3c6dc3a --- /dev/null +++ b/syte/static/js/components/instagram.js @@ -0,0 +1,66 @@ + +function setupInstagram(el) { + var href = el.href; + + if($('#instagram-profile').length > 0) { + window.location = href; + return; + } + + var spinner = new Spinner(spin_opts).spin(); + $('#instagram-link').append(spinner.el); + + require(["json!/instagram/", + "text!templates/instagram-view.html", + "text!templates/instagram-view-more.html"], + function(instagram_data, instagram_view, instagram_view_more) { + if (instagram_data.media == 0){ + window.location = href; + return; + } + + var template = Handlebars.compile(instagram_view); + + var user_counts = instagram_data.user['counts']; + user_counts.media = numberWithCommas(user_counts.media); + user_counts.followed_by = numberWithCommas(user_counts.followed_by); + user_counts.follows = numberWithCommas(user_counts.follows); + + $.each(instagram_data.media, function(i, p) { + p.formated_date = moment.unix(parseInt(p.created_time)).fromNow(); + }); + + $(template(instagram_data)).modal().on('hidden', function () { + $(this).remove(); + adjustSelection('home-link'); + }) + + var more_template = Handlebars.compile(instagram_view_more); + + $('#load-more-pics').click(function(e) { + next = $(this).attr('data-control-next'); + + var spinner = new Spinner(spin_opts).spin(); + $('#load-more-pics').append(spinner.el); + + $.getJSON('/instagram/' + next, function(data) { + + $.each(data.media, function(i, p) { + p.formated_date = moment.unix(parseInt(p.created_time)).fromNow(); + }); + + $('.instagram .profile-shots').append(more_template(data)); + + if (data.pagination && data.pagination['next_max_id']) + $('#load-more-pics').attr('data-control-next', data.pagination['next_max_id']); + else + $('#load-more-pics').remove(); + + spinner.stop(); + }); + + }) + + spinner.stop(); + }); +} diff --git a/syte/static/js/components/links.js b/syte/static/js/components/links.js new file mode 100644 index 0000000..0671f6a --- /dev/null +++ b/syte/static/js/components/links.js @@ -0,0 +1,67 @@ + +function setupLinks() { + + $('a').click(function(e) { + e.preventDefault(); + e.stopPropagation(); + + var url = $.url(this.href.replace('/#!', '')); + + if (this.id == 'home-link' && window.location.pathname == '/') { + $('#github-profile').remove(); + $('#dribbble-profile').remove(); + $('#twitter-profile').remove(); + $('#instagram-profile').remove(); + $('.modal-backdrop').remove(); + adjustSelection('home-link'); + } + else if(this.id == 'instagram-link' && instagram_integration_enabled) { + $('#github-profile').remove(); + $('#dribbble-profile').remove(); + $('#twitter-profile').remove(); + $('.modal-backdrop').remove(); + adjustSelection('instagram-link'); + + setupInstagram(this); + } + else if (twitter_integration_enabled && (url.attr('host') == 'twitter.com' || url.attr('host') == 'www.twitter.com')) { + + $('#github-profile').remove(); + $('#dribbble-profile').remove(); + $('#instagram-profile').remove(); + $('.modal-backdrop').remove(); + adjustSelection('twitter-link'); + + setupTwitter(url, this); + } + else if (github_integration_enabled && (url.attr('host') == 'github.com' || url.attr('host') == 'www.github.com')) { + + $('#twitter-profile').remove(); + $('#dribbble-profile').remove(); + $('#instagram-profile').remove(); + $('.modal-backdrop').remove(); + adjustSelection('github-link'); + + setupGithub(url, this); + } + else if (dribbble_integration_enabled && (url.attr('host') == 'dribbble.com' || url.attr('host') == 'www.dribbble.com')) { + + $('#twitter-profile').remove(); + $('#github-profile').remove(); + $('#instagram-profile').remove(); + $('.modal-backdrop').remove(); + adjustSelection('dribbble-link'); + + setupDribbble(url, this); + } + else { + window.location = this.href; + } + }); +} + +function adjustSelection(el) { + $('.main-nav').children('li').removeClass('sel'); + $('#' + el).parent().addClass('sel'); +} + diff --git a/syte/static/js/components/mobile.js b/syte/static/js/components/mobile.js new file mode 100644 index 0000000..4b530b3 --- /dev/null +++ b/syte/static/js/components/mobile.js @@ -0,0 +1,15 @@ + +var isMobileView = false; +var mediaQuery = window.matchMedia("(max-width:600px)"); + +if (mediaQuery.matches) { + isMobileView = true; +} + +$(function() { + $('#mobile-nav-btn').click(function() { + $('.main-section').toggleClass('nav-opened'); + }); +}); + + diff --git a/syte/static/js/components/twitter.js b/syte/static/js/components/twitter.js new file mode 100644 index 0000000..4a8bb30 --- /dev/null +++ b/syte/static/js/components/twitter.js @@ -0,0 +1,82 @@ + +function setupTwitter(url, el) { + var href = el.href; + + if ($('#twitter-profile').length > 0) { + window.location = href; + return; + } + + var params = url.attr('path').split('/').filter(function(w) { + if (w.length) + return true; + return false; + }) + + if (params.length == 1) { + var username = params[0]; + + var spinner = new Spinner(spin_opts).spin(); + $('#twitter-link').append(spinner.el); + + require(["json!/twitter/" + username, "text!templates/twitter-view.html"], + function(twitter_data, twitter_view) { + if (twitter_data.error || twitter_data.length == 0) { + window.location = href; + return; + } + + var template = Handlebars.compile(twitter_view); + + var tweets = []; + $.each(twitter_data, function(i, t) { + if (i > 3) + return; + + //'ddd MMM DD HH:mm:ss ZZ YYYY' + t.formated_date = moment(t.created_at).fromNow(); + t.f_text = twitterLinkify(t.text); + tweets.push(t); + }); + + var user = twitter_data[0].user; + user.statuses_count = numberWithCommas(user.statuses_count); + user.friends_count = numberWithCommas(user.friends_count); + user.followers_count = numberWithCommas(user.followers_count); + user.f_description = twitterLinkify(user.description); + + var template_data = { + "user": user, + "tweets": tweets + } + + $(template(template_data)).modal().on('hidden', function () { + $(this).remove(); + adjustSelection('home-link'); + }) + + spinner.stop(); + }); + + return; + } + + window.location = href; +} + +function twitterLinkify(text) { + text = text.replace(/(https?:\/\/\S+)/gi, function (s) { + return '<a href="' + s + '">' + s + '</a>'; + }); + + text = text.replace(/(^|) @(\w+)/gi, function (s) { + return '<a href="http://twitter.com/' + s + '">' + s + '</a>'; + }); + + text = text.replace(/(^|) #(\w+)/gi, function (s) { + return '<a href="http://search.twitter.com/search?q=' + s.replace(/#/,'%23') + '">' + s + '</a>'; + }); + + return text; +} + diff --git a/syte/static/js/libs/bootstrap-modal.js b/syte/static/js/libs/bootstrap-modal.js new file mode 100755 index 0000000..f6d94f5 --- /dev/null +++ b/syte/static/js/libs/bootstrap-modal.js @@ -0,0 +1,222 @@ +/* ========================================================= + * bootstrap-modal.js v2.0.3 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (content, options) { + this.options = options + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + $('body').addClass('modal-open') + + this.isShown = true + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + //this mobile part is custom, im too lasy to extend this feature for this + if (isMobileView) + that.$element.css('top', (window.pageYOffset + 45) + 'px'); + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element.removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal(that) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop(callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') + .appendTo(document.body) + + if (this.options.backdrop != 'static') { + this.$backdrop.click($.proxy(this.hide, this)) + } + + if (doAnimate) this.$backdrop[0].offsetWidth // force reflow + + this.$backdrop.addClass('in') + + doAnimate ? + this.$backdrop.one($.support.transition.end, callback) : + callback() + + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass('in') + + $.support.transition && this.$element.hasClass('fade')? + this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) : + removeBackdrop.call(this) + + } else if (callback) { + callback() + } + } + + function removeBackdrop() { + this.$backdrop.remove() + this.$backdrop = null + } + + function escape() { + var that = this + if (this.isShown && this.options.keyboard) { + $(document).on('keyup.dismiss.modal', function ( e ) { + e.which == 27 && that.hide() + }) + } else if (!this.isShown) { + $(document).off('keyup.dismiss.modal') + } + } + + + /* MODAL PLUGIN DEFINITION + * ======================= */ + + $.fn.modal = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('modal') + , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option) + if (!data) $this.data('modal', (data = new Modal(this, options))) + if (typeof option == 'string') data[option]() + else if (options.show) data.show() + }) + } + + $.fn.modal.defaults = { + backdrop: true + , keyboard: true + , show: true + } + + $.fn.modal.Constructor = Modal + + + /* MODAL DATA-API + * ============== */ + + $(function () { + $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data()) + + e.preventDefault() + $target.modal(option) + }) + }) + +}(window.jQuery); diff --git a/syte/static/js/libs/handlebars.js b/syte/static/js/libs/handlebars.js new file mode 100644 index 0000000..83119ff --- /dev/null +++ b/syte/static/js/libs/handlebars.js @@ -0,0 +1,1550 @@ +// lib/handlebars/base.js +var Handlebars = {}; + +Handlebars.VERSION = "1.0.beta.6"; + +Handlebars.helpers = {}; +Handlebars.partials = {}; + +Handlebars.registerHelper = function(name, fn, inverse) { + if(inverse) { fn.not = inverse; } + this.helpers[name] = fn; +}; + +Handlebars.registerPartial = function(name, str) { + this.partials[name] = str; +}; + +Handlebars.registerHelper('helperMissing', function(arg) { + if(arguments.length === 2) { + return undefined; + } else { + throw new Error("Could not find property '" + arg + "'"); + } +}); + +var toString = Object.prototype.toString, functionType = "[object Function]"; + +Handlebars.registerHelper('blockHelperMissing', function(context, options) { + var inverse = options.inverse || function() {}, fn = options.fn; + + + var ret = ""; + var type = toString.call(context); + + if(type === functionType) { context = context.call(this); } + + if(context === true) { + return fn(this); + } else if(context === false || context == null) { + return inverse(this); + } else if(type === "[object Array]") { + if(context.length > 0) { + for(var i=0, j=context.length; i<j; i++) { + ret = ret + fn(context[i]); + } + } else { + ret = inverse(this); + } + return ret; + } else { + return fn(context); + } +}); + +Handlebars.registerHelper('each', function(context, options) { + var fn = options.fn, inverse = options.inverse; + var ret = ""; + + if(context && context.length > 0) { + for(var i=0, j=context.length; i<j; i++) { + ret = ret + fn(context[i]); + } + } else { + ret = inverse(this); + } + return ret; +}); + +Handlebars.registerHelper('if', function(context, options) { + var type = toString.call(context); + if(type === functionType) { context = context.call(this); } + + if(!context || Handlebars.Utils.isEmpty(context)) { + return options.inverse(this); + } else { + return options.fn(this); + } +}); + +Handlebars.registerHelper('unless', function(context, options) { + var fn = options.fn, inverse = options.inverse; + options.fn = inverse; + options.inverse = fn; + + return Handlebars.helpers['if'].call(this, context, options); +}); + +Handlebars.registerHelper('with', function(context, options) { + return options.fn(context); +}); + +Handlebars.registerHelper('log', function(context) { + Handlebars.log(context); +}); +; +// lib/handlebars/compiler/parser.js +/* Jison generated parser */ +var handlebars = (function(){ + +var parser = {trace: function trace() { }, +yy: {}, +symbols_: {"error":2,"root":3,"program":4,"EOF":5,"statements":6,"simpleInverse":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"OPEN_PARTIAL":24,"params":25,"hash":26,"param":27,"STRING":28,"INTEGER":29,"BOOLEAN":30,"hashSegments":31,"hashSegment":32,"ID":33,"EQUALS":34,"pathSegments":35,"SEP":36,"$accept":0,"$end":1}, +terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"}, +productions_: [0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]], +performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { + +var $0 = $$.length - 1; +switch (yystate) { +case 1: return $$[$0-1] +break; +case 2: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]) +break; +case 3: this.$ = new yy.ProgramNode($$[$0]) +break; +case 4: this.$ = new yy.ProgramNode([]) +break; +case 5: this.$ = [$$[$0]] +break; +case 6: $$[$0-1].push($$[$0]); this.$ = $$[$0-1] +break; +case 7: this.$ = new yy.InverseNode($$[$0-2], $$[$0-1], $$[$0]) +break; +case 8: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0]) +break; +case 9: this.$ = $$[$0] +break; +case 10: this.$ = $$[$0] +break; +case 11: this.$ = new yy.ContentNode($$[$0]) +break; +case 12: this.$ = new yy.CommentNode($$[$0]) +break; +case 13: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]) +break; +case 14: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]) +break; +case 15: this.$ = $$[$0-1] +break; +case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]) +break; +case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true) +break; +case 18: this.$ = new yy.PartialNode($$[$0-1]) +break; +case 19: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]) +break; +case 20: +break; +case 21: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]] +break; +case 22: this.$ = [[$$[$0-1]].concat($$[$0]), null] +break; +case 23: this.$ = [[$$[$0-1]], $$[$0]] +break; +case 24: this.$ = [[$$[$0]], null] +break; +case 25: $$[$0-1].push($$[$0]); this.$ = $$[$0-1]; +break; +case 26: this.$ = [$$[$0]] +break; +case 27: this.$ = $$[$0] +break; +case 28: this.$ = new yy.StringNode($$[$0]) +break; +case 29: this.$ = new yy.IntegerNode($$[$0]) +break; +case 30: this.$ = new yy.BooleanNode($$[$0]) +break; +case 31: this.$ = new yy.HashNode($$[$0]) +break; +case 32: $$[$0-1].push($$[$0]); this.$ = $$[$0-1] +break; +case 33: this.$ = [$$[$0]] +break; +case 34: this.$ = [$$[$0-2], $$[$0]] +break; +case 35: this.$ = [$$[$0-2], new yy.StringNode($$[$0])] +break; +case 36: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])] +break; +case 37: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])] +break; +case 38: this.$ = new yy.IdNode($$[$0]) +break; +case 39: $$[$0-2].push($$[$0]); this.$ = $$[$0-2]; +break; +case 40: this.$ = [$$[$0]] +break; +} +}, +table: [{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}], +defaultActions: {16:[2,1],37:[2,23],53:[2,21]}, +parseError: function parseError(str, hash) { + throw new Error(str); +}, +parse: function parse(input) { + var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + this.lexer.setInput(input); + this.lexer.yy = this.yy; + this.yy.lexer = this.lexer; + if (typeof this.lexer.yylloc == "undefined") + this.lexer.yylloc = {}; + var yyloc = this.lexer.yylloc; + lstack.push(yyloc); + if (typeof this.yy.parseError === "function") + this.parseError = this.yy.parseError; + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = self.lexer.lex() || 1; + if (typeof token !== "number") { + token = self.symbols_[token] || token; + } + return token; + } + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol == null) + symbol = lex(); + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + if (!recovering) { + expected = []; + for (p in table[state]) + if (this.terminals_[p] && p > 2) { + expected.push("'" + this.terminals_[p] + "'"); + } + var errStr = ""; + if (this.lexer.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); + } + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(this.lexer.yytext); + lstack.push(this.lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = this.lexer.yyleng; + yytext = this.lexer.yytext; + yylineno = this.lexer.yylineno; + yyloc = this.lexer.yylloc; + if (recovering > 0) + recovering--; + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; + r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +} +};/* Jison generated lexer */ +var lexer = (function(){ + +var lexer = ({EOF:1, +parseError:function parseError(str, hash) { + if (this.yy.parseError) { + this.yy.parseError(str, hash); + } else { + throw new Error(str); + } + }, +setInput:function (input) { + this._input = input; + this._more = this._less = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; + return this; + }, +input:function () { + var ch = this._input[0]; + this.yytext+=ch; + this.yyleng++; + this.match+=ch; + this.matched+=ch; + var lines = ch.match(/\n/); + if (lines) this.yylineno++; + this._input = this._input.slice(1); + return ch; + }, +unput:function (ch) { + this._input = ch + this._input; + return this; + }, +more:function () { + this._more = true; + return this; + }, +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); + }, +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c+"^"; + }, +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) this.done = true; + + var token, + match, + col, + lines; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i=0;i < rules.length; i++) { + match = this._input.match(this.rules[rules[i]]); + if (match) { + lines = match[0].match(/\n.*/g); + if (lines) this.yylineno += lines.length; + this.yylloc = {first_line: this.yylloc.last_line, + last_line: this.yylineno+1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length} + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + this._more = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]); + if (token) return token; + else return; + } + } + if (this._input === "") { + return this.EOF; + } else { + this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), + {text: "", token: null, line: this.yylineno}); + } + }, +lex:function lex() { + var r = this.next(); + if (typeof r !== 'undefined') { + return r; + } else { + return this.lex(); + } + }, +begin:function begin(condition) { + this.conditionStack.push(condition); + }, +popState:function popState() { + return this.conditionStack.pop(); + }, +_currentRules:function _currentRules() { + return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; + }, +topState:function () { + return this.conditionStack[this.conditionStack.length-2]; + }, +pushState:function begin(condition) { + this.begin(condition); + }}); +lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { + +var YYSTATE=YY_START +switch($avoiding_name_collisions) { +case 0: + if(yy_.yytext.slice(-1) !== "\\") this.begin("mu"); + if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu"); + if(yy_.yytext) return 14; + +break; +case 1: return 14; +break; +case 2: this.popState(); return 14; +break; +case 3: return 24; +break; +case 4: return 16; +break; +case 5: return 20; +break; +case 6: return 19; +break; +case 7: return 19; +break; +case 8: return 23; +break; +case 9: return 23; +break; +case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; +break; +case 11: return 22; +break; +case 12: return 34; +break; +case 13: return 33; +break; +case 14: return 33; +break; +case 15: return 36; +break; +case 16: /*ignore whitespace*/ +break; +case 17: this.popState(); return 18; +break; +case 18: this.popState(); return 18; +break; +case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 28; +break; +case 20: return 30; +break; +case 21: return 30; +break; +case 22: return 29; +break; +case 23: return 33; +break; +case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33; +break; +case 25: return 'INVALID'; +break; +case 26: return 5; +break; +} +}; +lexer.rules = [/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/]; +lexer.conditions = {"mu":{"rules":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"INITIAL":{"rules":[0,1,26],"inclusive":true}};return lexer;})() +parser.lexer = lexer; +return parser; +})(); +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = handlebars; +exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); } +exports.main = function commonjsMain(args) { + if (!args[1]) + throw new Error('Usage: '+args[0]+' FILE'); + if (typeof process !== 'undefined') { + var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); + } else { + var cwd = require("file").path(require("file").cwd()); + var source = cwd.join(args[1]).read({charset: "utf-8"}); + } + return exports.parser.parse(source); +} +if (typeof module !== 'undefined' && require.main === module) { + exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); +} +}; +; +// lib/handlebars/compiler/base.js +Handlebars.Parser = handlebars; + +Handlebars.parse = function(string) { + Handlebars.Parser.yy = Handlebars.AST; + return Handlebars.Parser.parse(string); +}; + +Handlebars.print = function(ast) { + return new Handlebars.PrintVisitor().accept(ast); +}; + +Handlebars.logger = { + DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3, + + // override in the host environment + log: function(level, str) {} +}; + +Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); }; +; +// lib/handlebars/compiler/ast.js +(function() { + + Handlebars.AST = {}; + + Handlebars.AST.ProgramNode = function(statements, inverse) { + this.type = "program"; + this.statements = statements; + if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); } + }; + + Handlebars.AST.MustacheNode = function(params, hash, unescaped) { + this.type = "mustache"; + this.id = params[0]; + this.params = params.slice(1); + this.hash = hash; + this.escaped = !unescaped; + }; + + Handlebars.AST.PartialNode = function(id, context) { + this.type = "partial"; + + // TODO: disallow complex IDs + + this.id = id; + this.context = context; + }; + + var verifyMatch = function(open, close) { + if(open.original !== close.original) { + throw new Handlebars.Exception(open.original + " doesn't match " + close.original); + } + }; + + Handlebars.AST.BlockNode = function(mustache, program, close) { + verifyMatch(mustache.id, close); + this.type = "block"; + this.mustache = mustache; + this.program = program; + }; + + Handlebars.AST.InverseNode = function(mustache, program, close) { + verifyMatch(mustache.id, close); + this.type = "inverse"; + this.mustache = mustache; + this.program = program; + }; + + Handlebars.AST.ContentNode = function(string) { + this.type = "content"; + this.string = string; + }; + + Handlebars.AST.HashNode = function(pairs) { + this.type = "hash"; + this.pairs = pairs; + }; + + Handlebars.AST.IdNode = function(parts) { + this.type = "ID"; + this.original = parts.join("."); + + var dig = [], depth = 0; + + for(var i=0,l=parts.length; i<l; i++) { + var part = parts[i]; + + if(part === "..") { depth++; } + else if(part === "." || part === "this") { this.isScoped = true; } + else { dig.push(part); } + } + + this.parts = dig; + this.string = dig.join('.'); + this.depth = depth; + this.isSimple = (dig.length === 1) && (depth === 0); + }; + + Handlebars.AST.StringNode = function(string) { + this.type = "STRING"; + this.string = string; + }; + + Handlebars.AST.IntegerNode = function(integer) { + this.type = "INTEGER"; + this.integer = integer; + }; + + Handlebars.AST.BooleanNode = function(bool) { + this.type = "BOOLEAN"; + this.bool = bool; + }; + + Handlebars.AST.CommentNode = function(comment) { + this.type = "comment"; + this.comment = comment; + }; + +})();; +// lib/handlebars/utils.js +Handlebars.Exception = function(message) { + var tmp = Error.prototype.constructor.apply(this, arguments); + + for (var p in tmp) { + if (tmp.hasOwnProperty(p)) { this[p] = tmp[p]; } + } + + this.message = tmp.message; +}; +Handlebars.Exception.prototype = new Error; + +// Build out our basic SafeString type +Handlebars.SafeString = function(string) { + this.string = string; +}; +Handlebars.SafeString.prototype.toString = function() { + return this.string.toString(); +}; + +(function() { + var escape = { + "<": "<", + ">": ">", + '"': """, + "'": "'", + "`": "`" + }; + + var badChars = /&(?!\w+;)|[<>"'`]/g; + var possible = /[&<>"'`]/; + + var escapeChar = function(chr) { + return escape[chr] || "&"; + }; + + Handlebars.Utils = { + escapeExpression: function(string) { + // don't escape SafeStrings, since they're already safe + if (string instanceof Handlebars.SafeString) { + return string.toString(); + } else if (string == null || string === false) { + return ""; + } + + if(!possible.test(string)) { return string; } + return string.replace(badChars, escapeChar); + }, + + isEmpty: function(value) { + if (typeof value === "undefined") { + return true; + } else if (value === null) { + return true; + } else if (value === false) { + return true; + } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) { + return true; + } else { + return false; + } + } + }; +})();; +// lib/handlebars/compiler/compiler.js +Handlebars.Compiler = function() {}; +Handlebars.JavaScriptCompiler = function() {}; + +(function(Compiler, JavaScriptCompiler) { + Compiler.OPCODE_MAP = { + appendContent: 1, + getContext: 2, + lookupWithHelpers: 3, + lookup: 4, + append: 5, + invokeMustache: 6, + appendEscaped: 7, + pushString: 8, + truthyOrFallback: 9, + functionOrFallback: 10, + invokeProgram: 11, + invokePartial: 12, + push: 13, + assignToHash: 15, + pushStringParam: 16 + }; + + Compiler.MULTI_PARAM_OPCODES = { + appendContent: 1, + getContext: 1, + lookupWithHelpers: 2, + lookup: 1, + invokeMustache: 3, + pushString: 1, + truthyOrFallback: 1, + functionOrFallback: 1, + invokeProgram: 3, + invokePartial: 1, + push: 1, + assignToHash: 1, + pushStringParam: 1 + }; + + Compiler.DISASSEMBLE_MAP = {}; + + for(var prop in Compiler.OPCODE_MAP) { + var value = Compiler.OPCODE_MAP[prop]; + Compiler.DISASSEMBLE_MAP[value] = prop; + } + + Compiler.multiParamSize = function(code) { + return Compiler.MULTI_PARAM_OPCODES[Compiler.DISASSEMBLE_MAP[code]]; + }; + + Compiler.prototype = { + compiler: Compiler, + + disassemble: function() { + var opcodes = this.opcodes, opcode, nextCode; + var out = [], str, name, value; + + for(var i=0, l=opcodes.length; i<l; i++) { + opcode = opcodes[i]; + + if(opcode === 'DECLARE') { + name = opcodes[++i]; + value = opcodes[++i]; + out.push("DECLARE " + name + " = " + value); + } else { + str = Compiler.DISASSEMBLE_MAP[opcode]; + + var extraParams = Compiler.multiParamSize(opcode); + var codes = []; + + for(var j=0; j<extraParams; j++) { + nextCode = opcodes[++i]; + + if(typeof nextCode === "string") { + nextCode = "\"" + nextCode.replace("\n", "\\n") + "\""; + } + + codes.push(nextCode); + } + + str = str + " " + codes.join(" "); + + out.push(str); + } + } + + return out.join("\n"); + }, + + guid: 0, + + compile: function(program, options) { + this.children = []; + this.depths = {list: []}; + this.options = options; + + // These changes will propagate to the other compiler components + var knownHelpers = this.options.knownHelpers; + this.options.knownHelpers = { + 'helperMissing': true, + 'blockHelperMissing': true, + 'each': true, + 'if': true, + 'unless': true, + 'with': true, + 'log': true + }; + if (knownHelpers) { + for (var name in knownHelpers) { + this.options.knownHelpers[name] = knownHelpers[name]; + } + } + + return this.program(program); + }, + + accept: function(node) { + return this[node.type](node); + }, + + program: function(program) { + var statements = program.statements, statement; + this.opcodes = []; + + for(var i=0, l=statements.length; i<l; i++) { + statement = statements[i]; + this[statement.type](statement); + } + this.isSimple = l === 1; + + this.depths.list = this.depths.list.sort(function(a, b) { + return a - b; + }); + + return this; + }, + + compileProgram: function(program) { + var result = new this.compiler().compile(program, this.options); + var guid = this.guid++; + + this.usePartial = this.usePartial || result.usePartial; + + this.children[guid] = result; + + for(var i=0, l=result.depths.list.length; i<l; i++) { + depth = result.depths.list[i]; + + if(depth < 2) { continue; } + else { this.addDepth(depth - 1); } + } + + return guid; + }, + + block: function(block) { + var mustache = block.mustache; + var depth, child, inverse, inverseGuid; + + var params = this.setupStackForMustache(mustache); + + var programGuid = this.compileProgram(block.program); + + if(block.program.inverse) { + inverseGuid = this.compileProgram(block.program.inverse); + this.declare('inverse', inverseGuid); + } + + this.opcode('invokeProgram', programGuid, params.length, !!mustache.hash); + this.declare('inverse', null); + this.opcode('append'); + }, + + inverse: function(block) { + var params = this.setupStackForMustache(block.mustache); + + var programGuid = this.compileProgram(block.program); + + this.declare('inverse', programGuid); + + this.opcode('invokeProgram', null, params.length, !!block.mustache.hash); + this.declare('inverse', null); + this.opcode('append'); + }, + + hash: function(hash) { + var pairs = hash.pairs, pair, val; + + this.opcode('push', '{}'); + + for(var i=0, l=pairs.length; i<l; i++) { + pair = pairs[i]; + val = pair[1]; + + this.accept(val); + this.opcode('assignToHash', pair[0]); + } + }, + + partial: function(partial) { + var id = partial.id; + this.usePartial = true; + + if(partial.context) { + this.ID(partial.context); + } else { + this.opcode('push', 'depth0'); + } + + this.opcode('invokePartial', id.original); + this.opcode('append'); + }, + + content: function(content) { + this.opcode('appendContent', content.string); + }, + + mustache: function(mustache) { + var params = this.setupStackForMustache(mustache); + + this.opcode('invokeMustache', params.length, mustache.id.original, !!mustache.hash); + + if(mustache.escaped && !this.options.noEscape) { + this.opcode('appendEscaped'); + } else { + this.opcode('append'); + } + }, + + ID: function(id) { + this.addDepth(id.depth); + + this.opcode('getContext', id.depth); + + this.opcode('lookupWithHelpers', id.parts[0] || null, id.isScoped || false); + + for(var i=1, l=id.parts.length; i<l; i++) { + this.opcode('lookup', id.parts[i]); + } + }, + + STRING: function(string) { + this.opcode('pushString', string.string); + }, + + INTEGER: function(integer) { + this.opcode('push', integer.integer); + }, + + BOOLEAN: function(bool) { + this.opcode('push', bool.bool); + }, + + comment: function() {}, + + // HELPERS + pushParams: function(params) { + var i = params.length, param; + + while(i--) { + param = params[i]; + + if(this.options.stringParams) { + if(param.depth) { + this.addDepth(param.depth); + } + + this.opcode('getContext', param.depth || 0); + this.opcode('pushStringParam', param.string); + } else { + this[param.type](param); + } + } + }, + + opcode: function(name, val1, val2, val3) { + this.opcodes.push(Compiler.OPCODE_MAP[name]); + if(val1 !== undefined) { this.opcodes.push(val1); } + if(val2 !== undefined) { this.opcodes.push(val2); } + if(val3 !== undefined) { this.opcodes.push(val3); } + }, + + declare: function(name, value) { + this.opcodes.push('DECLARE'); + this.opcodes.push(name); + this.opcodes.push(value); + }, + + addDepth: function(depth) { + if(depth === 0) { return; } + + if(!this.depths[depth]) { + this.depths[depth] = true; + this.depths.list.push(depth); + } + }, + + setupStackForMustache: function(mustache) { + var params = mustache.params; + + this.pushParams(params); + + if(mustache.hash) { + this.hash(mustache.hash); + } + + this.ID(mustache.id); + + return params; + } + }; + + JavaScriptCompiler.prototype = { + // PUBLIC API: You can override these methods in a subclass to provide + // alternative compiled forms for name lookup and buffering semantics + nameLookup: function(parent, name, type) { + if (/^[0-9]+$/.test(name)) { + return parent + "[" + name + "]"; + } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) { + return parent + "." + name; + } + else { + return parent + "['" + name + "']"; + } + }, + + appendToBuffer: function(string) { + if (this.environment.isSimple) { + return "return " + string + ";"; + } else { + return "buffer += " + string + ";"; + } + }, + + initializeBuffer: function() { + return this.quotedString(""); + }, + + namespace: "Handlebars", + // END PUBLIC API + + compile: function(environment, options, context, asObject) { + this.environment = environment; + this.options = options || {}; + + this.name = this.environment.name; + this.isChild = !!context; + this.context = context || { + programs: [], + aliases: { self: 'this' }, + registers: {list: []} + }; + + this.preamble(); + + this.stackSlot = 0; + this.stackVars = []; + + this.compileChildren(environment, options); + + var opcodes = environment.opcodes, opcode; + + this.i = 0; + + for(l=opcodes.length; this.i<l; this.i++) { + opcode = this.nextOpcode(0); + + if(opcode[0] === 'DECLARE') { + this.i = this.i + 2; + this[opcode[1]] = opcode[2]; + } else { + this.i = this.i + opcode[1].length; + this[opcode[0]].apply(this, opcode[1]); + } + } + + return this.createFunctionContext(asObject); + }, + + nextOpcode: function(n) { + var opcodes = this.environment.opcodes, opcode = opcodes[this.i + n], name, val; + var extraParams, codes; + + if(opcode === 'DECLARE') { + name = opcodes[this.i + 1]; + val = opcodes[this.i + 2]; + return ['DECLARE', name, val]; + } else { + name = Compiler.DISASSEMBLE_MAP[opcode]; + + extraParams = Compiler.multiParamSize(opcode); + codes = []; + + for(var j=0; j<extraParams; j++) { + codes.push(opcodes[this.i + j + 1 + n]); + } + + return [name, codes]; + } + }, + + eat: function(opcode) { + this.i = this.i + opcode.length; + }, + + preamble: function() { + var out = []; + + // this register will disambiguate helper lookup from finding a function in + // a context. This is necessary for mustache compatibility, which requires + // that context functions in blocks are evaluated by blockHelperMissing, and + // then proceed as if the resulting value was provided to blockHelperMissing. + this.useRegister('foundHelper'); + + if (!this.isChild) { + var namespace = this.namespace; + var copies = "helpers = helpers || " + namespace + ".helpers;"; + if(this.environment.usePartial) { copies = copies + " partials = partials || " + namespace + ".partials;"; } + out.push(copies); + } else { + out.push(''); + } + + if (!this.environment.isSimple) { + out.push(", buffer = " + this.initializeBuffer()); + } else { + out.push(""); + } + + // track the last context pushed into place to allow skipping the + // getContext opcode when it would be a noop + this.lastContext = 0; + this.source = out; + }, + + createFunctionContext: function(asObject) { + var locals = this.stackVars; + if (!this.isChild) { + locals = locals.concat(this.context.registers.list); + } + + if(locals.length > 0) { + this.source[1] = this.source[1] + ", " + locals.join(", "); + } + + // Generate minimizer alias mappings + if (!this.isChild) { + var aliases = [] + for (var alias in this.context.aliases) { + this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias]; + } + } + + if (this.source[1]) { + this.source[1] = "var " + this.source[1].substring(2) + ";"; + } + + // Merge children + if (!this.isChild) { + this.source[1] += '\n' + this.context.programs.join('\n') + '\n'; + } + + if (!this.environment.isSimple) { + this.source.push("return buffer;"); + } + + var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"]; + + for(var i=0, l=this.environment.depths.list.length; i<l; i++) { + params.push("depth" + this.environment.depths.list[i]); + } + + if (asObject) { + params.push(this.source.join("\n ")); + + return Function.apply(this, params); + } else { + var functionSource = 'function ' + (this.name || '') + '(' + params.join(',') + ') {\n ' + this.source.join("\n ") + '}'; + Handlebars.log(Handlebars.logger.DEBUG, functionSource + "\n\n"); + return functionSource; + } + }, + + appendContent: function(content) { + this.source.push(this.appendToBuffer(this.quotedString(content))); + }, + + append: function() { + var local = this.popStack(); + this.source.push("if(" + local + " || " + local + " === 0) { " + this.appendToBuffer(local) + " }"); + if (this.environment.isSimple) { + this.source.push("else { " + this.appendToBuffer("''") + " }"); + } + }, + + appendEscaped: function() { + var opcode = this.nextOpcode(1), extra = ""; + this.context.aliases.escapeExpression = 'this.escapeExpression'; + + if(opcode[0] === 'appendContent') { + extra = " + " + this.quotedString(opcode[1][0]); + this.eat(opcode); + } + + this.source.push(this.appendToBuffer("escapeExpression(" + this.popStack() + ")" + extra)); + }, + + getContext: function(depth) { + if(this.lastContext !== depth) { + this.lastContext = depth; + } + }, + + lookupWithHelpers: function(name, isScoped) { + if(name) { + var topStack = this.nextStack(); + + this.usingKnownHelper = false; + + var toPush; + if (!isScoped && this.options.knownHelpers[name]) { + toPush = topStack + " = " + this.nameLookup('helpers', name, 'helper'); + this.usingKnownHelper = true; + } else if (isScoped || this.options.knownHelpersOnly) { + toPush = topStack + " = " + this.nameLookup('depth' + this.lastContext, name, 'context'); + } else { + this.register('foundHelper', this.nameLookup('helpers', name, 'helper')); + toPush = topStack + " = foundHelper || " + this.nameLookup('depth' + this.lastContext, name, 'context'); + } + + toPush += ';'; + this.source.push(toPush); + } else { + this.pushStack('depth' + this.lastContext); + } + }, + + lookup: function(name) { + var topStack = this.topStack(); + this.source.push(topStack + " = (" + topStack + " === null || " + topStack + " === undefined || " + topStack + " === false ? " + + topStack + " : " + this.nameLookup(topStack, name, 'context') + ");"); + }, + + pushStringParam: function(string) { + this.pushStack('depth' + this.lastContext); + this.pushString(string); + }, + + pushString: function(string) { + this.pushStack(this.quotedString(string)); + }, + + push: function(name) { + this.pushStack(name); + }, + + invokeMustache: function(paramSize, original, hasHash) { + this.populateParams(paramSize, this.quotedString(original), "{}", null, hasHash, function(nextStack, helperMissingString, id) { + if (!this.usingKnownHelper) { + this.context.aliases.helperMissing = 'helpers.helperMissing'; + this.context.aliases.undef = 'void 0'; + this.source.push("else if(" + id + "=== undef) { " + nextStack + " = helperMissing.call(" + helperMissingString + "); }"); + if (nextStack !== id) { + this.source.push("else { " + nextStack + " = " + id + "; }"); + } + } + }); + }, + + invokeProgram: function(guid, paramSize, hasHash) { + var inverse = this.programExpression(this.inverse); + var mainProgram = this.programExpression(guid); + + this.populateParams(paramSize, null, mainProgram, inverse, hasHash, function(nextStack, helperMissingString, id) { + if (!this.usingKnownHelper) { + this.context.aliases.blockHelperMissing = 'helpers.blockHelperMissing'; + this.source.push("else { " + nextStack + " = blockHelperMissing.call(" + helperMissingString + "); }"); + } + }); + }, + + populateParams: function(paramSize, helperId, program, inverse, hasHash, fn) { + var needsRegister = hasHash || this.options.stringParams || inverse || this.options.data; + var id = this.popStack(), nextStack; + var params = [], param, stringParam, stringOptions; + + if (needsRegister) { + this.register('tmp1', program); + stringOptions = 'tmp1'; + } else { + stringOptions = '{ hash: {} }'; + } + + if (needsRegister) { + var hash = (hasHash ? this.popStack() : '{}'); + this.source.push('tmp1.hash = ' + hash + ';'); + } + + if(this.options.stringParams) { + this.source.push('tmp1.contexts = [];'); + } + + for(var i=0; i<paramSize; i++) { + param = this.popStack(); + params.push(param); + + if(this.options.stringParams) { + this.source.push('tmp1.contexts.push(' + this.popStack() + ');'); + } + } + + if(inverse) { + this.source.push('tmp1.fn = tmp1;'); + this.source.push('tmp1.inverse = ' + inverse + ';'); + } + + if(this.options.data) { + this.source.push('tmp1.data = data;'); + } + + params.push(stringOptions); + + this.populateCall(params, id, helperId || id, fn, program !== '{}'); + }, + + populateCall: function(params, id, helperId, fn, program) { + var paramString = ["depth0"].concat(params).join(", "); + var helperMissingString = ["depth0"].concat(helperId).concat(params).join(", "); + + var nextStack = this.nextStack(); + + if (this.usingKnownHelper) { + this.source.push(nextStack + " = " + id + ".call(" + paramString + ");"); + } else { + this.context.aliases.functionType = '"function"'; + var condition = program ? "foundHelper && " : "" + this.source.push("if(" + condition + "typeof " + id + " === functionType) { " + nextStack + " = " + id + ".call(" + paramString + "); }"); + } + fn.call(this, nextStack, helperMissingString, id); + this.usingKnownHelper = false; + }, + + invokePartial: function(context) { + params = [this.nameLookup('partials', context, 'partial'), "'" + context + "'", this.popStack(), "helpers", "partials"]; + + if (this.options.data) { + params.push("data"); + } + + this.pushStack("self.invokePartial(" + params.join(", ") + ");"); + }, + + assignToHash: function(key) { + var value = this.popStack(); + var hash = this.topStack(); + + this.source.push(hash + "['" + key + "'] = " + value + ";"); + }, + + // HELPERS + + compiler: JavaScriptCompiler, + + compileChildren: function(environment, options) { + var children = environment.children, child, compiler; + + for(var i=0, l=children.length; i<l; i++) { + child = children[i]; + compiler = new this.compiler(); + + this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children + var index = this.context.programs.length; + child.index = index; + child.name = 'program' + index; + this.context.programs[index] = compiler.compile(child, options, this.context); + } + }, + + programExpression: function(guid) { + if(guid == null) { return "self.noop"; } + + var child = this.environment.children[guid], + depths = child.depths.list; + var programParams = [child.index, child.name, "data"]; + + for(var i=0, l = depths.length; i<l; i++) { + depth = depths[i]; + + if(depth === 1) { programParams.push("depth0"); } + else { programParams.push("depth" + (depth - 1)); } + } + + if(depths.length === 0) { + return "self.program(" + programParams.join(", ") + ")"; + } else { + programParams.shift(); + return "self.programWithDepth(" + programParams.join(", ") + ")"; + } + }, + + register: function(name, val) { + this.useRegister(name); + this.source.push(name + " = " + val + ";"); + }, + + useRegister: function(name) { + if(!this.context.registers[name]) { + this.context.registers[name] = true; + this.context.registers.list.push(name); + } + }, + + pushStack: function(item) { + this.source.push(this.nextStack() + " = " + item + ";"); + return "stack" + this.stackSlot; + }, + + nextStack: function() { + this.stackSlot++; + if(this.stackSlot > this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } + return "stack" + this.stackSlot; + }, + + popStack: function() { + return "stack" + this.stackSlot--; + }, + + topStack: function() { + return "stack" + this.stackSlot; + }, + + quotedString: function(str) { + return '"' + str + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + '"'; + } + }; + + var reservedWords = ( + "break else new var" + + " case finally return void" + + " catch for switch while" + + " continue function this with" + + " default if throw" + + " delete in try" + + " do instanceof typeof" + + " abstract enum int short" + + " boolean export interface static" + + " byte extends long super" + + " char final native synchronized" + + " class float package throws" + + " const goto private transient" + + " debugger implements protected volatile" + + " double import public let yield" + ).split(" "); + + var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; + + for(var i=0, l=reservedWords.length; i<l; i++) { + compilerWords[reservedWords[i]] = true; + } + + JavaScriptCompiler.isValidJavaScriptVariableName = function(name) { + if(!JavaScriptCompiler.RESERVED_WORDS[name] && /^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(name)) { + return true; + } + return false; + } + +})(Handlebars.Compiler, Handlebars.JavaScriptCompiler); + +Handlebars.precompile = function(string, options) { + options = options || {}; + + var ast = Handlebars.parse(string); + var environment = new Handlebars.Compiler().compile(ast, options); + return new Handlebars.JavaScriptCompiler().compile(environment, options); +}; + +Handlebars.compile = function(string, options) { + options = options || {}; + + var compiled; + function compile() { + var ast = Handlebars.parse(string); + var environment = new Handlebars.Compiler().compile(ast, options); + var templateSpec = new Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true); + return Handlebars.template(templateSpec); + } + + // Template is only compiled on first use and cached after that point. + return function(context, options) { + if (!compiled) { + compiled = compile(); + } + return compiled.call(this, context, options); + }; +}; +; +// lib/handlebars/runtime.js +Handlebars.VM = { + template: function(templateSpec) { + // Just add water + var container = { + escapeExpression: Handlebars.Utils.escapeExpression, + invokePartial: Handlebars.VM.invokePartial, + programs: [], + program: function(i, fn, data) { + var programWrapper = this.programs[i]; + if(data) { + return Handlebars.VM.program(fn, data); + } else if(programWrapper) { + return programWrapper; + } else { + programWrapper = this.programs[i] = Handlebars.VM.program(fn); + return programWrapper; + } + }, + programWithDepth: Handlebars.VM.programWithDepth, + noop: Handlebars.VM.noop + }; + + return function(context, options) { + options = options || {}; + return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); + }; + }, + + programWithDepth: function(fn, data, $depth) { + var args = Array.prototype.slice.call(arguments, 2); + + return function(context, options) { + options = options || {}; + + return fn.apply(this, [context, options.data || data].concat(args)); + }; + }, + program: function(fn, data) { + return function(context, options) { + options = options || {}; + + return fn(context, options.data || data); + }; + }, + noop: function() { return ""; }, + invokePartial: function(partial, name, context, helpers, partials, data) { + options = { helpers: helpers, partials: partials, data: data }; + + if(partial === undefined) { + throw new Handlebars.Exception("The partial " + name + " could not be found"); + } else if(partial instanceof Function) { + return partial(context, options); + } else if (!Handlebars.compile) { + throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode"); + } else { + partials[name] = Handlebars.compile(partial); + return partials[name](context, options); + } + } +}; + +Handlebars.template = Handlebars.VM.template; +; diff --git a/syte/static/js/libs/jquery.url.js b/syte/static/js/libs/jquery.url.js new file mode 100755 index 0000000..6618526 --- /dev/null +++ b/syte/static/js/libs/jquery.url.js @@ -0,0 +1,162 @@ +/* + * JQuery URL Parser plugin + * Developed and maintanined by Mark Perkins, mark@allmarkedup.com + * Source repository: https://github.com/allmarkedup/jQuery-URL-Parser + * Licensed under an MIT-style license. See https://github.com/allmarkedup/jQuery-URL-Parser/blob/master/LICENSE for details. + */ + +;(function($, undefined) { + + var tag2attr = { + a : 'href', + img : 'src', + form : 'action', + base : 'href', + script : 'src', + iframe : 'src', + link : 'href' + }, + + key = ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","fragment"], // keys available to query + + aliases = { "anchor" : "fragment" }, // aliases for backwards compatability + + parser = { + strict : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs + loose : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs + }, + + querystring_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g, // supports both ampersand and semicolon-delimted query string key/value pairs + + fragment_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g; // supports both ampersand and semicolon-delimted fragment key/value pairs + + function parseUri( url, strictMode ) + { + var str = decodeURI( url ), + res = parser[ strictMode || false ? "strict" : "loose" ].exec( str ), + uri = { attr : {}, param : {}, seg : {} }, + i = 14; + + while ( i-- ) + { + uri.attr[ key[i] ] = res[i] || ""; + } + + // build query and fragment parameters + + uri.param['query'] = {}; + uri.param['fragment'] = {}; + + uri.attr['query'].replace( querystring_parser, function ( $0, $1, $2 ){ + if ($1) + { + uri.param['query'][$1] = $2; + } + }); + + uri.attr['fragment'].replace( fragment_parser, function ( $0, $1, $2 ){ + if ($1) + { + uri.param['fragment'][$1] = $2; + } + }); + + // split path and fragement into segments + + uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/'); + + uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/'); + + // compile a 'base' domain attribute + + uri.attr['base'] = uri.attr.host ? uri.attr.protocol+"://"+uri.attr.host + (uri.attr.port ? ":"+uri.attr.port : '') : ''; + + return uri; + }; + + function getAttrName( elm ) + { + var tn = elm.tagName; + if ( tn !== undefined ) return tag2attr[tn.toLowerCase()]; + return tn; + } + + $.fn.url = function( strictMode ) + { + var url = ''; + + if ( this.length ) + { + url = $(this).attr( getAttrName(this[0]) ) || ''; + } + + return $.url( url, strictMode ); + }; + + $.url = function( url, strictMode ) + { + if ( arguments.length === 1 && url === true ) + { + strictMode = true; + url = undefined; + } + + strictMode = strictMode || false; + url = url || window.location.toString(); + + return { + + data : parseUri(url, strictMode), + + // get various attributes from the URI + attr : function( attr ) + { + attr = aliases[attr] || attr; + return attr !== undefined ? this.data.attr[attr] : this.data.attr; + }, + + // return query string parameters + param : function( param ) + { + return param !== undefined ? this.data.param.query[param] : this.data.param.query; + }, + + // return fragment parameters + fparam : function( param ) + { + return param !== undefined ? this.data.param.fragment[param] : this.data.param.fragment; + }, + + // return path segments + segment : function( seg ) + { + if ( seg === undefined ) + { + return this.data.seg.path; + } + else + { + seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.path[seg]; + } + }, + + // return fragment segments + fsegment : function( seg ) + { + if ( seg === undefined ) + { + return this.data.seg.fragment; + } + else + { + seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.fragment[seg]; + } + } + + }; + + }; + +})(jQuery);
\ No newline at end of file diff --git a/syte/static/js/libs/json.js b/syte/static/js/libs/json.js new file mode 100644 index 0000000..fbf3fbc --- /dev/null +++ b/syte/static/js/libs/json.js @@ -0,0 +1,42 @@ +/*! + * RequireJS plugin for loading JSON files + * - depends on Text plugin and it was HEAVILY "inspired" by it as well. + * + * IMPORTANT: it only works on r.js optimizer after version 0.26+ 20011/09/27 + * + * @author Miller Medeiros + * @version 0.0.1 (2011/06/10) + * Released under the WTFPL <http://sam.zoy.org/wtfpl/> + */ +define(['text'], function(text){ + + var jsonParse = (typeof JSON !== 'undefined' && typeof JSON.parse === 'function')? JSON.parse : function(val){ + return eval('('+ val +')'); //quick and dirty + }, + buildMap = {}; + + //API + return { + + load : function(name, req, onLoad, config) { + text.get(req.toUrl(name), function(data){ + if (config.isBuild) { + buildMap[name] = data; + onLoad(data); + } else { + onLoad(jsonParse(data)); + } + }); + }, + + //write method based on RequireJS official text plugin by James Burke + //https://github.com/jrburke/requirejs/blob/master/text.js + write : function(pluginName, moduleName, write){ + if(moduleName in buildMap){ + var content = buildMap[moduleName]; + write('define("'+ pluginName +'!'+ moduleName +'", function(){ return '+ content +';});\n'); + } + } + + }; +});
\ No newline at end of file diff --git a/syte/static/js/libs/moment.min.js b/syte/static/js/libs/moment.min.js new file mode 100644 index 0000000..c1b132a --- /dev/null +++ b/syte/static/js/libs/moment.min.js @@ -0,0 +1,6 @@ +// moment.js +// version : 1.6.2 +// author : Tim Wood +// license : MIT +// momentjs.com +(function(a,b){function A(a,b){this._d=a,this._isUTC=!!b}function B(a){return a<0?Math.ceil(a):Math.floor(a)}function C(a){var b=this._data={},c=a.years||a.y||0,d=a.months||a.M||0,e=a.weeks||a.w||0,f=a.days||a.d||0,g=a.hours||a.h||0,h=a.minutes||a.m||0,i=a.seconds||a.s||0,j=a.milliseconds||a.ms||0;this._milliseconds=j+i*1e3+h*6e4+g*36e5,this._days=f+e*7,this._months=d+c*12,b.milliseconds=j%1e3,i+=B(j/1e3),b.seconds=i%60,h+=B(i/60),b.minutes=h%60,g+=B(h/60),b.hours=g%24,f+=B(g/24),f+=e*7,b.days=f%30,d+=B(f/30),b.months=d%12,c+=B(d/12),b.years=c}function D(a,b){var c=a+"";while(c.length<b)c="0"+c;return c}function E(a,b,c){var d=b._milliseconds,e=b._days,f=b._months,g;d&&a._d.setTime(+a+d*c),e&&a.date(a.date()+e*c),f&&(g=a.date(),a.date(1).month(a.month()+f*c).date(Math.min(g,a.daysInMonth())))}function F(a){return Object.prototype.toString.call(a)==="[object Array]"}function G(b){return new a(b[0],b[1]||0,b[2]||1,b[3]||0,b[4]||0,b[5]||0,b[6]||0)}function H(b,d){function q(d){var l,r;switch(d){case"M":return e+1;case"Mo":return e+1+o(e+1);case"MM":return D(e+1,2);case"MMM":return c.monthsShort[e];case"MMMM":return c.months[e];case"D":return f;case"Do":return f+o(f);case"DD":return D(f,2);case"DDD":return l=new a(g,e,f),r=new a(g,0,1),~~((l-r)/864e5+1.5);case"DDDo":return l=q("DDD"),l+o(l);case"DDDD":return D(q("DDD"),3);case"d":return h;case"do":return h+o(h);case"ddd":return c.weekdaysShort[h];case"dddd":return c.weekdays[h];case"w":return l=new a(g,e,f-h+5),r=new a(l.getFullYear(),0,4),~~((l-r)/864e5/7+1.5);case"wo":return l=q("w"),l+o(l);case"ww":return D(q("w"),2);case"YY":return D(g%100,2);case"YYYY":return g;case"a":return p?p(i,j,!1):i>11?"pm":"am";case"A":return p?p(i,j,!0):i>11?"PM":"AM";case"H":return i;case"HH":return D(i,2);case"h":return i%12||12;case"hh":return D(i%12||12,2);case"m":return j;case"mm":return D(j,2);case"s":return k;case"ss":return D(k,2);case"S":return~~(m/100);case"SS":return D(~~(m/10),2);case"SSS":return D(m,3);case"Z":return(n<0?"-":"+")+D(~~(Math.abs(n)/60),2)+":"+D(~~(Math.abs(n)%60),2);case"ZZ":return(n<0?"-":"+")+D(~~(10*Math.abs(n)/6),4);case"L":case"LL":case"LLL":case"LLLL":case"LT":return H(b,c.longDateFormat[d]);default:return d.replace(/(^\[)|(\\)|\]$/g,"")}}var e=b.month(),f=b.date(),g=b.year(),h=b.day(),i=b.hours(),j=b.minutes(),k=b.seconds(),m=b.milliseconds(),n=-b.zone(),o=c.ordinal,p=c.meridiem;return d.replace(l,q)}function I(a){switch(a){case"DDDD":return p;case"YYYY":return q;case"S":case"SS":case"SSS":case"DDD":return o;case"MMM":case"MMMM":case"ddd":case"dddd":case"a":case"A":return r;case"Z":case"ZZ":return s;case"T":return t;case"MM":case"DD":case"dd":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return n;default:return new RegExp(a.replace("\\",""))}}function J(a,b,d,e){var f;switch(a){case"M":case"MM":d[1]=b==null?0:~~b-1;break;case"MMM":case"MMMM":for(f=0;f<12;f++)if(c.monthsParse[f].test(b)){d[1]=f;break}break;case"D":case"DD":case"DDD":case"DDDD":d[2]=~~b;break;case"YY":b=~~b,d[0]=b+(b>70?1900:2e3);break;case"YYYY":d[0]=~~Math.abs(b);break;case"a":case"A":e.isPm=(b+"").toLowerCase()==="pm";break;case"H":case"HH":case"h":case"hh":d[3]=~~b;break;case"m":case"mm":d[4]=~~b;break;case"s":case"ss":d[5]=~~b;break;case"S":case"SS":case"SSS":d[6]=~~(("0."+b)*1e3);break;case"Z":case"ZZ":e.isUTC=!0,f=(b+"").match(x),f&&f[1]&&(e.tzh=~~f[1]),f&&f[2]&&(e.tzm=~~f[2]),f&&f[0]==="+"&&(e.tzh=-e.tzh,e.tzm=-e.tzm)}}function K(b,c){var d=[0,0,1,0,0,0,0],e={tzh:0,tzm:0},f=c.match(l),g,h;for(g=0;g<f.length;g++)h=(I(f[g]).exec(b)||[])[0],b=b.replace(I(f[g]),""),J(f[g],h,d,e);return e.isPm&&d[3]<12&&(d[3]+=12),e.isPm===!1&&d[3]===12&&(d[3]=0),d[3]+=e.tzh,d[4]+=e.tzm,e.isUTC?new a(a.UTC.apply({},d)):G(d)}function L(a,b){var c=Math.min(a.length,b.length),d=Math.abs(a.length-b.length),e=0,f;for(f=0;f<c;f++)~~a[f]!==~~b[f]&&e++;return e+d}function M(a,b){var c,d=a.match(m)||[],e,f=99,g,h,i;for(g=0;g<b.length;g++)h=K(a,b[g]),e=H(new A(h),b[g]).match(m)||[],i=L(d,e),i<f&&(f=i,c=h);return c}function N(b){var c="YYYY-MM-DDT",d;if(u.exec(b)){for(d=0;d<4;d++)if(w[d][1].exec(b)){c+=w[d][0];break}return s.exec(b)?K(b,c+" Z"):K(b,c)}return new a(b)}function O(a,b,d,e){var f=c.relativeTime[a];return typeof f=="function"?f(b||1,!!d,a,e):f.replace(/%d/i,b||1)}function P(a,b){var c=e(Math.abs(a)/1e3),d=e(c/60),f=e(d/60),g=e(f/24),h=e(g/365),i=c<45&&["s",c]||d===1&&["m"]||d<45&&["mm",d]||f===1&&["h"]||f<22&&["hh",f]||g===1&&["d"]||g<=25&&["dd",g]||g<=45&&["M"]||g<345&&["MM",e(g/30)]||h===1&&["y"]||["yy",h];return i[2]=b,i[3]=a>0,O.apply({},i)}function Q(a,b){c.fn[a]=function(a){var c=this._isUTC?"UTC":"";return a!=null?(this._d["set"+c+b](a),this):this._d["get"+c+b]()}}function R(a){c.duration.fn[a]=function(){return this._data[a]}}function S(a,b){c.duration.fn["as"+a]=function(){return+this/b}}var c,d="1.6.2",e=Math.round,f,g={},h="en",i=typeof module!="undefined",j="months|monthsShort|monthsParse|weekdays|weekdaysShort|longDateFormat|calendar|relativeTime|ordinal|meridiem".split("|"),k=/^\/?Date\((\-?\d+)/i,l=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?|LT|LL?L?L?)/g,m=/([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,n=/\d\d?/,o=/\d{1,3}/,p=/\d{3}/,q=/\d{4}/,r=/[0-9a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+/i,s=/Z|[\+\-]\d\d:?\d\d/i,t=/T/i,u=/^\s*\d{4}-\d\d-\d\d(T(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,v="YYYY-MM-DDTHH:mm:ssZ",w=[["HH:mm:ss.S",/T\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/T\d\d:\d\d:\d\d/],["HH:mm",/T\d\d:\d\d/],["HH",/T\d\d/]],x=/([\+\-]|\d\d)/gi,y="Month|Date|Hours|Minutes|Seconds|Milliseconds".split("|"),z={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6};c=function(d,e){if(d===null||d==="")return null;var f,g,h;return c.isMoment(d)?(f=new a(+d._d),h=d._isUTC):e?F(e)?f=M(d,e):f=K(d,e):(g=k.exec(d),f=d===b?new a:g?new a(+g[1]):d instanceof a?d:F(d)?G(d):typeof d=="string"?N(d):new a(d)),new A(f,h)},c.utc=function(b,d){return F(b)?new A(new a(a.UTC.apply({},b)),!0):d&&b?c(b+" +0000",d+" Z").utc():c(b&&!s.exec(b)?b+"+0000":b).utc()},c.unix=function(a){return c(a*1e3)},c.duration=function(a,b){var d=c.isDuration(a),e=typeof a=="number",f=d?a._data:e?{}:a;return e&&(b?f[b]=a:f.milliseconds=a),new C(f)},c.humanizeDuration=function(a,b,d){return c.duration(a,b===!0?null:b).humanize(b===!0?!0:d)},c.version=d,c.defaultFormat=v,c.lang=function(a,b){var d,e,f=[];if(!a)return h;if(b){for(d=0;d<12;d++)f[d]=new RegExp("^"+b.months[d]+"|^"+b.monthsShort[d].replace(".",""),"i");b.monthsParse=b.monthsParse||f,g[a]=b}if(g[a]){for(d=0;d<j.length;d++)c[j[d]]=g[a][j[d]]||g.en[j[d]];h=a}else i&&(e=require("./lang/"+a),c.lang(a,e))},c.lang("en",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},meridiem:!1,calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return~~(a%100/10)===1?"th":b===1?"st":b===2?"nd":b===3?"rd":"th"}}),c.isMoment=function(a){return a instanceof A},c.isDuration=function(a){return a instanceof C},c.fn=A.prototype={clone:function(){return c(this)},valueOf:function(){return+this._d},unix:function(){return Math.floor(+this._d/1e3)},toString:function(){return this._d.toString()},toDate:function(){return this._d},utc:function(){return this._isUTC=!0,this},local:function(){return this._isUTC=!1,this},format:function(a){return H(this,a?a:c.defaultFormat)},add:function(a,b){var d=b?c.duration(+b,a):c.duration(a);return E(this,d,1),this},subtract:function(a,b){var d=b?c.duration(+b,a):c.duration(a);return E(this,d,-1),this},diff:function(a,b,d){var f=this._isUTC?c(a).utc():c(a).local(),g=(this.zone()-f.zone())*6e4,h=this._d-f._d-g,i=this.year()-f.year(),j=this.month()-f.month(),k=this.date()-f.date(),l;return b==="months"?l=i*12+j+k/30:b==="years"?l=i+(j+k/30)/12:l=b==="seconds"?h/1e3:b==="minutes"?h/6e4:b==="hours"?h/36e5:b==="days"?h/864e5:b==="weeks"?h/6048e5:h,d?l:e(l)},from:function(a,b){return c.duration(this.diff(a)).humanize(!b)},fromNow:function(a){return this.from(c(),a)},calendar:function(){var a=this.diff(c().sod(),"days",!0),b=c.calendar,d=b.sameElse,e=a<-6?d:a<-1?b.lastWeek:a<0?b.lastDay:a<1?b.sameDay:a<2?b.nextDay:a<7?b.nextWeek:d;return this.format(typeof e=="function"?e.apply(this):e)},isLeapYear:function(){var a=this.year();return a%4===0&&a%100!==0||a%400===0},isDST:function(){return this.zone()<c([this.year()]).zone()||this.zone()<c([this.year(),5]).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return a==null?b:this.add({d:a-b})},sod:function(){return c(this).hours(0).minutes(0).seconds(0).milliseconds(0)},eod:function(){return this.sod().add({d:1,ms:-1})},zone:function(){return this._isUTC?0:this._d.getTimezoneOffset()},daysInMonth:function(){return c(this).month(this.month()+1).date(0).date()}};for(f=0;f<y.length;f++)Q(y[f].toLowerCase(),y[f]);Q("year","FullYear"),c.duration.fn=C.prototype={weeks:function(){return B(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months*2592e6},humanize:function(a){var b=+this,d=c.relativeTime,e=P(b,!a);return a&&(e=(b<=0?d.past:d.future).replace(/%s/i,e)),e}};for(f in z)z.hasOwnProperty(f)&&(S(f,z[f]),R(f.toLowerCase()));S("Weeks",6048e5),i&&(module.exports=c),typeof window!="undefined"&&typeof ender=="undefined"&&(window.moment=c),typeof define=="function"&&define.amd&&define("moment",[],function(){return c})})(Date);
\ No newline at end of file diff --git a/syte/static/js/libs/prettify.js b/syte/static/js/libs/prettify.js new file mode 100644 index 0000000..eef5ad7 --- /dev/null +++ b/syte/static/js/libs/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c< +f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&& +(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r= +{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length, +t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b=== +"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value", +m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m= +a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue= +j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m, +250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit", +PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})(); diff --git a/syte/static/js/libs/require.js b/syte/static/js/libs/require.js new file mode 100644 index 0000000..162cd9a --- /dev/null +++ b/syte/static/js/libs/require.js @@ -0,0 +1,33 @@ +/* + RequireJS 1.0.8 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details +*/ +var requirejs,require,define; +(function(r){function K(a){return O.call(a)==="[object Function]"}function G(a){return O.call(a)==="[object Array]"}function $(a,c,l){for(var j in c)if(!(j in L)&&(!(j in a)||l))a[j]=c[j];return d}function P(a,c,d){a=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+a);if(d)a.originalError=d;return a}function aa(a,c,d){var j,k,t;for(j=0;t=c[j];j++){t=typeof t==="string"?{name:t}:t;k=t.location;if(d&&(!k||k.indexOf("/")!==0&&k.indexOf(":")===-1))k=d+"/"+(k||t.name);a[t.name]={name:t.name,location:k|| +t.name,main:(t.main||"main").replace(fa,"").replace(ba,"")}}}function V(a,c){a.holdReady?a.holdReady(c):c?a.readyWait+=1:a.ready(!0)}function ga(a){function c(b,f){var g,m;if(b&&b.charAt(0)===".")if(f){q.pkgs[f]?f=[f]:(f=f.split("/"),f=f.slice(0,f.length-1));g=b=f.concat(b.split("/"));var a;for(m=0;a=g[m];m++)if(a===".")g.splice(m,1),m-=1;else if(a==="..")if(m===1&&(g[2]===".."||g[0]===".."))break;else m>0&&(g.splice(m-1,2),m-=2);m=q.pkgs[g=b[0]];b=b.join("/");m&&b===g+"/"+m.main&&(b=g)}else b.indexOf("./")=== +0&&(b=b.substring(2));return b}function l(b,f){var g=b?b.indexOf("!"):-1,m=null,a=f?f.name:null,h=b,e,d;g!==-1&&(m=b.substring(0,g),b=b.substring(g+1,b.length));m&&(m=c(m,a));b&&(m?e=(g=n[m])&&g.normalize?g.normalize(b,function(b){return c(b,a)}):c(b,a):(e=c(b,a),d=G[e],d||(d=i.nameToUrl(b,null,f),G[e]=d)));return{prefix:m,name:e,parentMap:f,url:d,originalName:h,fullName:m?m+"!"+(e||""):e}}function j(){var b=!0,f=q.priorityWait,g,a;if(f){for(a=0;g=f[a];a++)if(!s[g]){b=!1;break}b&&delete q.priorityWait}return b} +function k(b,f,g){return function(){var a=ha.call(arguments,0),c;if(g&&K(c=a[a.length-1]))c.__requireJsBuild=!0;a.push(f);return b.apply(null,a)}}function t(b,f,g){f=k(g||i.require,b,f);$(f,{nameToUrl:k(i.nameToUrl,b),toUrl:k(i.toUrl,b),defined:k(i.requireDefined,b),specified:k(i.requireSpecified,b),isBrowser:d.isBrowser});return f}function p(b){var f,g,a,c=b.callback,h=b.map,e=h.fullName,ca=b.deps;a=b.listeners;var j=q.requireExecCb||d.execCb;if(c&&K(c)){if(q.catchError.define)try{g=j(e,b.callback, +ca,n[e])}catch(k){f=k}else g=j(e,b.callback,ca,n[e]);if(e)(c=b.cjsModule)&&c.exports!==r&&c.exports!==n[e]?g=n[e]=b.cjsModule.exports:g===r&&b.usingExports?g=n[e]:(n[e]=g,H[e]&&(T[e]=!0))}else e&&(g=n[e]=c,H[e]&&(T[e]=!0));if(x[b.id])delete x[b.id],b.isDone=!0,i.waitCount-=1,i.waitCount===0&&(J=[]);delete M[e];if(d.onResourceLoad&&!b.placeholder)d.onResourceLoad(i,h,b.depArray);if(f)return g=(e?l(e).url:"")||f.fileName||f.sourceURL,a=f.moduleTree,f=P("defineerror",'Error evaluating module "'+e+'" at location "'+ +g+'":\n'+f+"\nfileName:"+g+"\nlineNumber: "+(f.lineNumber||f.line),f),f.moduleName=e,f.moduleTree=a,d.onError(f);for(f=0;c=a[f];f++)c(g);return r}function u(b,f){return function(g){b.depDone[f]||(b.depDone[f]=!0,b.deps[f]=g,b.depCount-=1,b.depCount||p(b))}}function o(b,f){var g=f.map,a=g.fullName,c=g.name,h=N[b]||(N[b]=n[b]),e;if(!f.loading)f.loading=!0,e=function(b){f.callback=function(){return b};p(f);s[f.id]=!0;A()},e.fromText=function(b,f){var g=Q;s[b]=!1;i.scriptCount+=1;i.fake[b]=!0;g&&(Q=!1); +d.exec(f);g&&(Q=!0);i.completeLoad(b)},a in n?e(n[a]):h.load(c,t(g.parentMap,!0,function(b,a){var c=[],e,m;for(e=0;m=b[e];e++)m=l(m,g.parentMap),b[e]=m.fullName,m.prefix||c.push(b[e]);f.moduleDeps=(f.moduleDeps||[]).concat(c);return i.require(b,a)}),e,q)}function y(b){x[b.id]||(x[b.id]=b,J.push(b),i.waitCount+=1)}function D(b){this.listeners.push(b)}function v(b,f){var g=b.fullName,a=b.prefix,c=a?N[a]||(N[a]=n[a]):null,h,e;g&&(h=M[g]);if(!h&&(e=!0,h={id:(a&&!c?O++ +"__p@:":"")+(g||"__r@"+O++),map:b, +depCount:0,depDone:[],depCallbacks:[],deps:[],listeners:[],add:D},B[h.id]=!0,g&&(!a||N[a])))M[g]=h;a&&!c?(g=l(a),a in n&&!n[a]&&(delete n[a],delete R[g.url]),a=v(g,!0),a.add(function(){var f=l(b.originalName,b.parentMap),f=v(f,!0);h.placeholder=!0;f.add(function(b){h.callback=function(){return b};p(h)})})):e&&f&&(s[h.id]=!1,i.paused.push(h),y(h));return h}function C(b,f,a,c){var b=l(b,c),d=b.name,h=b.fullName,e=v(b),j=e.id,k=e.deps,o;if(h){if(h in n||s[j]===!0||h==="jquery"&&q.jQuery&&q.jQuery!== +a().fn.jquery)return;B[j]=!0;s[j]=!0;h==="jquery"&&a&&W(a())}e.depArray=f;e.callback=a;for(a=0;a<f.length;a++)if(j=f[a])j=l(j,d?b:c),o=j.fullName,f[a]=o,o==="require"?k[a]=t(b):o==="exports"?(k[a]=n[h]={},e.usingExports=!0):o==="module"?e.cjsModule=k[a]={id:d,uri:d?i.nameToUrl(d,null,c):r,exports:n[h]}:o in n&&!(o in x)&&(!(h in H)||h in H&&T[o])?k[a]=n[o]:(h in H&&(H[o]=!0,delete n[o],R[j.url]=!1),e.depCount+=1,e.depCallbacks[a]=u(e,a),v(j,!0).add(e.depCallbacks[a]));e.depCount?y(e):p(e)}function w(b){C.apply(null, +b)}function F(b,f){var a=b.map.fullName,c=b.depArray,d=!0,h,e,i,l;if(b.isDone||!a||!s[a])return l;if(f[a])return b;f[a]=!0;if(c){for(h=0;h<c.length;h++){e=c[h];if(!s[e]&&!ia[e]){d=!1;break}if((i=x[e])&&!i.isDone&&s[e])if(l=F(i,f))break}d||(l=r,delete f[a])}return l}function z(b,a){var g=b.map.fullName,c=b.depArray,d,h,e,i;if(b.isDone||!g||!s[g])return r;if(g){if(a[g])return n[g];a[g]=!0}if(c)for(d=0;d<c.length;d++)if(h=c[d])if((e=l(h).prefix)&&(i=x[e])&&z(i,a),(e=x[h])&&!e.isDone&&s[h])h=z(e,a),b.depCallbacks[d](h); +return n[g]}function E(){var b=q.waitSeconds*1E3,b=b&&i.startTime+b<(new Date).getTime(),a="",c=!1,l=!1,k=[],h,e;if(i.pausedCount>0)return r;if(q.priorityWait)if(j())A();else return r;for(h in s)if(!(h in L)&&(c=!0,!s[h]))if(b)a+=h+" ";else if(l=!0,h.indexOf("!")===-1){k=[];break}else(e=M[h]&&M[h].moduleDeps)&&k.push.apply(k,e);if(!c&&!i.waitCount)return r;if(b&&a)return b=P("timeout","Load timeout for modules: "+a),b.requireType="timeout",b.requireModules=a,b.contextName=i.contextName,d.onError(b); +if(l&&k.length)for(a=0;h=x[k[a]];a++)if(h=F(h,{})){z(h,{});break}if(!b&&(l||i.scriptCount)){if((I||da)&&!X)X=setTimeout(function(){X=0;E()},50);return r}if(i.waitCount){for(a=0;h=J[a];a++)z(h,{});i.paused.length&&A();Y<5&&(Y+=1,E())}Y=0;d.checkReadyState();return r}var i,A,q={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},catchError:{}},S=[],B={require:!0,exports:!0,module:!0},G={},n={},s={},x={},J=[],R={},O=0,M={},N={},H={},T={},Z=0;W=function(b){if(!i.jQuery&&(b=b||(typeof jQuery!=="undefined"?jQuery: +null))&&!(q.jQuery&&b.fn.jquery!==q.jQuery)&&("holdReady"in b||"readyWait"in b))if(i.jQuery=b,w(["jquery",[],function(){return jQuery}]),i.scriptCount)V(b,!0),i.jQueryIncremented=!0};A=function(){var b,a,c,l,k,h;i.takeGlobalQueue();Z+=1;if(i.scriptCount<=0)i.scriptCount=0;for(;S.length;)if(b=S.shift(),b[0]===null)return d.onError(P("mismatch","Mismatched anonymous define() module: "+b[b.length-1]));else w(b);if(!q.priorityWait||j())for(;i.paused.length;){k=i.paused;i.pausedCount+=k.length;i.paused= +[];for(l=0;b=k[l];l++)a=b.map,c=a.url,h=a.fullName,a.prefix?o(a.prefix,b):!R[c]&&!s[h]&&((q.requireLoad||d.load)(i,h,c),c.indexOf("empty:")!==0&&(R[c]=!0));i.startTime=(new Date).getTime();i.pausedCount-=k.length}Z===1&&E();Z-=1;return r};i={contextName:a,config:q,defQueue:S,waiting:x,waitCount:0,specified:B,loaded:s,urlMap:G,urlFetched:R,scriptCount:0,defined:n,paused:[],pausedCount:0,plugins:N,needFullExec:H,fake:{},fullExec:T,managerCallbacks:M,makeModuleMap:l,normalize:c,configure:function(b){var a, +c,d;b.baseUrl&&b.baseUrl.charAt(b.baseUrl.length-1)!=="/"&&(b.baseUrl+="/");a=q.paths;d=q.pkgs;$(q,b,!0);if(b.paths){for(c in b.paths)c in L||(a[c]=b.paths[c]);q.paths=a}if((a=b.packagePaths)||b.packages){if(a)for(c in a)c in L||aa(d,a[c],c);b.packages&&aa(d,b.packages);q.pkgs=d}if(b.priority)c=i.requireWait,i.requireWait=!1,A(),i.require(b.priority),A(),i.requireWait=c,q.priorityWait=b.priority;if(b.deps||b.callback)i.require(b.deps||[],b.callback)},requireDefined:function(b,a){return l(b,a).fullName in +n},requireSpecified:function(b,a){return l(b,a).fullName in B},require:function(b,c,g){if(typeof b==="string"){if(K(c))return d.onError(P("requireargs","Invalid require call"));if(d.get)return d.get(i,b,c);c=l(b,c);b=c.fullName;return!(b in n)?d.onError(P("notloaded","Module name '"+c.fullName+"' has not been loaded yet for context: "+a)):n[b]}(b&&b.length||c)&&C(null,b,c,g);if(!i.requireWait)for(;!i.scriptCount&&i.paused.length;)A();return i.require},takeGlobalQueue:function(){U.length&&(ja.apply(i.defQueue, +[i.defQueue.length-1,0].concat(U)),U=[])},completeLoad:function(b){var a;for(i.takeGlobalQueue();S.length;)if(a=S.shift(),a[0]===null){a[0]=b;break}else if(a[0]===b)break;else w(a),a=null;a?w(a):w([b,[],b==="jquery"&&typeof jQuery!=="undefined"?function(){return jQuery}:null]);d.isAsync&&(i.scriptCount-=1);A();d.isAsync||(i.scriptCount-=1)},toUrl:function(b,a){var c=b.lastIndexOf("."),d=null;c!==-1&&(d=b.substring(c,b.length),b=b.substring(0,c));return i.nameToUrl(b,d,a)},nameToUrl:function(b,a,g){var l, +k,h,e,j=i.config,b=c(b,g&&g.fullName);if(d.jsExtRegExp.test(b))a=b+(a?a:"");else{l=j.paths;k=j.pkgs;g=b.split("/");for(e=g.length;e>0;e--)if(h=g.slice(0,e).join("/"),l[h]){g.splice(0,e,l[h]);break}else if(h=k[h]){b=b===h.name?h.location+"/"+h.main:h.location;g.splice(0,e,b);break}a=g.join("/")+(a||".js");a=(a.charAt(0)==="/"||a.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+a}return j.urlArgs?a+((a.indexOf("?")===-1?"?":"&")+j.urlArgs):a}};i.jQueryCheck=W;i.resume=A;return i}function ka(){var a,c,d;if(C&&C.readyState=== +"interactive")return C;a=document.getElementsByTagName("script");for(c=a.length-1;c>-1&&(d=a[c]);c--)if(d.readyState==="interactive")return C=d;return null}var la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/require\(\s*["']([^'"\s]+)["']\s*\)/g,fa=/^\.\//,ba=/\.js$/,O=Object.prototype.toString,u=Array.prototype,ha=u.slice,ja=u.splice,I=!!(typeof window!=="undefined"&&navigator&&document),da=!I&&typeof importScripts!=="undefined",na=I&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/, +ea=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",L={},D={},U=[],C=null,Y=0,Q=!1,ia={require:!0,module:!0,exports:!0},d,u={},J,y,v,E,o,w,F,B,z,W,X;if(typeof define==="undefined"){if(typeof requirejs!=="undefined")if(K(requirejs))return;else u=requirejs,requirejs=r;typeof require!=="undefined"&&!K(require)&&(u=require,require=r);d=requirejs=function(a,c,d){var j="_",k;!G(a)&&typeof a!=="string"&&(k=a,G(c)?(a=c,c=d):a=[]);if(k&&k.context)j=k.context;d=D[j]||(D[j]=ga(j));k&&d.configure(k); +return d.require(a,c)};d.config=function(a){return d(a)};require||(require=d);d.toUrl=function(a){return D._.toUrl(a)};d.version="1.0.8";d.jsExtRegExp=/^\/|:|\?|\.js$/;y=d.s={contexts:D,skipAsync:{}};if(d.isAsync=d.isBrowser=I)if(v=y.head=document.getElementsByTagName("head")[0],E=document.getElementsByTagName("base")[0])v=y.head=E.parentNode;d.onError=function(a){throw a;};d.load=function(a,c,l){d.resourcesReady(!1);a.scriptCount+=1;d.attach(l,a,c);if(a.jQuery&&!a.jQueryIncremented)V(a.jQuery,!0), +a.jQueryIncremented=!0};define=function(a,c,d){var j,k;typeof a!=="string"&&(d=c,c=a,a=null);G(c)||(d=c,c=[]);!c.length&&K(d)&&d.length&&(d.toString().replace(la,"").replace(ma,function(a,d){c.push(d)}),c=(d.length===1?["require"]:["require","exports","module"]).concat(c));if(Q&&(j=J||ka()))a||(a=j.getAttribute("data-requiremodule")),k=D[j.getAttribute("data-requirecontext")];(k?k.defQueue:U).push([a,c,d]);return r};define.amd={multiversion:!0,plugins:!0,jQuery:!0};d.exec=function(a){return eval(a)}; +d.execCb=function(a,c,d,j){return c.apply(j,d)};d.addScriptToDom=function(a){J=a;E?v.insertBefore(a,E):v.appendChild(a);J=null};d.onScriptLoad=function(a){var c=a.currentTarget||a.srcElement,l;if(a.type==="load"||c&&na.test(c.readyState))C=null,a=c.getAttribute("data-requirecontext"),l=c.getAttribute("data-requiremodule"),D[a].completeLoad(l),c.detachEvent&&!ea?c.detachEvent("onreadystatechange",d.onScriptLoad):c.removeEventListener("load",d.onScriptLoad,!1)};d.attach=function(a,c,l,j,k,o){var p; +if(I)return j=j||d.onScriptLoad,p=c&&c.config&&c.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),p.type=k||c&&c.config.scriptType||"text/javascript",p.charset="utf-8",p.async=!y.skipAsync[a],c&&p.setAttribute("data-requirecontext",c.contextName),p.setAttribute("data-requiremodule",l),p.attachEvent&&!(p.attachEvent.toString&&p.attachEvent.toString().indexOf("[native code]")<0)&&!ea?(Q=!0,o?p.onreadystatechange=function(){if(p.readyState=== +"loaded")p.onreadystatechange=null,p.attachEvent("onreadystatechange",j),o(p)}:p.attachEvent("onreadystatechange",j)):p.addEventListener("load",j,!1),p.src=a,o||d.addScriptToDom(p),p;else da&&(importScripts(a),c.completeLoad(l));return null};if(I){o=document.getElementsByTagName("script");for(B=o.length-1;B>-1&&(w=o[B]);B--){if(!v)v=w.parentNode;if(F=w.getAttribute("data-main")){if(!u.baseUrl)o=F.split("/"),w=o.pop(),o=o.length?o.join("/")+"/":"./",u.baseUrl=o,F=w.replace(ba,"");u.deps=u.deps?u.deps.concat(F): +[F];break}}}d.checkReadyState=function(){var a=y.contexts,c;for(c in a)if(!(c in L)&&a[c].waitCount)return;d.resourcesReady(!0)};d.resourcesReady=function(a){var c,l;d.resourcesDone=a;if(d.resourcesDone)for(l in a=y.contexts,a)if(!(l in L)&&(c=a[l],c.jQueryIncremented))V(c.jQuery,!1),c.jQueryIncremented=!1};d.pageLoaded=function(){if(document.readyState!=="complete")document.readyState="complete"};if(I&&document.addEventListener&&!document.readyState)document.readyState="loading",window.addEventListener("load", +d.pageLoaded,!1);d(u);if(d.isAsync&&typeof setTimeout!=="undefined")z=y.contexts[u.context||"_"],z.requireWait=!0,setTimeout(function(){z.requireWait=!1;z.scriptCount||z.resume();d.checkReadyState()},0)}})(); diff --git a/syte/static/js/libs/spin.min.js b/syte/static/js/libs/spin.min.js new file mode 100644 index 0000000..c38b40e --- /dev/null +++ b/syte/static/js/libs/spin.min.js @@ -0,0 +1,2 @@ +//fgnass.github.com/spin.js#v1.2.5 +(function(a,b,c){function g(a,c){var d=b.createElement(a||"div"),e;for(e in c)d[e]=c[e];return d}function h(a){for(var b=1,c=arguments.length;b<c;b++)a.appendChild(arguments[b]);return a}function j(a,b,c,d){var g=["opacity",b,~~(a*100),c,d].join("-"),h=.01+c/d*100,j=Math.max(1-(1-a)/b*(100-h),a),k=f.substring(0,f.indexOf("Animation")).toLowerCase(),l=k&&"-"+k+"-"||"";return e[g]||(i.insertRule("@"+l+"keyframes "+g+"{"+"0%{opacity:"+j+"}"+h+"%{opacity:"+a+"}"+(h+.01)+"%{opacity:1}"+(h+b)%100+"%{opacity:"+a+"}"+"100%{opacity:"+j+"}"+"}",0),e[g]=1),g}function k(a,b){var e=a.style,f,g;if(e[b]!==c)return b;b=b.charAt(0).toUpperCase()+b.slice(1);for(g=0;g<d.length;g++){f=d[g]+b;if(e[f]!==c)return f}}function l(a,b){for(var c in b)a.style[k(a,c)||c]=b[c];return a}function m(a){for(var b=1;b<arguments.length;b++){var d=arguments[b];for(var e in d)a[e]===c&&(a[e]=d[e])}return a}function n(a){var b={x:a.offsetLeft,y:a.offsetTop};while(a=a.offsetParent)b.x+=a.offsetLeft,b.y+=a.offsetTop;return b}var d=["webkit","Moz","ms","O"],e={},f,i=function(){var a=g("style");return h(b.getElementsByTagName("head")[0],a),a.sheet||a.styleSheet}(),o={lines:12,length:7,width:5,radius:10,rotate:0,color:"#000",speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"auto",left:"auto"},p=function q(a){if(!this.spin)return new q(a);this.opts=m(a||{},q.defaults,o)};p.defaults={},m(p.prototype,{spin:function(a){this.stop();var b=this,c=b.opts,d=b.el=l(g(0,{className:c.className}),{position:"relative",zIndex:c.zIndex}),e=c.radius+c.length+c.width,h,i;a&&(a.insertBefore(d,a.firstChild||null),i=n(a),h=n(d),l(d,{left:(c.left=="auto"?i.x-h.x+(a.offsetWidth>>1):c.left+e)+"px",top:(c.top=="auto"?i.y-h.y+(a.offsetHeight>>1):c.top+e)+"px"})),d.setAttribute("aria-role","progressbar"),b.lines(d,b.opts);if(!f){var j=0,k=c.fps,m=k/c.speed,o=(1-c.opacity)/(m*c.trail/100),p=m/c.lines;!function q(){j++;for(var a=c.lines;a;a--){var e=Math.max(1-(j+a*p)%m*o,c.opacity);b.opacity(d,c.lines-a,e,c)}b.timeout=b.el&&setTimeout(q,~~(1e3/k))}()}return b},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=c),this},lines:function(a,b){function e(a,d){return l(g(),{position:"absolute",width:b.length+b.width+"px",height:b.width+"px",background:a,boxShadow:d,transformOrigin:"left",transform:"rotate("+~~(360/b.lines*c+b.rotate)+"deg) translate("+b.radius+"px"+",0)",borderRadius:(b.width>>1)+"px"})}var c=0,d;for(;c<b.lines;c++)d=l(g(),{position:"absolute",top:1+~(b.width/2)+"px",transform:b.hwaccel?"translate3d(0,0,0)":"",opacity:b.opacity,animation:f&&j(b.opacity,b.trail,c,b.lines)+" "+1/b.speed+"s linear infinite"}),b.shadow&&h(d,l(e("#000","0 0 4px #000"),{top:"2px"})),h(a,h(d,e(b.color,"0 0 1px rgba(0,0,0,.1)")));return a},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}}),!function(){function a(a,b){return g("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',b)}var b=l(g("group"),{behavior:"url(#default#VML)"});!k(b,"transform")&&b.adj?(i.addRule(".spin-vml","behavior:url(#default#VML)"),p.prototype.lines=function(b,c){function f(){return l(a("group",{coordsize:e+" "+e,coordorigin:-d+" "+ -d}),{width:e,height:e})}function k(b,e,g){h(i,h(l(f(),{rotation:360/c.lines*b+"deg",left:~~e}),h(l(a("roundrect",{arcsize:1}),{width:d,height:c.width,left:c.radius,top:-c.width>>1,filter:g}),a("fill",{color:c.color,opacity:c.opacity}),a("stroke",{opacity:0}))))}var d=c.length+c.width,e=2*d,g=-(c.width+c.length)*2+"px",i=l(f(),{position:"absolute",top:g,left:g}),j;if(c.shadow)for(j=1;j<=c.lines;j++)k(j,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(j=1;j<=c.lines;j++)k(j);return h(b,i)},p.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}):f=k(b,"animation")}(),a.Spinner=p})(window,document);
\ No newline at end of file diff --git a/syte/static/js/libs/text.js b/syte/static/js/libs/text.js new file mode 100644 index 0000000..d18166d --- /dev/null +++ b/syte/static/js/libs/text.js @@ -0,0 +1,11 @@ +/* + RequireJS text 1.0.8 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details +*/ +(function(){var k=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],m=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,n=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,i=typeof location!=="undefined"&&location.href,o=i&&location.protocol&&location.protocol.replace(/\:/,""),p=i&&location.hostname,q=i&&(location.port||void 0),j=[];define(function(){var e,l;e={version:"1.0.8",strip:function(a){if(a){var a=a.replace(m,""),c=a.match(n);c&&(a=c[1])}else a="";return a},jsEscape:function(a){return a.replace(/(['\\])/g, +"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var a,c,b;if(typeof XMLHttpRequest!=="undefined")return new XMLHttpRequest;else if(typeof ActiveXObject!=="undefined")for(c=0;c<3;c++){b=k[c];try{a=new ActiveXObject(b)}catch(f){}if(a){k=[b];break}}return a},parseName:function(a){var c=!1,b=a.indexOf("."),f=a.substring(0,b),a=a.substring(b+1,a.length),b=a.indexOf("!");b!==-1&&(c=a.substring(b+1,a.length), +c=c==="strip",a=a.substring(0,b));return{moduleName:f,ext:a,strip:c}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(a,c,b,f){var d=e.xdRegExp.exec(a),g;if(!d)return!0;a=d[2];d=d[3];d=d.split(":");g=d[1];d=d[0];return(!a||a===c)&&(!d||d===b)&&(!g&&!d||g===f)},finishLoad:function(a,c,b,f,d){b=c?e.strip(b):b;d.isBuild&&(j[a]=b);f(b)},load:function(a,c,b,f){if(f.isBuild&&!f.inlineText)b();else{var d=e.parseName(a),g=d.moduleName+"."+d.ext,h=c.toUrl(g),r=f&&f.text&&f.text.useXhr||e.useXhr;!i||r(h, +o,p,q)?e.get(h,function(c){e.finishLoad(a,d.strip,c,b,f)}):c([g],function(a){e.finishLoad(d.moduleName+"."+d.ext,d.strip,a,b,f)})}},write:function(a,c,b){if(j.hasOwnProperty(c)){var f=e.jsEscape(j[c]);b.asModule(a+"!"+c,"define(function () { return '"+f+"';});\n")}},writeFile:function(a,c,b,f,d){var c=e.parseName(c),g=c.moduleName+"."+c.ext,h=b.toUrl(c.moduleName+"."+c.ext)+".js";e.load(g,b,function(){var b=function(a){return f(h,a)};b.asModule=function(a,b){return f.asModule(a,h,b)};e.write(a,g, +b,d)},d)}};if(e.createXhr())e.get=function(a,c){var b=e.createXhr();b.open("GET",a,!0);b.onreadystatechange=function(){b.readyState===4&&c(b.responseText)};b.send(null)};else if(typeof process!=="undefined"&&process.versions&&process.versions.node)l=require.nodeRequire("fs"),e.get=function(a,c){var b=l.readFileSync(a,"utf8");b.indexOf("\ufeff")===0&&(b=b.substring(1));c(b)};else if(typeof Packages!=="undefined")e.get=function(a,c){var b=new java.io.File(a),f=java.lang.System.getProperty("line.separator"), +b=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(b),"utf-8")),d,e,h="";try{d=new java.lang.StringBuffer;(e=b.readLine())&&e.length()&&e.charAt(0)===65279&&(e=e.substring(1));for(d.append(e);(e=b.readLine())!==null;)d.append(f),d.append(e);h=String(d.toString())}finally{b.close()}c(h)};return e})})(); diff --git a/syte/static/js/min/scripts.min.js b/syte/static/js/min/scripts.min.js new file mode 100644 index 0000000..a732d8d --- /dev/null +++ b/syte/static/js/min/scripts.min.js @@ -0,0 +1,8 @@ +/* + * JQuery URL Parser plugin + * Developed and maintanined by Mark Perkins, mark@allmarkedup.com + * Source repository: https://github.com/allmarkedup/jQuery-URL-Parser + * Licensed under an MIT-style license. See https://github.com/allmarkedup/jQuery-URL-Parser/blob/master/LICENSE for details. + */function numberWithCommas(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}function fetchBlogPosts(e,t){var n="/blog.json";e?n="/post/"+e:t&&(n="/tags/"+t),$.getJSON(n,function(e){require(["text!templates/blog-post-text.html","text!templates/blog-post-photo.html","text!templates/blog-post-link.html","text!templates/blog-post-video.html","text!templates/blog-post-audio.html","text!templates/blog-post-quote.html"],function(t,n,r,i,s,o){var u=Handlebars.compile(t),a=Handlebars.compile(n),f=Handlebars.compile(r),l=Handlebars.compile(i),c=Handlebars.compile(s),h=Handlebars.compile(o);$(".loading").remove(),$.each(e.response.posts,function(e,t){t.formated_date=moment(t.date).format("MMMM DD, YYYY"),t.type=="text"?$("#blog-posts").append(u(t)):t.type=="photo"?$("#blog-posts").append(a(t)):t.type=="link"?$("#blog-posts").append(f(t)):t.type=="video"?$("#blog-posts").append(l(t)):t.type=="audio"?$("#blog-posts").append(c(t)):t.type=="quote"&&$("#blog-posts").append(h(t))}),setupLinks(),adjustBlogHeaders(),prettyPrint(),setTimeout(setupBlogHeaderScroll,1e3),adjustSelection("home-link")})})}function adjustBlogHeaders(){if(isMobileView)return;$(".blog-section article hgroup").each(function(e,t){$(t).find("h3 a").css({"margin-top":"-"+($(t).height()+100)+"px"}).addClass("adjusted")})}function setupBlogHeaderScroll(){function o(e){var s=n.scrollTop(),o=r.length;for(o;o--;){if(t!=i[o]&&s>r[o]&&(!r[o+1]||s<r[o+1])){var u=$(t).find("hgroup"),a="";u.length&&(a="-"+($(u[0]).height()+100)+"px"),$("h3 a[href="+t+"]").removeClass("active").css({position:"absolute",top:"auto","margin-top":a}),t=i[o],$("h3 a[href="+t+"]").attr("style","").addClass("active")}t&&t!=i[o]&&s+50>=r[o]&&(!r[o+1]||s+50<=r[o+1])&&$("h3 a[href="+t+"]").removeClass("active").css({position:"absolute",top:$(t).outerHeight(!0)+$(t).offset().top-50+"px",bottom:"auto"}),t==i[o]&&s>r[o]-50&&(!r[o+1]||s<=r[o+1]-50)&&($("h3 a[href="+t+"]").hasClass("active")||$("h3 a[href="+t+"]").attr("style","").addClass("active"))}}if(isMobileView)return;var e,t,n=$(window),r=[],i=[],s=$(".blog-section article hgroup h3 a").each(function(){this.hash&&(i.push(this.hash),r.push($(this.hash).offset().top))});s.click(function(e){if(!this.hash)return;$("html, body").stop().animate({scrollTop:$(this.hash).offset().top},500,"linear"),o(),e.preventDefault()}),n.scroll(o).trigger("scroll")}function setupLinks(){$("a").click(function(e){e.preventDefault(),e.stopPropagation();var t=$.url(this.href.replace("/#!",""));this.id=="home-link"&&window.location.pathname=="/"?($("#github-profile").remove(),$("#dribbble-profile").remove(),$("#twitter-profile").remove(),$("#instagram-profile").remove(),$(".modal-backdrop").remove(),adjustSelection("home-link")):this.id=="instagram-link"&&instagram_integration_enabled?($("#github-profile").remove(),$("#dribbble-profile").remove(),$("#twitter-profile").remove(),$(".modal-backdrop").remove(),adjustSelection("instagram-link"),setupInstagram(this)):!twitter_integration_enabled||t.attr("host")!="twitter.com"&&t.attr("host")!="www.twitter.com"?!github_integration_enabled||t.attr("host")!="github.com"&&t.attr("host")!="www.github.com"?!dribbble_integration_enabled||t.attr("host")!="dribbble.com"&&t.attr("host")!="www.dribbble.com"?window.location=this.href:($("#twitter-profile").remove(),$("#github-profile").remove(),$("#instagram-profile").remove(),$(".modal-backdrop").remove(),adjustSelection("dribbble-link"),setupDribbble(t,this)):($("#twitter-profile").remove(),$("#dribbble-profile").remove(),$("#instagram-profile").remove(),$(".modal-backdrop").remove(),adjustSelection("github-link"),setupGithub(t,this)):($("#github-profile").remove(),$("#dribbble-profile").remove(),$("#instagram-profile").remove(),$(".modal-backdrop").remove(),adjustSelection("twitter-link"),setupTwitter(t,this))})}function adjustSelection(e){$(".main-nav").children("li").removeClass("sel"),$("#"+e).parent().addClass("sel")}function setupTwitter(e,t){var n=t.href;if($("#twitter-profile").length>0){window.location=n;return}var r=e.attr("path").split("/").filter(function(e){return e.length?!0:!1});if(r.length==1){var i=r[0],s=(new Spinner(spin_opts)).spin();$("#twitter-link").append(s.el),require(["json!/twitter/"+i,"text!templates/twitter-view.html"],function(e,t){if(e.error||e.length==0){window.location=n;return}var r=Handlebars.compile(t),i=[];$.each(e,function(e,t){if(e>3)return;t.formated_date=moment(t.created_at).fromNow(),t.f_text=twitterLinkify(t.text),i.push(t)});var o=e[0].user;o.statuses_count=numberWithCommas(o.statuses_count),o.friends_count=numberWithCommas(o.friends_count),o.followers_count=numberWithCommas(o.followers_count),o.f_description=twitterLinkify(o.description);var u={user:o,tweets:i};$(r(u)).modal().on("hidden",function(){$(this).remove(),adjustSelection("home-link")}),s.stop()});return}window.location=n}function twitterLinkify(e){return e=e.replace(/(https?:\/\/\S+)/gi,function(e){return'<a href="'+e+'">'+e+"</a>"}),e=e.replace(/(^|) @(\w+)/gi,function(e){return'<a href="http://twitter.com/'+e+'">'+e+"</a>"}),e=e.replace(/(^|) #(\w+)/gi,function(e){return'<a href="http://search.twitter.com/search?q='+e.replace(/#/,"%23")+'">'+e+"</a>"}),e}function setupGithub(e,t){var n=t.href;if($("#github-profile").length>0){window.location=n;return}var r=e.attr("path").split("/").filter(function(e){return e.length?!0:!1});if(r.length==1){var i=r[0],s=(new Spinner(spin_opts)).spin();$("#github-link").append(s.el),require(["json!/github/"+i,"text!templates/github-view.html"],function(e,t){if(e.error||e.length==0){window.location=n;return}var r=Handlebars.compile(t);e.user.following_count=numberWithCommas(e.user.following_count),e.user.followers_count=numberWithCommas(e.user.followers_count),$(r(e)).modal().on("hidden",function(){$(this).remove(),adjustSelection("home-link")}),s.stop()});return}window.location=n}function setupInstagram(e){var t=e.href;if($("#instagram-profile").length>0){window.location=t;return}var n=(new Spinner(spin_opts)).spin();$("#instagram-link").append(n.el),require(["json!/instagram/","text!templates/instagram-view.html","text!templates/instagram-view-more.html"],function(e,r,i){if(e.media==0){window.location=t;return}var s=Handlebars.compile(r),o=e.user.counts;o.media=numberWithCommas(o.media),o.followed_by=numberWithCommas(o.followed_by),o.follows=numberWithCommas(o.follows),$.each(e.media,function(e,t){t.formated_date=moment.unix(parseInt(t.created_time)).fromNow()}),$(s(e)).modal().on("hidden",function(){$(this).remove(),adjustSelection("home-link")});var u=Handlebars.compile(i);$("#load-more-pics").click(function(e){next=$(this).attr("data-control-next");var t=(new Spinner(spin_opts)).spin();$("#load-more-pics").append(t.el),$.getJSON("/instagram/"+next,function(e){$.each(e.media,function(e,t){t.formated_date=moment.unix(parseInt(t.created_time)).fromNow()}),$(".instagram .profile-shots").append(u(e)),e.pagination&&e.pagination.next_max_id?$("#load-more-pics").attr("data-control-next",e.pagination.next_max_id):$("#load-more-pics").remove(),t.stop()})}),n.stop()})}(function(e,t){function a(e,t){var n=decodeURI(e),i=s[t||!1?"strict":"loose"].exec(n),a={attr:{},param:{},seg:{}},f=14;while(f--)a.attr[r[f]]=i[f]||"";return a.param.query={},a.param.fragment={},a.attr.query.replace(o,function(e,t,n){t&&(a.param.query[t]=n)}),a.attr.fragment.replace(u,function(e,t,n){t&&(a.param.fragment[t]=n)}),a.seg.path=a.attr.path.replace(/^\/+|\/+$/g,"").split("/"),a.seg.fragment=a.attr.fragment.replace(/^\/+|\/+$/g,"").split("/"),a.attr.base=a.attr.host?a.attr.protocol+"://"+a.attr.host+(a.attr.port?":"+a.attr.port:""):"",a}function f(e){var r=e.tagName;return r!==t?n[r.toLowerCase()]:r}var n={a:"href",img:"src",form:"action",base:"href",script:"src",iframe:"src",link:"href"},r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","fragment"],i={anchor:"fragment"},s={strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/},o=/(?:^|&|;)([^&=;]*)=?([^&;]*)/g,u=/(?:^|&|;)([^&=;]*)=?([^&;]*)/g;e.fn.url=function(t){var n="";return this.length&&(n=e(this).attr(f(this[0]))||""),e.url(n,t)},e.url=function(e,n){return arguments.length===1&&e===!0&&(n=!0,e=t),n=n||!1,e=e||window.location.toString(),{data:a(e,n),attr:function(e){return e=i[e]||e,e!==t?this.data.attr[e]:this.data.attr},param:function(e){return e!==t?this.data.param.query[e]:this.data.param.query},fparam:function(e){return e!==t?this.data.param.fragment[e]:this.data.param.fragment},segment:function(e){return e===t?this.data.seg.path:(e=e<0?this.data.seg.path.length+e:e-1,this.data.seg.path[e])},fsegment:function(e){return e===t?this.data.seg.fragment:(e=e<0?this.data.seg.fragment.length+e:e-1,this.data.seg.fragment[e])}}}})(jQuery);var requirejs,require,define;(function(r){function K(e){return O.call(e)==="[object Function]"}function G(e){return O.call(e)==="[object Array]"}function $(e,t,n){for(var r in t)!(r in L)&&(!(r in e)||n)&&(e[r]=t[r]);return d}function P(e,t,n){return e=Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e),n&&(e.originalError=n),e}function aa(e,t,n){var r,i,s;for(r=0;s=t[r];r++)s=typeof s=="string"?{name:s}:s,i=s.location,n&&(!i||i.indexOf("/")!==0&&i.indexOf(":")===-1)&&(i=n+"/"+(i||s.name)),e[s.name]={name:s.name,location:i||s.name,main:(s.main||"main").replace(fa,"").replace(ba,"")}}function V(e,t){e.holdReady?e.holdReady(t):t?e.readyWait+=1:e.ready(!0)}function ga(e){function t(e,t){var n,r;if(e&&e.charAt(0)===".")if(t){E.pkgs[t]?t=[t]:(t=t.split("/"),t=t.slice(0,t.length-1)),n=e=t.concat(e.split("/"));var i;for(r=0;i=n[r];r++)if(i===".")n.splice(r,1),r-=1;else if(i===".."){if(r===1&&(n[2]===".."||n[0]===".."))break;r>0&&(n.splice(r-1,2),r-=2)}r=E.pkgs[n=e[0]],e=e.join("/"),r&&e===n+"/"+r.main&&(e=n)}else e.indexOf("./")===0&&(e=e.substring(2));return e}function n(e,n){var r=e?e.indexOf("!"):-1,i=null,s=n?n.name:null,o=e,u,a;return r!==-1&&(i=e.substring(0,r),e=e.substring(r+1,e.length)),i&&(i=t(i,s)),e&&(i?u=(r=N[i])&&r.normalize?r.normalize(e,function(e){return t(e,s)}):t(e,s):(u=t(e,s),a=T[u],a||(a=b.nameToUrl(e,null,n),T[u]=a))),{prefix:i,name:u,parentMap:n,url:a,originalName:o,fullName:i?i+"!"+(u||""):u}}function i(){var e=!0,t=E.priorityWait,n,r;if(t){for(r=0;n=t[r];r++)if(!C[n]){e=!1;break}e&&delete E.priorityWait}return e}function s(e,t,n){return function(){var r=ha.call(arguments,0),i;return n&&K(i=r[r.length-1])&&(i.__requireJsBuild=!0),r.push(t),e.apply(null,r)}}function o(e,t,n){return t=s(n||b.require,e,t),$(t,{nameToUrl:s(b.nameToUrl,e),toUrl:s(b.toUrl,e),defined:s(b.requireDefined,e),specified:s(b.requireSpecified,e),isBrowser:d.isBrowser}),t}function u(e){var t,i,s,o=e.callback,u=e.map,a=u.fullName,f=e.deps;s=e.listeners;var l=E.requireExecCb||d.execCb;if(o&&K(o)){if(E.catchError.define)try{i=l(a,e.callback,f,N[a])}catch(c){t=c}else i=l(a,e.callback,f,N[a]);a&&((o=e.cjsModule)&&o.exports!==r&&o.exports!==N[a]?i=N[a]=e.cjsModule.exports:i===r&&e.usingExports?i=N[a]:(N[a]=i,H[a]&&(B[a]=!0)))}else a&&(i=N[a]=o,H[a]&&(B[a]=!0));k[e.id]&&(delete k[e.id],e.isDone=!0,b.waitCount-=1,b.waitCount===0&&(A=[])),delete _[a],d.onResourceLoad&&!e.placeholder&&d.onResourceLoad(b,u,e.depArray);if(t)return i=(a?n(a).url:"")||t.fileName||t.sourceURL,s=t.moduleTree,t=P("defineerror",'Error evaluating module "'+a+'" at location "'+i+'":\n'+t+"\nfileName:"+i+"\nlineNumber: "+(t.lineNumber||t.line),t),t.moduleName=a,t.moduleTree=s,d.onError(t);for(t=0;o=s[t];t++)o(i);return r}function a(e,t){return function(n){e.depDone[t]||(e.depDone[t]=!0,e.deps[t]=n,e.depCount-=1,e.depCount||u(e))}}function f(e,t){var r=t.map,i=r.fullName,s=r.name,a=D[e]||(D[e]=N[e]),f;t.loading||(t.loading=!0,f=function(e){t.callback=function(){return e},u(t),C[t.id]=!0,w()},f.fromText=function(e,t){var n=Q;C[e]=!1,b.scriptCount+=1,b.fake[e]=!0,n&&(Q=!1),d.exec(t),n&&(Q=!0),b.completeLoad(e)},i in N?f(N[i]):a.load(s,o(r.parentMap,!0,function(e,i){var s=[],o,u;for(o=0;u=e[o];o++)u=n(u,r.parentMap),e[o]=u.fullName,u.prefix||s.push(e[o]);return t.moduleDeps=(t.moduleDeps||[]).concat(s),b.require(e,i)}),f,E))}function l(e){k[e.id]||(k[e.id]=e,A.push(e),b.waitCount+=1)}function c(e){this.listeners.push(e)}function h(e,t){var r=e.fullName,i=e.prefix,s=i?D[i]||(D[i]=N[i]):null,o,a;return r&&(o=_[r]),!o&&(a=!0,o={id:(i&&!s?M++ +"__p@:":"")+(r||"__r@"+M++),map:e,depCount:0,depDone:[],depCallbacks:[],deps:[],listeners:[],add:c},x[o.id]=!0,r&&(!i||D[i]))&&(_[r]=o),i&&!s?(r=n(i),i in N&&!N[i]&&(delete N[i],delete O[r.url]),i=h(r,!0),i.add(function(){var t=n(e.originalName,e.parentMap),t=h(t,!0);o.placeholder=!0,t.add(function(e){o.callback=function(){return e},u(o)})})):a&&t&&(C[o.id]=!1,b.paused.push(o),l(o)),o}function p(e,t,i,s){var e=n(e,s),f=e.name,c=e.fullName,p=h(e),d=p.id,v=p.deps,m;if(c){if(c in N||C[d]===!0||c==="jquery"&&E.jQuery&&E.jQuery!==i().fn.jquery)return;x[d]=!0,C[d]=!0,c==="jquery"&&i&&W(i())}p.depArray=t,p.callback=i;for(i=0;i<t.length;i++)if(d=t[i])d=n(d,f?e:s),m=d.fullName,t[i]=m,m==="require"?v[i]=o(e):m==="exports"?(v[i]=N[c]={},p.usingExports=!0):m==="module"?p.cjsModule=v[i]={id:f,uri:f?b.nameToUrl(f,null,s):r,exports:N[c]}:!(m in N)||m in k||c in H&&!(c in H&&B[m])?(c in H&&(H[m]=!0,delete N[m],O[d.url]=!1),p.depCount+=1,p.depCallbacks[i]=a(p,i),h(d,!0).add(p.depCallbacks[i])):v[i]=N[m];p.depCount?l(p):u(p)}function v(e){p.apply(null,e)}function m(e,t){var n=e.map.fullName,i=e.depArray,s=!0,o,u,a,f;if(e.isDone||!n||!C[n])return f;if(t[n])return e;t[n]=!0;if(i){for(o=0;o<i.length;o++){u=i[o];if(!C[u]&&!ia[u]){s=!1;break}if((a=k[u])&&!a.isDone&&C[u])if(f=m(a,t))break}s||(f=r,delete t[n])}return f}function g(e,t){var i=e.map.fullName,s=e.depArray,o,u,a,f;if(e.isDone||!i||!C[i])return r;if(i){if(t[i])return N[i];t[i]=!0}if(s)for(o=0;o<s.length;o++)if(u=s[o])if((a=n(u).prefix)&&(f=k[a])&&g(f,t),(a=k[u])&&!a.isDone&&C[u])u=g(a,t),e.depCallbacks[o](u);return N[i]}function y(){var e=E.waitSeconds*1e3,e=e&&b.startTime+e<(new Date).getTime(),t="",n=!1,s=!1,o=[],u,a;if(b.pausedCount>0)return r;if(E.priorityWait){if(!i())return r;w()}for(u in C)if(!(u in L)&&(n=!0,!C[u]))if(e)t+=u+" ";else{if(s=!0,u.indexOf("!")===-1){o=[];break}(a=_[u]&&_[u].moduleDeps)&&o.push.apply(o,a)}if(!n&&!b.waitCount)return r;if(e&&t)return e=P("timeout","Load timeout for modules: "+t),e.requireType="timeout",e.requireModules=t,e.contextName=b.contextName,d.onError(e);if(s&&o.length)for(t=0;u=k[o[t]];t++)if(u=m(u,{})){g(u,{});break}if(!e&&(s||b.scriptCount))return(I||da)&&!X&&(X=setTimeout(function(){X=0,y()},50)),r;if(b.waitCount){for(t=0;u=A[t];t++)g(u,{});b.paused.length&&w(),Y<5&&(Y+=1,y())}return Y=0,d.checkReadyState(),r}var b,w,E={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},catchError:{}},S=[],x={require:!0,exports:!0,module:!0},T={},N={},C={},k={},A=[],O={},M=0,_={},D={},H={},B={},j=0;return W=function(e){!b.jQuery&&(e=e||(typeof jQuery!="undefined"?jQuery:null))&&(!E.jQuery||e.fn.jquery===E.jQuery)&&("holdReady"in e||"readyWait"in e)&&(b.jQuery=e,v(["jquery",[],function(){return jQuery}]),b.scriptCount)&&(V(e,!0),b.jQueryIncremented=!0)},w=function(){var e,t,n,s,o,u;b.takeGlobalQueue(),j+=1,b.scriptCount<=0&&(b.scriptCount=0);for(;S.length;){if(e=S.shift(),e[0]===null)return d.onError(P("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));v(e)}if(!E.priorityWait||i())for(;b.paused.length;){o=b.paused,b.pausedCount+=o.length,b.paused=[];for(s=0;e=o[s];s++)t=e.map,n=t.url,u=t.fullName,t.prefix?f(t.prefix,e):!O[n]&&!C[u]&&((E.requireLoad||d.load)(b,u,n),n.indexOf("empty:")!==0&&(O[n]=!0));b.startTime=(new Date).getTime(),b.pausedCount-=o.length}return j===1&&y(),j-=1,r},b={contextName:e,config:E,defQueue:S,waiting:k,waitCount:0,specified:x,loaded:C,urlMap:T,urlFetched:O,scriptCount:0,defined:N,paused:[],pausedCount:0,plugins:D,needFullExec:H,fake:{},fullExec:B,managerCallbacks:_,makeModuleMap:n,normalize:t,configure:function(e){var t,n,r;e.baseUrl&&e.baseUrl.charAt(e.baseUrl.length-1)!=="/"&&(e.baseUrl+="/"),t=E.paths,r=E.pkgs,$(E,e,!0);if(e.paths){for(n in e.paths)n in L||(t[n]=e.paths[n]);E.paths=t}if((t=e.packagePaths)||e.packages){if(t)for(n in t)n in L||aa(r,t[n],n);e.packages&&aa(r,e.packages),E.pkgs=r}e.priority&&(n=b.requireWait,b.requireWait=!1,w(),b.require(e.priority),w(),b.requireWait=n,E.priorityWait=e.priority),(e.deps||e.callback)&&b.require(e.deps||[],e.callback)},requireDefined:function(e,t){return n(e,t).fullName in N},requireSpecified:function(e,t){return n(e,t).fullName in x},require:function(t,r,i){if(typeof t=="string")return K(r)?d.onError(P("requireargs","Invalid require call")):d.get?d.get(b,t,r):(r=n(t,r),t=r.fullName,t in N?N[t]:d.onError(P("notloaded","Module name '"+r.fullName+"' has not been loaded yet for context: "+e)));(t&&t.length||r)&&p(null,t,r,i);if(!b.requireWait)for(;!b.scriptCount&&b.paused.length;)w();return b.require},takeGlobalQueue:function(){U.length&&(ja.apply(b.defQueue,[b.defQueue.length-1,0].concat(U)),U=[])},completeLoad:function(e){var t;for(b.takeGlobalQueue();S.length;){if(t=S.shift(),t[0]===null){t[0]=e;break}if(t[0]===e)break;v(t),t=null}t?v(t):v([e,[],e==="jquery"&&typeof jQuery!="undefined"?function(){return jQuery}:null]),d.isAsync&&(b.scriptCount-=1),w(),d.isAsync||(b.scriptCount-=1)},toUrl:function(e,t){var n=e.lastIndexOf("."),r=null;return n!==-1&&(r=e.substring(n,e.length),e=e.substring(0,n)),b.nameToUrl(e,r,t)},nameToUrl:function(e,n,r){var i,s,o,u,a=b.config,e=t(e,r&&r.fullName);if(d.jsExtRegExp.test(e))n=e+(n?n:"");else{i=a.paths,s=a.pkgs,r=e.split("/");for(u=r.length;u>0;u--){if(o=r.slice(0,u).join("/"),i[o]){r.splice(0,u,i[o]);break}if(o=s[o]){e=e===o.name?o.location+"/"+o.main:o.location,r.splice(0,u,e);break}}n=r.join("/")+(n||".js"),n=(n.charAt(0)==="/"||n.match(/^[\w\+\.\-]+:/)?"":a.baseUrl)+n}return a.urlArgs?n+((n.indexOf("?")===-1?"?":"&")+a.urlArgs):n}},b.jQueryCheck=W,b.resume=w,b}function ka(){var e,t,n;if(C&&C.readyState==="interactive")return C;e=document.getElementsByTagName("script");for(t=e.length-1;t>-1&&(n=e[t]);t--)if(n.readyState==="interactive")return C=n;return null}var la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/require\(\s*["']([^'"\s]+)["']\s*\)/g,fa=/^\.\//,ba=/\.js$/,O=Object.prototype.toString,u=Array.prototype,ha=u.slice,ja=u.splice,I=typeof window!="undefined"&&!!navigator&&!!document,da=!I&&typeof importScripts!="undefined",na=I&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,ea=typeof opera!="undefined"&&opera.toString()==="[object Opera]",L={},D={},U=[],C=null,Y=0,Q=!1,ia={require:!0,module:!0,exports:!0},d,u={},J,y,v,E,o,w,F,B,z,W,X;if(typeof define=="undefined"){if(typeof requirejs!="undefined"){if(K(requirejs))return;u=requirejs,requirejs=r}typeof require!="undefined"&&!K(require)&&(u=require,require=r),d=requirejs=function(e,t,n){var r="_",i;return!G(e)&&typeof e!="string"&&(i=e,G(t)?(e=t,t=n):e=[]),i&&i.context&&(r=i.context),n=D[r]||(D[r]=ga(r)),i&&n.configure(i),n.require(e,t)},d.config=function(e){return d(e)},require||(require=d),d.toUrl=function(e){return D._.toUrl(e)},d.version="1.0.8",d.jsExtRegExp=/^\/|:|\?|\.js$/,y=d.s={contexts:D,skipAsync:{}};if(d.isAsync=d.isBrowser=I)if(v=y.head=document.getElementsByTagName("head")[0],E=document.getElementsByTagName("base")[0])v=y.head=E.parentNode;d.onError=function(e){throw e},d.load=function(e,t,n){d.resourcesReady(!1),e.scriptCount+=1,d.attach(n,e,t),e.jQuery&&!e.jQueryIncremented&&(V(e.jQuery,!0),e.jQueryIncremented=!0)},define=function(e,t,n){var i,s;return typeof e!="string"&&(n=t,t=e,e=null),G(t)||(n=t,t=[]),!t.length&&K(n)&&n.length&&(n.toString().replace(la,"").replace(ma,function(e,n){t.push(n)}),t=(n.length===1?["require"]:["require","exports","module"]).concat(t)),Q&&(i=J||ka())&&(e||(e=i.getAttribute("data-requiremodule")),s=D[i.getAttribute("data-requirecontext")]),(s?s.defQueue:U).push([e,t,n]),r},define.amd={multiversion:!0,plugins:!0,jQuery:!0},d.exec=function(a){return eval(a)},d.execCb=function(e,t,n,r){return t.apply(r,n)},d.addScriptToDom=function(e){J=e,E?v.insertBefore(e,E):v.appendChild(e),J=null},d.onScriptLoad=function(e){var t=e.currentTarget||e.srcElement,n;if(e.type==="load"||t&&na.test(t.readyState))C=null,e=t.getAttribute("data-requirecontext"),n=t.getAttribute("data-requiremodule"),D[e].completeLoad(n),t.detachEvent&&!ea?t.detachEvent("onreadystatechange",d.onScriptLoad):t.removeEventListener("load",d.onScriptLoad,!1)},d.attach=function(e,t,n,r,i,s){var o;return I?(r=r||d.onScriptLoad,o=t&&t.config&&t.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),o.type=i||t&&t.config.scriptType||"text/javascript",o.charset="utf-8",o.async=!y.skipAsync[e],t&&o.setAttribute("data-requirecontext",t.contextName),o.setAttribute("data-requiremodule",n),o.attachEvent&&!(o.attachEvent.toString&&o.attachEvent.toString().indexOf("[native code]")<0)&&!ea?(Q=!0,s?o.onreadystatechange=function(){o.readyState==="loaded"&&(o.onreadystatechange=null,o.attachEvent("onreadystatechange",r),s(o))}:o.attachEvent("onreadystatechange",r)):o.addEventListener("load",r,!1),o.src=e,s||d.addScriptToDom(o),o):(da&&(importScripts(e),t.completeLoad(n)),null)};if(I){o=document.getElementsByTagName("script");for(B=o.length-1;B>-1&&(w=o[B]);B--){v||(v=w.parentNode);if(F=w.getAttribute("data-main")){u.baseUrl||(o=F.split("/"),w=o.pop(),o=o.length?o.join("/")+"/":"./",u.baseUrl=o,F=w.replace(ba,"")),u.deps=u.deps?u.deps.concat(F):[F];break}}}d.checkReadyState=function(){var e=y.contexts,t;for(t in e)if(!(t in L)&&e[t].waitCount)return;d.resourcesReady(!0)},d.resourcesReady=function(e){var t,n;d.resourcesDone=e;if(d.resourcesDone)for(n in e=y.contexts,e)!(n in L)&&(t=e[n],t.jQueryIncremented)&&(V(t.jQuery,!1),t.jQueryIncremented=!1)},d.pageLoaded=function(){document.readyState!=="complete"&&(document.readyState="complete")},I&&document.addEventListener&&!document.readyState&&(document.readyState="loading",window.addEventListener("load",d.pageLoaded,!1)),d(u),d.isAsync&&typeof setTimeout!="undefined"&&(z=y.contexts[u.context||"_"],z.requireWait=!0,setTimeout(function(){z.requireWait=!1,z.scriptCount||z.resume(),d.checkReadyState()},0))}})();var Handlebars={};Handlebars.VERSION="1.0.beta.6",Handlebars.helpers={},Handlebars.partials={},Handlebars.registerHelper=function(e,t,n){n&&(t.not=n),this.helpers[e]=t},Handlebars.registerPartial=function(e,t){this.partials[e]=t},Handlebars.registerHelper("helperMissing",function(e){if(arguments.length===2)return undefined;throw new Error("Could not find property '"+e+"'")});var toString=Object.prototype.toString,functionType="[object Function]";Handlebars.registerHelper("blockHelperMissing",function(e,t){var n=t.inverse||function(){},r=t.fn,i="",s=toString.call(e);s===functionType&&(e=e.call(this));if(e===!0)return r(this);if(e===!1||e==null)return n(this);if(s==="[object Array]"){if(e.length>0)for(var o=0,u=e.length;o<u;o++)i+=r(e[o]);else i=n(this);return i}return r(e)}),Handlebars.registerHelper("each",function(e,t){var n=t.fn,r=t.inverse,i="";if(e&&e.length>0)for(var s=0,o=e.length;s<o;s++)i+=n(e[s]);else i=r(this);return i}),Handlebars.registerHelper("if",function(e,t){var n=toString.call(e);return n===functionType&&(e=e.call(this)),!e||Handlebars.Utils.isEmpty(e)?t.inverse(this):t.fn(this)}),Handlebars.registerHelper("unless",function(e,t){var n=t.fn,r=t.inverse;return t.fn=r,t.inverse=n,Handlebars.helpers["if"].call(this,e,t)}),Handlebars.registerHelper("with",function(e,t){return t.fn(e)}),Handlebars.registerHelper("log",function(e){Handlebars.log(e)});var handlebars=function(){var e={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,statements:6,simpleInverse:7,statement:8,openInverse:9,closeBlock:10,openBlock:11,mustache:12,partial:13,CONTENT:14,COMMENT:15,OPEN_BLOCK:16,inMustache:17,CLOSE:18,OPEN_INVERSE:19,OPEN_ENDBLOCK:20,path:21,OPEN:22,OPEN_UNESCAPED:23,OPEN_PARTIAL:24,params:25,hash:26,param:27,STRING:28,INTEGER:29,BOOLEAN:30,hashSegments:31,hashSegment:32,ID:33,EQUALS:34,pathSegments:35,SEP:36,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"STRING",29:"INTEGER",30:"BOOLEAN",33:"ID",34:"EQUALS",36:"SEP"},productions_:[0,[3,2],[4,3],[4,1],[4,0],[6,1],[6,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[7,2],[17,3],[17,2],[17,2],[17,1],[25,2],[25,1],[27,1],[27,1],[27,1],[27,1],[26,1],[31,2],[31,1],[32,3],[32,3],[32,3],[32,3],[21,1],[35,3],[35,1]],performAction:function(t,n,r,i,s,o,u){var a=o.length-1;switch(s){case 1:return o[a-1];case 2:this.$=new i.ProgramNode(o[a-2],o[a]);break;case 3:this.$=new i.ProgramNode(o[a]);break;case 4:this.$=new i.ProgramNode([]);break;case 5:this.$=[o[a]];break;case 6:o[a-1].push(o[a]),this.$=o[a-1];break;case 7:this.$=new i.InverseNode(o[a-2],o[a-1],o[a]);break;case 8:this.$=new i.BlockNode(o[a-2],o[a-1],o[a]);break;case 9:this.$=o[a];break;case 10:this.$=o[a];break;case 11:this.$=new i.ContentNode(o[a]);break;case 12:this.$=new i.CommentNode(o[a]);break;case 13:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1]);break;case 14:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1]);break;case 15:this.$=o[a-1];break;case 16:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1]);break;case 17:this.$=new i.MustacheNode(o[a-1][0],o[a-1][1],!0);break;case 18:this.$=new i.PartialNode(o[a-1]);break;case 19:this.$=new i.PartialNode(o[a-2],o[a-1]);break;case 20:break;case 21:this.$=[[o[a-2]].concat(o[a-1]),o[a]];break;case 22:this.$=[[o[a-1]].concat(o[a]),null];break;case 23:this.$=[[o[a-1]],o[a]];break;case 24:this.$=[[o[a]],null];break;case 25:o[a-1].push(o[a]),this.$=o[a-1];break;case 26:this.$=[o[a]];break;case 27:this.$=o[a];break;case 28:this.$=new i.StringNode(o[a]);break;case 29:this.$=new i.IntegerNode(o[a]);break;case 30:this.$=new i.BooleanNode(o[a]);break;case 31:this.$=new i.HashNode(o[a]);break;case 32:o[a-1].push(o[a]),this.$=o[a-1];break;case 33:this.$=[o[a]];break;case 34:this.$=[o[a-2],o[a]];break;case 35:this.$=[o[a-2],new i.StringNode(o[a])];break;case 36:this.$=[o[a-2],new i.IntegerNode(o[a])];break;case 37:this.$=[o[a-2],new i.BooleanNode(o[a])];break;case 38:this.$=new i.IdNode(o[a]);break;case 39:o[a-2].push(o[a]),this.$=o[a-2];break;case 40:this.$=[o[a]]}},table:[{3:1,4:2,5:[2,4],6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{1:[3]},{5:[1,16]},{5:[2,3],7:17,8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,19],20:[2,3],22:[1,13],23:[1,14],24:[1,15]},{5:[2,5],14:[2,5],15:[2,5],16:[2,5],19:[2,5],20:[2,5],22:[2,5],23:[2,5],24:[2,5]},{4:20,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{4:21,6:3,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,4],22:[1,13],23:[1,14],24:[1,15]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{17:22,21:23,33:[1,25],35:24},{17:26,21:23,33:[1,25],35:24},{17:27,21:23,33:[1,25],35:24},{17:28,21:23,33:[1,25],35:24},{21:29,33:[1,25],35:24},{1:[2,1]},{6:30,8:4,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],22:[1,13],23:[1,14],24:[1,15]},{5:[2,6],14:[2,6],15:[2,6],16:[2,6],19:[2,6],20:[2,6],22:[2,6],23:[2,6],24:[2,6]},{17:22,18:[1,31],21:23,33:[1,25],35:24},{10:32,20:[1,33]},{10:34,20:[1,33]},{18:[1,35]},{18:[2,24],21:40,25:36,26:37,27:38,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,38],28:[2,38],29:[2,38],30:[2,38],33:[2,38],36:[1,46]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],36:[2,40]},{18:[1,47]},{18:[1,48]},{18:[1,49]},{18:[1,50],21:51,33:[1,25],35:24},{5:[2,2],8:18,9:5,11:6,12:7,13:8,14:[1,9],15:[1,10],16:[1,12],19:[1,11],20:[2,2],22:[1,13],23:[1,14],24:[1,15]},{14:[2,20],15:[2,20],16:[2,20],19:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,7],14:[2,7],15:[2,7],16:[2,7],19:[2,7],20:[2,7],22:[2,7],23:[2,7],24:[2,7]},{21:52,33:[1,25],35:24},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{18:[2,22],21:40,26:53,27:54,28:[1,41],29:[1,42],30:[1,43],31:39,32:44,33:[1,45],35:24},{18:[2,23]},{18:[2,26],28:[2,26],29:[2,26],30:[2,26],33:[2,26]},{18:[2,31],32:55,33:[1,56]},{18:[2,27],28:[2,27],29:[2,27],30:[2,27],33:[2,27]},{18:[2,28],28:[2,28],29:[2,28],30:[2,28],33:[2,28]},{18:[2,29],28:[2,29],29:[2,29],30:[2,29],33:[2,29]},{18:[2,30],28:[2,30],29:[2,30],30:[2,30],33:[2,30]},{18:[2,33],33:[2,33]},{18:[2,40],28:[2,40],29:[2,40],30:[2,40],33:[2,40],34:[1,57],36:[2,40]},{33:[1,58]},{14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,16],14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,17],14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]},{18:[1,59]},{18:[1,60]},{18:[2,21]},{18:[2,25],28:[2,25],29:[2,25],30:[2,25],33:[2,25]},{18:[2,32],33:[2,32]},{34:[1,57]},{21:61,28:[1,62],29:[1,63],30:[1,64],33:[1,25],35:24},{18:[2,39],28:[2,39],29:[2,39],30:[2,39],33:[2,39],36:[2,39]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{18:[2,34],33:[2,34]},{18:[2,35],33:[2,35]},{18:[2,36],33:[2,36]},{18:[2,37],33:[2,37]}],defaultActions:{16:[2,1],37:[2,23],53:[2,21]},parseError:function(t,n){throw new Error(t)},parse:function(t){function d(e){r.length=r.length-2*e,i.length=i.length-e,s.length=s.length-e}function v(){var e;return e=n.lexer.lex()||1,typeof e!="number"&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],s=[],o=this.table,u="",a=0,f=0,l=0,c=2,h=1;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,typeof this.lexer.yylloc=="undefined"&&(this.lexer.yylloc={});var p=this.lexer.yylloc;s.push(p),typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);var m,g,y,b,w,E,S={},x,T,N,C;for(;;){y=r[r.length-1],this.defaultActions[y]?b=this.defaultActions[y]:(m==null&&(m=v()),b=o[y]&&o[y][m]);if(typeof b=="undefined"||!b.length||!b[0])if(!l){C=[];for(x in o[y])this.terminals_[x]&&x>2&&C.push("'"+this.terminals_[x]+"'");var k="";this.lexer.showPosition?k="Parse error on line "+(a+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+C.join(", ")+", got '"+this.terminals_[m]+"'":k="Parse error on line "+(a+1)+": Unexpected "+(m==1?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:p,expected:C})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+m);switch(b[0]){case 1:r.push(m),i.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(b[1]),m=null,g?(m=g,g=null):(f=this.lexer.yyleng,u=this.lexer.yytext,a=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:T=this.productions_[b[1]][1],S.$=i[i.length-T],S._$={first_line:s[s.length-(T||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(T||1)].first_column,last_column:s[s.length-1].last_column},E=this.performAction.call(S,u,f,a,this.yy,b[1],i,s);if(typeof E!="undefined")return E;T&&(r=r.slice(0,-1*T*2),i=i.slice(0,-1*T),s=s.slice(0,-1*T)),r.push(this.productions_[b[1]][0]),i.push(S.$),s.push(S._$),N=o[r[r.length-2]][r[r.length-1]],r.push(N);break;case 3:return!0}}return!0}},t=function(){var e={EOF:1,parseError:function(t,n){if(!this.yy.parseError)throw new Error(t);this.yy.parseError(t,n)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column +:0},this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e;var t=e.match(/\n/);return t&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=(new Array(e.length+1)).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext="",this.match="");var i=this._currentRules();for(var s=0;s<i.length;s++){t=this._input.match(this.rules[i[s]]);if(t){r=t[0].match(/\n.*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-1:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i[s],this.conditionStack[this.conditionStack.length-1]);if(e)return e;return}}if(this._input==="")return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return typeof t!="undefined"?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return e.performAction=function(t,n,r,i){var s=i;switch(r){case 0:n.yytext.slice(-1)!=="\\"&&this.begin("mu"),n.yytext.slice(-1)==="\\"&&(n.yytext=n.yytext.substr(0,n.yyleng-1),this.begin("emu"));if(n.yytext)return 14;break;case 1:return 14;case 2:return this.popState(),14;case 3:return 24;case 4:return 16;case 5:return 20;case 6:return 19;case 7:return 19;case 8:return 23;case 9:return 23;case 10:return n.yytext=n.yytext.substr(3,n.yyleng-5),this.popState(),15;case 11:return 22;case 12:return 34;case 13:return 33;case 14:return 33;case 15:return 36;case 16:break;case 17:return this.popState(),18;case 18:return this.popState(),18;case 19:return n.yytext=n.yytext.substr(1,n.yyleng-2).replace(/\\"/g,'"'),28;case 20:return 30;case 21:return 30;case 22:return 29;case 23:return 33;case 24:return n.yytext=n.yytext.substr(1,n.yyleng-2),33;case 25:return"INVALID";case 26:return 5}},e.rules=[/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/],e.conditions={mu:{rules:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],inclusive:!1},emu:{rules:[2],inclusive:!1},INITIAL:{rules:[0,1,26],inclusive:!0}},e}();return e.lexer=t,e}();typeof require!="undefined"&&typeof exports!="undefined"&&(exports.parser=handlebars,exports.parse=function(){return handlebars.parse.apply(handlebars,arguments)},exports.main=function(t){if(!t[1])throw new Error("Usage: "+t[0]+" FILE");if(typeof process!="undefined")var n=require("fs").readFileSync(require("path").join(process.cwd(),t[1]),"utf8");else var r=require("file").path(require("file").cwd()),n=r.join(t[1]).read({charset:"utf-8"});return exports.parser.parse(n)},typeof module!="undefined"&&require.main===module&&exports.main(typeof process!="undefined"?process.argv.slice(1):require("system").args)),Handlebars.Parser=handlebars,Handlebars.parse=function(e){return Handlebars.Parser.yy=Handlebars.AST,Handlebars.Parser.parse(e)},Handlebars.print=function(e){return(new Handlebars.PrintVisitor).accept(e)},Handlebars.logger={DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(e,t){}},Handlebars.log=function(e,t){Handlebars.logger.log(e,t)},function(){Handlebars.AST={},Handlebars.AST.ProgramNode=function(e,t){this.type="program",this.statements=e,t&&(this.inverse=new Handlebars.AST.ProgramNode(t))},Handlebars.AST.MustacheNode=function(e,t,n){this.type="mustache",this.id=e[0],this.params=e.slice(1),this.hash=t,this.escaped=!n},Handlebars.AST.PartialNode=function(e,t){this.type="partial",this.id=e,this.context=t};var e=function(e,t){if(e.original!==t.original)throw new Handlebars.Exception(e.original+" doesn't match "+t.original)};Handlebars.AST.BlockNode=function(t,n,r){e(t.id,r),this.type="block",this.mustache=t,this.program=n},Handlebars.AST.InverseNode=function(t,n,r){e(t.id,r),this.type="inverse",this.mustache=t,this.program=n},Handlebars.AST.ContentNode=function(e){this.type="content",this.string=e},Handlebars.AST.HashNode=function(e){this.type="hash",this.pairs=e},Handlebars.AST.IdNode=function(e){this.type="ID",this.original=e.join(".");var t=[],n=0;for(var r=0,i=e.length;r<i;r++){var s=e[r];s===".."?n++:s==="."||s==="this"?this.isScoped=!0:t.push(s)}this.parts=t,this.string=t.join("."),this.depth=n,this.isSimple=t.length===1&&n===0},Handlebars.AST.StringNode=function(e){this.type="STRING",this.string=e},Handlebars.AST.IntegerNode=function(e){this.type="INTEGER",this.integer=e},Handlebars.AST.BooleanNode=function(e){this.type="BOOLEAN",this.bool=e},Handlebars.AST.CommentNode=function(e){this.type="comment",this.comment=e}}(),Handlebars.Exception=function(e){var t=Error.prototype.constructor.apply(this,arguments);for(var n in t)t.hasOwnProperty(n)&&(this[n]=t[n]);this.message=t.message},Handlebars.Exception.prototype=new Error,Handlebars.SafeString=function(e){this.string=e},Handlebars.SafeString.prototype.toString=function(){return this.string.toString()},function(){var e={"<":"<",">":">",'"':""","'":"'","`":"`"},t=/&(?!\w+;)|[<>"'`]/g,n=/[&<>"'`]/,r=function(t){return e[t]||"&"};Handlebars.Utils={escapeExpression:function(e){return e instanceof Handlebars.SafeString?e.toString():e==null||e===!1?"":n.test(e)?e.replace(t,r):e},isEmpty:function(e){return typeof e=="undefined"?!0:e===null?!0:e===!1?!0:Object.prototype.toString.call(e)==="[object Array]"&&e.length===0?!0:!1}}}(),Handlebars.Compiler=function(){},Handlebars.JavaScriptCompiler=function(){},function(e,t){e.OPCODE_MAP={appendContent:1,getContext:2,lookupWithHelpers:3,lookup:4,append:5,invokeMustache:6,appendEscaped:7,pushString:8,truthyOrFallback:9,functionOrFallback:10,invokeProgram:11,invokePartial:12,push:13,assignToHash:15,pushStringParam:16},e.MULTI_PARAM_OPCODES={appendContent:1,getContext:1,lookupWithHelpers:2,lookup:1,invokeMustache:3,pushString:1,truthyOrFallback:1,functionOrFallback:1,invokeProgram:3,invokePartial:1,push:1,assignToHash:1,pushStringParam:1},e.DISASSEMBLE_MAP={};for(var n in e.OPCODE_MAP){var r=e.OPCODE_MAP[n];e.DISASSEMBLE_MAP[r]=n}e.multiParamSize=function(t){return e.MULTI_PARAM_OPCODES[e.DISASSEMBLE_MAP[t]]},e.prototype={compiler:e,disassemble:function(){var t=this.opcodes,n,r,i=[],s,o,u;for(var a=0,f=t.length;a<f;a++){n=t[a];if(n==="DECLARE")o=t[++a],u=t[++a],i.push("DECLARE "+o+" = "+u);else{s=e.DISASSEMBLE_MAP[n];var l=e.multiParamSize(n),c=[];for(var h=0;h<l;h++)r=t[++a],typeof r=="string"&&(r='"'+r.replace("\n","\\n")+'"'),c.push(r);s=s+" "+c.join(" "),i.push(s)}}return i.join("\n")},guid:0,compile:function(e,t){this.children=[],this.depths={list:[]},this.options=t;var n=this.options.knownHelpers;this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0};if(n)for(var r in n)this.options.knownHelpers[r]=n[r];return this.program(e)},accept:function(e){return this[e.type](e)},program:function(e){var t=e.statements,n;this.opcodes=[];for(var r=0,i=t.length;r<i;r++)n=t[r],this[n.type](n);return this.isSimple=i===1,this.depths.list=this.depths.list.sort(function(e,t){return e-t}),this},compileProgram:function(e){var t=(new this.compiler).compile(e,this.options),n=this.guid++;this.usePartial=this.usePartial||t.usePartial,this.children[n]=t;for(var r=0,i=t.depths.list.length;r<i;r++){depth=t.depths.list[r];if(depth<2)continue;this.addDepth(depth-1)}return n},block:function(e){var t=e.mustache,n,r,i,s,o=this.setupStackForMustache(t),u=this.compileProgram(e.program);e.program.inverse&&(s=this.compileProgram(e.program.inverse),this.declare("inverse",s)),this.opcode("invokeProgram",u,o.length,!!t.hash),this.declare("inverse",null),this.opcode("append")},inverse:function(e){var t=this.setupStackForMustache(e.mustache),n=this.compileProgram(e.program);this.declare("inverse",n),this.opcode("invokeProgram",null,t.length,!!e.mustache.hash),this.declare("inverse",null),this.opcode("append")},hash:function(e){var t=e.pairs,n,r;this.opcode("push","{}");for(var i=0,s=t.length;i<s;i++)n=t[i],r=n[1],this.accept(r),this.opcode("assignToHash",n[0])},partial:function(e){var t=e.id;this.usePartial=!0,e.context?this.ID(e.context):this.opcode("push","depth0"),this.opcode("invokePartial",t.original),this.opcode("append")},content:function(e){this.opcode("appendContent",e.string)},mustache:function(e){var t=this.setupStackForMustache(e);this.opcode("invokeMustache",t.length,e.id.original,!!e.hash),e.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ID:function(e){this.addDepth(e.depth),this.opcode("getContext",e.depth),this.opcode("lookupWithHelpers",e.parts[0]||null,e.isScoped||!1);for(var t=1,n=e.parts.length;t<n;t++)this.opcode("lookup",e.parts[t])},STRING:function(e){this.opcode("pushString",e.string)},INTEGER:function(e){this.opcode("push",e.integer)},BOOLEAN:function(e){this.opcode("push",e.bool)},comment:function(){},pushParams:function(e){var t=e.length,n;while(t--)n=e[t],this.options.stringParams?(n.depth&&this.addDepth(n.depth),this.opcode("getContext",n.depth||0),this.opcode("pushStringParam",n.string)):this[n.type](n)},opcode:function(t,n,r,i){this.opcodes.push(e.OPCODE_MAP[t]),n!==undefined&&this.opcodes.push(n),r!==undefined&&this.opcodes.push(r),i!==undefined&&this.opcodes.push(i)},declare:function(e,t){this.opcodes.push("DECLARE"),this.opcodes.push(e),this.opcodes.push(t)},addDepth:function(e){if(e===0)return;this.depths[e]||(this.depths[e]=!0,this.depths.list.push(e))},setupStackForMustache:function(e){var t=e.params;return this.pushParams(t),e.hash&&this.hash(e.hash),this.ID(e.id),t}},t.prototype={nameLookup:function(e,n,r){return/^[0-9]+$/.test(n)?e+"["+n+"]":t.isValidJavaScriptVariableName(n)?e+"."+n:e+"['"+n+"']"},appendToBuffer:function(e){return this.environment.isSimple?"return "+e+";":"buffer += "+e+";"},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(e,t,n,r){this.environment=e,this.options=t||{},this.name=this.environment.name,this.isChild=!!n,this.context=n||{programs:[],aliases:{self:"this"},registers:{list:[]}},this.preamble(),this.stackSlot=0,this.stackVars=[],this.compileChildren(e,t);var i=e.opcodes,s;this.i=0;for(u=i.length;this.i<u;this.i++)s=this.nextOpcode(0),s[0]==="DECLARE"?(this.i=this.i+2,this[s[1]]=s[2]):(this.i=this.i+s[1].length,this[s[0]].apply(this,s[1]));return this.createFunctionContext(r)},nextOpcode:function(t){var n=this.environment.opcodes,r=n[this.i+t],i,s,o,u;if(r==="DECLARE")return i=n[this.i+1],s=n[this.i+2],["DECLARE",i,s];i=e.DISASSEMBLE_MAP[r],o=e.multiParamSize(r),u=[];for(var a=0;a<o;a++)u.push(n[this.i+a+1+t]);return[i,u]},eat:function(e){this.i=this.i+e.length},preamble:function(){var e=[];this.useRegister("foundHelper");if(!this.isChild){var t=this.namespace,n="helpers = helpers || "+t+".helpers;";this.environment.usePartial&&(n=n+" partials = partials || "+t+".partials;"),e.push(n)}else e.push("");this.environment.isSimple?e.push(""):e.push(", buffer = "+this.initializeBuffer()),this.lastContext=0,this.source=e},createFunctionContext:function(e){var t=this.stackVars;this.isChild||(t=t.concat(this.context.registers.list)),t.length>0&&(this.source[1]=this.source[1]+", "+t.join(", "));if(!this.isChild){var n=[];for(var r in this.context.aliases)this.source[1]=this.source[1]+", "+r+"="+this.context.aliases[r]}this.source[1]&&(this.source[1]="var "+this.source[1].substring(2)+";"),this.isChild||(this.source[1]+="\n"+this.context.programs.join("\n")+"\n"),this.environment.isSimple||this.source.push("return buffer;");var i=this.isChild?["depth0","data"]:["Handlebars","depth0","helpers","partials","data"];for(var s=0,o=this.environment.depths.list.length;s<o;s++)i.push("depth"+this.environment.depths.list[s]);if(e)return i.push(this.source.join("\n ")),Function.apply(this,i);var u="function "+(this.name||"")+"("+i.join(",")+") {\n "+this.source.join("\n ")+"}";return Handlebars.log(Handlebars.logger.DEBUG,u+"\n\n"),u},appendContent:function(e){this.source.push(this.appendToBuffer(this.quotedString(e)))},append:function(){var e=this.popStack();this.source.push("if("+e+" || "+e+" === 0) { "+this.appendToBuffer(e)+" }"),this.environment.isSimple&&this.source.push("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){var e=this.nextOpcode(1),t="";this.context.aliases.escapeExpression="this.escapeExpression",e[0]==="appendContent"&&(t=" + "+this.quotedString(e[1][0]),this.eat(e)),this.source.push(this.appendToBuffer("escapeExpression("+this.popStack()+")"+t))},getContext:function(e){this.lastContext!==e&&(this.lastContext=e)},lookupWithHelpers:function(e,t){if(e){var n=this.nextStack();this.usingKnownHelper=!1;var r;!t&&this.options.knownHelpers[e]?(r=n+" = "+this.nameLookup("helpers",e,"helper"),this.usingKnownHelper=!0):t||this.options.knownHelpersOnly?r=n+" = "+this.nameLookup("depth"+this.lastContext,e,"context"):(this.register("foundHelper",this.nameLookup("helpers",e,"helper")),r=n+" = foundHelper || "+this.nameLookup("depth"+this.lastContext,e,"context")),r+=";",this.source.push(r)}else this.pushStack("depth"+this.lastContext)},lookup:function(e){var t=this.topStack();this.source.push(t+" = ("+t+" === null || "+t+" === undefined || "+t+" === false ? "+t+" : "+this.nameLookup(t,e,"context")+");")},pushStringParam:function(e){this.pushStack("depth"+this.lastContext),this.pushString(e)},pushString:function(e){this.pushStack(this.quotedString(e))},push:function(e){this.pushStack(e)},invokeMustache:function(e,t,n){this.populateParams(e,this.quotedString(t),"{}",null,n,function(e,t,n){this.usingKnownHelper||(this.context.aliases.helperMissing="helpers.helperMissing",this.context.aliases.undef="void 0",this.source.push("else if("+n+"=== undef) { "+e+" = helperMissing.call("+t+"); }"),e!==n&&this.source.push("else { "+e+" = "+n+"; }"))})},invokeProgram:function(e,t,n){var r=this.programExpression(this.inverse),i=this.programExpression(e);this.populateParams(t,null,i,r,n,function(e,t,n){this.usingKnownHelper||(this.context.aliases.blockHelperMissing="helpers.blockHelperMissing",this.source.push("else { "+e+" = blockHelperMissing.call("+t+"); }"))})},populateParams:function(e,t,n,r,i,s){var o=i||this.options.stringParams||r||this.options.data,u=this.popStack(),a,f=[],l,c,h;o?(this.register("tmp1",n),h="tmp1"):h="{ hash: {} }";if(o){var p=i?this.popStack():"{}";this.source.push("tmp1.hash = "+p+";")}this.options.stringParams&&this.source.push("tmp1.contexts = [];");for(var d=0;d<e;d++)l=this.popStack(),f.push(l),this.options.stringParams&&this.source.push("tmp1.contexts.push("+this.popStack()+");");r&&(this.source.push("tmp1.fn = tmp1;"),this.source.push("tmp1.inverse = "+r+";")),this.options.data&&this.source.push("tmp1.data = data;"),f.push(h),this.populateCall(f,u,t||u,s,n!=="{}")},populateCall:function(e,t,n,r,i){var s=["depth0"].concat(e).join(", "),o=["depth0"].concat(n).concat(e).join(", "),u=this.nextStack();if(this.usingKnownHelper)this.source.push(u+" = "+t+".call("+s+");");else{this.context.aliases.functionType='"function"';var a=i?"foundHelper && ":"";this.source.push("if("+a+"typeof "+t+" === functionType) { "+u+" = "+t+".call("+s+"); }")}r.call(this,u,o,t),this.usingKnownHelper=!1},invokePartial:function(e){params=[this.nameLookup("partials",e,"partial"),"'"+e+"'",this.popStack(),"helpers","partials"],this.options.data&¶ms.push("data"),this.pushStack("self.invokePartial("+params.join(", ")+");")},assignToHash:function(e){var t=this.popStack(),n=this.topStack();this.source.push(n+"['"+e+"'] = "+t+";")},compiler:t,compileChildren:function(e,t){var n=e.children,r,i;for(var s=0,o=n.length;s<o;s++){r=n[s],i=new this.compiler,this.context.programs.push("");var u=this.context.programs.length;r.index=u,r.name="program"+u,this.context.programs[u]=i.compile(r,t,this.context)}},programExpression:function(e){if(e==null)return"self.noop";var t=this.environment.children[e],n=t.depths.list,r=[t.index,t.name,"data"];for(var i=0,s=n.length;i<s;i++)depth=n[i],depth===1?r.push("depth0"):r.push("depth"+(depth-1));return n.length===0?"self.program("+r.join(", ")+")":(r.shift(),"self.programWithDepth("+r.join(", ")+")")},register:function(e,t){this.useRegister(e),this.source.push(e+" = "+t+";")},useRegister:function(e){this.context.registers[e]||(this.context.registers[e]=!0,this.context.registers.list.push(e))},pushStack:function(e){return this.source.push(this.nextStack()+" = "+e+";"),"stack"+this.stackSlot},nextStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),"stack"+this.stackSlot},popStack:function(){return"stack"+this.stackSlot--},topStack:function(){return"stack"+this.stackSlot},quotedString:function(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r")+'"'}};var i="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "),s=t.RESERVED_WORDS={};for(var o=0,u=i.length;o<u;o++)s[i[o]]=!0;t.isValidJavaScriptVariableName=function(e){return!t.RESERVED_WORDS[e]&&/^[a-zA-Z_$][0-9a-zA-Z_$]+$/.test(e)?!0:!1}}(Handlebars.Compiler,Handlebars.JavaScriptCompiler),Handlebars.precompile=function(e,t){t=t||{};var n=Handlebars.parse(e),r=(new Handlebars.Compiler).compile(n,t);return(new Handlebars.JavaScriptCompiler).compile(r,t)},Handlebars.compile=function(e,t){function r(){var n=Handlebars.parse(e),r=(new Handlebars.Compiler).compile(n,t),i=(new Handlebars.JavaScriptCompiler).compile(r,t,undefined,!0);return Handlebars.template(i)}t=t||{};var n;return function(e,t){return n||(n=r()),n.call(this,e,t)}},Handlebars.VM={template:function(e){var t={escapeExpression:Handlebars.Utils.escapeExpression,invokePartial:Handlebars.VM.invokePartial,programs:[],program:function(e,t,n){var r=this.programs[e];return n?Handlebars.VM.program(t,n):r?r:(r=this.programs[e]=Handlebars.VM.program(t),r)},programWithDepth:Handlebars.VM.programWithDepth,noop:Handlebars.VM.noop};return function(n,r){return r=r||{},e.call(t,Handlebars,n,r.helpers,r.partials,r.data)}},programWithDepth:function(e,t,n){var r=Array.prototype.slice.call(arguments,2);return function(n,i){return i=i||{},e.apply(this,[n,i.data||t].concat(r))}},program:function(e,t){return function(n,r){return r=r||{},e(n,r.data||t)}},noop:function(){return""},invokePartial:function(e,t,n,r,i,s){options={helpers:r,partials:i,data:s};if(e===undefined)throw new Handlebars.Exception("The partial "+t+" could not be found");if(e instanceof Function)return e(n,options);if(!Handlebars.compile)throw new Handlebars.Exception("The partial "+t+" could not be compiled when running in runtime-only mode");return i[t]=Handlebars.compile(e),i[t](n,options)}},Handlebars.template=Handlebars.VM.template,function(e,t){function n(e,t){this._d=e,this._isUTC=!!t}function r(e){return e<0?Math.ceil(e):Math.floor(e)}function i(e){var t=this._data={},n=e.years||e.y||0,i=e.months||e.M||0,s=e.weeks||e.w||0,o=e.days||e.d||0,u=e.hours||e.h||0,a=e.minutes||e.m||0,f=e.seconds||e.s||0,l=e.milliseconds||e.ms||0;this._milliseconds=l+f*1e3+a*6e4+u*36e5,this._days=o+s*7,this._months=i+n*12,t.milliseconds=l%1e3,f+=r(l/1e3),t.seconds=f%60,a+=r(f/60),t.minutes=a%60,u+=r(a/60),t.hours=u%24,o+=r(u/24),o+=s*7,t.days=o%30,i+=r(o/30),t.months=i%12,n+=r(i/12),t.years=n}function s(e,t){var n=e+"";while(n.length<t)n="0"+n;return n}function o(e,t,n){var r=t._milliseconds,i=t._days,s=t._months,o;r&&e._d.setTime(+e+r*n),i&&e.date(e.date()+i*n),s&&(o=e.date(),e.date(1).month(e.month()+s*n).date(Math.min(o,e.daysInMonth())))}function u(e){return Object.prototype.toString.call(e)==="[object Array]"}function a(t){return new e(t[0],t[1]||0,t[2]||1,t[3]||0,t[4]||0,t[5]||0,t[6]||0)}function f(t,n){function r(n){var g,y;switch(n){case"M":return i+1;case"Mo":return i+1+v(i+1);case"MM":return s(i+1,2);case"MMM":return E.monthsShort[i];case"MMMM":return E.months[i];case"D":return o;case"Do":return o+v(o);case"DD":return s(o,2);case"DDD":return g=new e(u,i,o),y=new e(u,0,1),~~((g-y)/864e5+1.5);case"DDDo":return g=r("DDD"),g+v(g);case"DDDD":return s(r("DDD"),3);case"d":return a;case"do":return a+v(a);case"ddd":return E.weekdaysShort[a];case"dddd":return E.weekdays[a];case"w":return g=new e(u,i,o-a+5),y=new e(g.getFullYear(),0,4),~~((g-y)/864e5/7+1.5);case"wo":return g=r("w"),g+v(g);case"ww":return s(r("w"),2);case"YY":return s(u%100,2);case"YYYY":return u;case"a":return m?m(l,c,!1):l>11?"pm":"am";case"A":return m?m(l,c,!0):l>11?"PM":"AM";case"H":return l;case"HH":return s(l,2);case"h":return l%12||12;case"hh":return s(l%12||12,2);case"m":return c;case"mm":return s(c,2);case"s":return h;case"ss":return s(h,2);case"S":return~~(p/100);case"SS":return s(~~(p/10),2);case"SSS":return s(p,3);case"Z":return(d<0?"-":"+")+s(~~(Math.abs(d)/60),2)+":"+s(~~(Math.abs(d)%60),2);case"ZZ":return(d<0?"-":"+")+s(~~(10*Math.abs(d)/6),4);case"L":case"LL":case"LLL":case"LLLL":case"LT":return f(t,E.longDateFormat[n]);default:return n.replace(/(^\[)|(\\)|\]$/g,"")}}var i=t.month(),o=t.date(),u=t.year(),a=t.day(),l=t.hours(),c=t.minutes(),h=t.seconds(),p=t.milliseconds(),d=-t.zone(),v=E.ordinal,m=E.meridiem;return n.replace(O,r)}function l(e){switch(e){case"DDDD":return P;case"YYYY":return H;case"S":case"SS":case"SSS":case"DDD":return D;case"MMM":case"MMMM":case"ddd":case"dddd":case"a":case"A":return B;case"Z":case"ZZ":return j;case"T":return F;case"MM":case"DD":case"dd":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return _;default:return new RegExp(e.replace("\\",""))}}function c(e,t,n,r){var i;switch(e){case"M":case"MM":n[1]=t==null?0:~~t-1;break;case"MMM":case"MMMM":for(i=0;i<12;i++)if(E.monthsParse[i].test(t)){n[1]=i;break}break;case"D":case"DD":case"DDD":case"DDDD":n[2]=~~t;break;case"YY":t=~~t,n[0]=t+(t>70?1900:2e3);break;case"YYYY":n[0]=~~Math.abs(t);break;case"a":case"A":r.isPm=(t+"").toLowerCase()==="pm";break;case"H":case"HH":case"h":case"hh":n[3]=~~t;break;case"m":case"mm":n[4]=~~t;break;case"s":case"ss":n[5]=~~t;break;case"S":case"SS":case"SSS":n[6]=~~(("0."+t)*1e3);break;case"Z":case"ZZ":r.isUTC=!0,i=(t+"").match(U),i&&i[1]&&(r.tzh=~~i[1]),i&&i[2]&&(r.tzm=~~i[2]),i&&i[0]==="+"&&(r.tzh=-r.tzh,r.tzm=-r.tzm)}}function h(t,n){var r=[0,0,1,0,0,0,0],i={tzh:0,tzm:0},s=n.match(O),o,u;for(o=0;o<s.length;o++)u=(l(s[o]).exec(t)||[])[0],t=t.replace(l(s[o]),""),c(s[o],u,r,i);return i.isPm&&r[3]<12&&(r[3]+=12),i.isPm===!1&&r[3]===12&&(r[3]=0),r[3]+=i.tzh,r[4]+=i.tzm,i.isUTC?new e(e.UTC.apply({},r)):a(r)}function p(e,t){var n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),i=0,s;for(s=0;s<n;s++)~~e[s]!==~~t[s]&&i++;return i+r}function d(e,t){var r,i=e.match(M)||[],s,o=99,u,a,l;for(u=0;u<t.length;u++)a=h(e,t[u]),s=f(new n(a),t[u]).match(M)||[],l=p(i,s),l<o&&(o=l,r=a);return r}function v(t){var n="YYYY-MM-DDT",r;if(I.exec(t)){for(r=0;r<4;r++)if(R[r][1].exec(t)){n+=R[r][0];break}return j.exec(t)?h(t,n+" Z"):h(t,n)}return new e(t)}function m(e,t,n,r){var i=E.relativeTime[e];return typeof i=="function"?i(t||1,!!n,e,r):i.replace(/%d/i,t||1)}function g(e,t){var n=x(Math.abs(e)/1e3),r=x(n/60),i=x(r/60),s=x(i/24),o=x(s/365),u=n<45&&["s",n]||r===1&&["m"]||r<45&&["mm",r]||i===1&&["h"]||i<22&&["hh",i]||s===1&&["d"]||s<=25&&["dd",s]||s<=45&&["M"]||s<345&&["MM",x(s/30)]||o===1&&["y"]||["yy",o];return u[2]=t,u[3]=e>0,m.apply({},u)}function y(e,t){E.fn[e]=function(e){var n=this._isUTC?"UTC":"";return e!=null?(this._d["set"+n+t](e),this):this._d["get"+n+t]()}}function b(e){E.duration.fn[e]=function(){return this._data[e]}}function w(e,t){E.duration.fn["as"+e]=function(){return+this/t}}var E,S="1.6.2",x=Math.round,T,N={},C="en",k=typeof module!="undefined",L="months|monthsShort|monthsParse|weekdays|weekdaysShort|longDateFormat|calendar|relativeTime|ordinal|meridiem".split("|"),A=/^\/?Date\((\-?\d+)/i,O=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?|LT|LL?L?L?)/g,M=/([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,_=/\d\d?/,D=/\d{1,3}/,P=/\d{3}/,H=/\d{4}/,B=/[0-9a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+/i,j=/Z|[\+\-]\d\d:?\d\d/i,F=/T/i,I=/^\s*\d{4}-\d\d-\d\d(T(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,q="YYYY-MM-DDTHH:mm:ssZ",R=[["HH:mm:ss.S",/T\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/T\d\d:\d\d:\d\d/],["HH:mm",/T\d\d:\d\d/],["HH",/T\d\d/]],U=/([\+\-]|\d\d)/gi,z="Month|Date|Hours|Minutes|Seconds|Milliseconds".split("|"),W={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6};E=function(r,i){if(r===null||r==="")return null;var s,o,f;return E.isMoment(r)?(s=new e(+r._d),f=r._isUTC):i?u(i)?s=d(r,i):s=h(r,i):(o=A.exec(r),s=r===t?new e:o?new e(+o[1]):r instanceof e?r:u(r)?a(r):typeof r=="string"?v(r):new e(r)),new n(s,f)},E.utc=function(t,r){return u(t)?new n(new e(e.UTC.apply({},t)),!0):r&&t?E(t+" +0000",r+" Z").utc():E(t&&!j.exec(t)?t+"+0000":t).utc()},E.unix=function(e){return E(e*1e3)},E.duration=function(e,t){var n=E.isDuration(e),r=typeof e=="number",s=n?e._data:r?{}:e;return r&&(t?s[t]=e:s.milliseconds=e),new i(s)},E.humanizeDuration=function(e,t,n){return E.duration(e,t===!0?null:t).humanize(t===!0?!0:n)},E.version=S,E.defaultFormat=q,E.lang=function(e,t){var n,r,i=[];if(!e)return C;if(t){for(n=0;n<12;n++)i[n]=new RegExp("^"+t.months[n]+"|^"+t.monthsShort[n].replace(".",""),"i");t.monthsParse=t.monthsParse||i,N[e]=t}if(N[e]){for(n=0;n<L.length;n++)E[L[n]]=N[e][L[n]]||N.en[L[n]];C=e}else k&&(r=require("./lang/"+e),E.lang(e,r))},E.lang("en",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},meridiem:!1,calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(e){var t=e%10;return~~(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th"}}),E.isMoment=function(e){return e instanceof n},E.isDuration=function(e){return e instanceof i},E.fn=n.prototype={clone:function(){return E(this)},valueOf:function(){return+this._d},unix:function(){return Math.floor(+this._d/1e3)},toString:function(){return this._d.toString()},toDate:function(){return this._d},utc:function(){return this._isUTC=!0,this},local:function(){return this._isUTC=!1,this},format:function(e){return f(this,e?e:E.defaultFormat)},add:function(e,t){var n=t?E.duration(+t,e):E.duration(e);return o(this,n,1),this},subtract:function(e,t){var n=t?E.duration(+t,e):E.duration(e);return o(this,n,-1),this},diff:function(e,t,n){var r=this._isUTC?E(e).utc():E(e).local(),i=(this.zone()-r.zone())*6e4,s=this._d-r._d-i,o=this.year()-r.year(),u=this.month()-r.month(),a=this.date()-r.date(),f;return t==="months"?f=o*12+u+a/30:t==="years"?f=o+(u+a/30)/12:f=t==="seconds"?s/1e3:t==="minutes"?s/6e4:t==="hours"?s/36e5:t==="days"?s/864e5:t==="weeks"?s/6048e5:s,n?f:x(f)},from:function(e,t){return E.duration(this.diff(e)).humanize(!t)},fromNow:function(e){return this.from(E(),e)},calendar:function(){var e=this.diff(E().sod(),"days",!0),t=E.calendar,n=t.sameElse,r=e<-6?n:e<-1?t.lastWeek:e<0?t.lastDay:e<1?t.sameDay:e<2?t.nextDay:e<7?t.nextWeek:n;return this.format(typeof r=="function"?r.apply(this):r)},isLeapYear:function(){var e=this.year();return e%4===0&&e%100!==0||e%400===0},isDST:function(){return this.zone()<E([this.year()]).zone()||this.zone()<E([this.year(),5]).zone()},day:function(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return e==null?t:this.add({d:e-t})},sod:function(){return E(this).hours(0).minutes(0).seconds(0).milliseconds(0)},eod:function(){return this.sod().add({d:1,ms:-1})},zone:function(){return this._isUTC?0:this._d.getTimezoneOffset()},daysInMonth:function(){return E(this).month(this.month()+1).date(0).date()}};for(T=0;T<z.length;T++)y(z[T].toLowerCase(),z[T]);y("year","FullYear"),E.duration.fn=i.prototype={weeks:function(){return r(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months*2592e6},humanize:function(e){var t=+this,n=E.relativeTime,r=g(t,!e);return e&&(r=(t<=0?n.past:n.future).replace(/%s/i,r)),r}};for(T in W)W.hasOwnProperty(T)&&(w(T,W[T]),b(T.toLowerCase()));w("Weeks",6048e5),k&&(module.exports=E),typeof window!="undefined"&&typeof ender=="undefined"&&(window.moment=E),typeof define=="function"&&define.amd&&define("moment",[],function(){return E})}(Date),!function(e){"use strict";function n(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),r.call(t)},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),r.call(t)})}function r(e){this.$element.hide().trigger("hidden"),i.call(this)}function i(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(s,this)):s.call(this)):t&&t()}function s(){this.$backdrop.remove(),this.$backdrop=null}function o(){var t=this;this.isShown&&this.options.keyboard?e(document).on("keyup.dismiss.modal",function(e){e.which==27&&t.hide()}):this.isShown||e(document).off("keyup.dismiss.modal")}var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this))};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;e("body").addClass("modal-open"),this.isShown=!0,o.call(this),i.call(this,function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,isMobileView&&t.$element.css("top",window.pageYOffset+45+"px"),t.$element.addClass("in"),n?t.$element.one(e.support.transition.end,function(){t.$element.trigger("shown")}):t.$element.trigger("shown")})},hide:function(t){t&&t.preventDefault();var i=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,e("body").removeClass("modal-open"),o.call(this),this.$element.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?n.call(this):r.call(this)}},e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof +n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e(function(){e("body").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({},i.data(),n.data());t.preventDefault(),i.modal(s)})})}(window.jQuery),function(e,t,n){function r(e,n){var r=t.createElement(e||"div"),i;for(i in n)r[i]=n[i];return r}function i(e){for(var t=1,n=arguments.length;t<n;t++)e.appendChild(arguments[t]);return e}function s(e,t,n,r){var i=["opacity",t,~~(e*100),n,r].join("-"),s=.01+n/r*100,o=Math.max(1-(1-e)/t*(100-s),e),u=h.substring(0,h.indexOf("Animation")).toLowerCase(),a=u&&"-"+u+"-"||"";return c[i]||(p.insertRule("@"+a+"keyframes "+i+"{"+"0%{opacity:"+o+"}"+s+"%{opacity:"+e+"}"+(s+.01)+"%{opacity:1}"+(s+t)%100+"%{opacity:"+e+"}"+"100%{opacity:"+o+"}"+"}",0),c[i]=1),i}function o(e,t){var r=e.style,i,s;if(r[t]!==n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(s=0;s<l.length;s++){i=l[s]+t;if(r[i]!==n)return i}}function u(e,t){for(var n in t)e.style[o(e,n)||n]=t[n];return e}function a(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var i in r)e[i]===n&&(e[i]=r[i])}return e}function f(e){var t={x:e.offsetLeft,y:e.offsetTop};while(e=e.offsetParent)t.x+=e.offsetLeft,t.y+=e.offsetTop;return t}var l=["webkit","Moz","ms","O"],c={},h,p=function(){var e=r("style");return i(t.getElementsByTagName("head")[0],e),e.sheet||e.styleSheet}(),d={lines:12,length:7,width:5,radius:10,rotate:0,color:"#000",speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"auto",left:"auto"},v=function m(e){if(!this.spin)return new m(e);this.opts=a(e||{},m.defaults,d)};v.defaults={},a(v.prototype,{spin:function(e){this.stop();var t=this,n=t.opts,i=t.el=u(r(0,{className:n.className}),{position:"relative",zIndex:n.zIndex}),s=n.radius+n.length+n.width,o,a;e&&(e.insertBefore(i,e.firstChild||null),a=f(e),o=f(i),u(i,{left:(n.left=="auto"?a.x-o.x+(e.offsetWidth>>1):n.left+s)+"px",top:(n.top=="auto"?a.y-o.y+(e.offsetHeight>>1):n.top+s)+"px"})),i.setAttribute("aria-role","progressbar"),t.lines(i,t.opts);if(!h){var l=0,c=n.fps,p=c/n.speed,d=(1-n.opacity)/(p*n.trail/100),v=p/n.lines;!function m(){l++;for(var e=n.lines;e;e--){var r=Math.max(1-(l+e*v)%p*d,n.opacity);t.opacity(i,n.lines-e,r,n)}t.timeout=t.el&&setTimeout(m,~~(1e3/c))}()}return t},stop:function(){var e=this.el;return e&&(clearTimeout(this.timeout),e.parentNode&&e.parentNode.removeChild(e),this.el=n),this},lines:function(e,t){function n(e,n){return u(r(),{position:"absolute",width:t.length+t.width+"px",height:t.width+"px",background:e,boxShadow:n,transformOrigin:"left",transform:"rotate("+~~(360/t.lines*o+t.rotate)+"deg) translate("+t.radius+"px"+",0)",borderRadius:(t.width>>1)+"px"})}var o=0,a;for(;o<t.lines;o++)a=u(r(),{position:"absolute",top:1+~(t.width/2)+"px",transform:t.hwaccel?"translate3d(0,0,0)":"",opacity:t.opacity,animation:h&&s(t.opacity,t.trail,o,t.lines)+" "+1/t.speed+"s linear infinite"}),t.shadow&&i(a,u(n("#000","0 0 4px #000"),{top:"2px"})),i(e,i(a,n(t.color,"0 0 1px rgba(0,0,0,.1)")));return e},opacity:function(e,t,n){t<e.childNodes.length&&(e.childNodes[t].style.opacity=n)}}),!function(){function e(e,t){return r("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',t)}var t=u(r("group"),{behavior:"url(#default#VML)"});!o(t,"transform")&&t.adj?(p.addRule(".spin-vml","behavior:url(#default#VML)"),v.prototype.lines=function(t,n){function r(){return u(e("group",{coordsize:a+" "+a,coordorigin:-o+" "+ -o}),{width:a,height:a})}function s(t,s,a){i(l,i(u(r(),{rotation:360/n.lines*t+"deg",left:~~s}),i(u(e("roundrect",{arcsize:1}),{width:o,height:n.width,left:n.radius,top:-n.width>>1,filter:a}),e("fill",{color:n.color,opacity:n.opacity}),e("stroke",{opacity:0}))))}var o=n.length+n.width,a=2*o,f=-(n.width+n.length)*2+"px",l=u(r(),{position:"absolute",top:f,left:f}),c;if(n.shadow)for(c=1;c<=n.lines;c++)s(c,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(c=1;c<=n.lines;c++)s(c);return i(t,l)},v.prototype.opacity=function(e,t,n,r){var i=e.firstChild;r=r.shadow&&r.lines||0,i&&t+r<i.childNodes.length&&(i=i.childNodes[t+r],i=i&&i.firstChild,i=i&&i.firstChild,i&&(i.opacity=n))}):h=o(t,"animation")}(),e.Spinner=v}(window,document);var q=null;window.PR_SHOULD_USE_CONTINUATION=!0,function(){function e(e){function t(e){var t=e.charCodeAt(0);if(t!==92)return t;var n=e.charAt(1);return(t=c[n])?t:"0"<=n&&n<="7"?parseInt(e.substring(1),8):n==="u"||n==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function n(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);if(e==="\\"||e==="-"||e==="["||e==="]")e="\\"+e;return e}function r(e){for(var r=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],i=[],s=r[0]==="^",o=s?1:0,u=r.length;o<u;++o){var a=r[o];if(/\\[bdsw]/i.test(a))e.push(a);else{var a=t(a),f;o+2<u&&"-"===r[o+1]?(f=t(r[o+2]),o+=2):f=a,i.push([a,f]),f<65||a>122||(f<65||a>90||i.push([Math.max(65,a)|32,Math.min(f,90)|32]),f<97||a>122||i.push([Math.max(97,a)&-33,Math.min(f,122)&-33]))}}i.sort(function(e,t){return e[0]-t[0]||t[1]-e[1]}),r=[],a=[NaN,NaN];for(o=0;o<i.length;++o)u=i[o],u[0]<=a[1]+1?a[1]=Math.max(a[1],u[1]):r.push(a=u);i=["["],s&&i.push("^"),i.push.apply(i,e);for(o=0;o<r.length;++o)u=r[o],i.push(n(u[0])),u[1]>u[0]&&(u[1]+1>u[0]&&i.push("-"),i.push(n(u[1])));return i.push("]"),i.join("")}function i(e){for(var t=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),n=t.length,i=[],u=0,a=0;u<n;++u){var f=t[u];f==="("?++a:"\\"===f.charAt(0)&&(f=+f.substring(1))&&f<=a&&(i[f]=-1)}for(u=1;u<i.length;++u)-1===i[u]&&(i[u]=++s);for(a=u=0;u<n;++u)f=t[u],f==="("?(++a,i[a]===void 0&&(t[u]="(?:")):"\\"===f.charAt(0)&&(f=+f.substring(1))&&f<=a&&(t[u]="\\"+i[a]);for(a=u=0;u<n;++u)"^"===t[u]&&"^"!==t[u+1]&&(t[u]="");if(e.ignoreCase&&o)for(u=0;u<n;++u)f=t[u],e=f.charAt(0),f.length>=2&&e==="["?t[u]=r(f):e!=="\\"&&(t[u]=f.replace(/[A-Za-z]/g,function(e){return e=e.charCodeAt(0),"["+String.fromCharCode(e&-33,e|32)+"]"}));return t.join("")}for(var s=0,o=!1,u=!1,a=0,f=e.length;a<f;++a){var l=e[a];if(l.ignoreCase)u=!0;else if(/[a-z]/i.test(l.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){o=!0,u=!1;break}}for(var c={b:8,t:9,n:10,v:11,f:12,r:13},h=[],a=0,f=e.length;a<f;++a){l=e[a];if(l.global||l.multiline)throw Error(""+l);h.push("(?:"+i(l)+")")}return RegExp(h.join("|"),u?"gi":"g")}function t(e){function t(e){switch(e.nodeType){case 1:if(n.test(e.className))break;for(var u=e.firstChild;u;u=u.nextSibling)t(u);u=e.nodeName;if("BR"===u||"LI"===u)r[o]="\n",s[o<<1]=i++,s[o++<<1|1]=e;break;case 3:case 4:u=e.nodeValue,u.length&&(u=a?u.replace(/\r\n?/g,"\n"):u.replace(/[\t\n\r ]+/g," "),r[o]=u,s[o<<1]=i,i+=u.length,s[o++<<1|1]=e)}}var n=/(?:^|\s)nocode(?:\s|$)/,r=[],i=0,s=[],o=0,u;e.currentStyle?u=e.currentStyle.whiteSpace:window.getComputedStyle&&(u=document.defaultView.getComputedStyle(e,q).getPropertyValue("white-space"));var a=u&&"pre"===u.substring(0,3);return t(e),{a:r.join("").replace(/\n$/,""),c:s}}function n(e,t,n,r){t&&(e={a:t,d:e},n(e),r.push.apply(r,e.e))}function r(t,r){function i(e){for(var t=e.d,f=[t,"pln"],l=0,c=e.a.match(o)||[],h={},p=0,d=c.length;p<d;++p){var v=c[p],m=h[v],g=void 0,y;if(typeof m=="string")y=!1;else{var b=s[v.charAt(0)];if(b)g=v.match(b[1]),m=b[0];else{for(y=0;y<a;++y)if(b=r[y],g=v.match(b[1])){m=b[0];break}g||(m="pln")}(y=m.length>=5&&"lang-"===m.substring(0,5))&&(!g||typeof g[1]!="string")&&(y=!1,m="src"),y||(h[v]=m)}b=l,l+=v.length;if(y){y=g[1];var w=v.indexOf(y),E=w+y.length;g[2]&&(E=v.length-g[2].length,w=E-y.length),m=m.substring(5),n(t+b,v.substring(0,w),i,f),n(t+b+w,y,u(m,y),f),n(t+b+E,v.substring(E),i,f)}else f.push(t+b,m)}e.e=f}var s={},o;(function(){for(var n=t.concat(r),i=[],u={},a=0,f=n.length;a<f;++a){var l=n[a],c=l[3];if(c)for(var h=c.length;--h>=0;)s[c.charAt(h)]=l;l=l[1],c=""+l,u.hasOwnProperty(c)||(i.push(l),u[c]=q)}i.push(/[\S\s]/),o=e(i)})();var a=r.length;return i}function i(e){var t=[],n=[];e.tripleQuotedStrings?t.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):e.multiLineStrings?t.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):t.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]),e.verbatimStrings&&n.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var i=e.hashComments;return i&&(e.cStyleComments?(i>1?t.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):t.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),n.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):t.push(["com",/^#[^\n\r]*/,q,"#"])),e.cStyleComments&&(n.push(["com",/^\/\/[^\n\r]*/,q]),n.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q])),e.regexLiterals&&n.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]),(i=e.types)&&n.push(["typ",i]),e=(""+e.keywords).replace(/^ | $/g,""),e.length&&n.push(["kwd",RegExp("^(?:"+e.replace(/[\s,]+/g,"|")+")\\b"),q]),t.push(["pln",/^\s+/,q," \r\n "]),n.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]),r(t,n)}function s(e,t){function n(e){switch(e.nodeType){case 1:if(i.test(e.className))break;if("BR"===e.nodeName)r(e),e.parentNode&&e.parentNode.removeChild(e);else for(e=e.firstChild;e;e=e.nextSibling)n(e);break;case 3:case 4:if(a){var t=e.nodeValue,u=t.match(s);if(u){var f=t.substring(0,u.index);e.nodeValue=f,(t=t.substring(u.index+u[0].length))&&e.parentNode.insertBefore(o.createTextNode(t),e.nextSibling),r(e),f||e.parentNode.removeChild(e)}}}}function r(e){function t(e,n){var r=n?e.cloneNode(!1):e,i=e.parentNode;if(i){var i=t(i,1),s=e.nextSibling;i.appendChild(r);for(var o=s;o;o=s)s=o.nextSibling,i.appendChild(o)}return r}for(;!e.nextSibling;)if(e=e.parentNode,!e)return;for(var e=t(e.nextSibling,0),n;(n=e.parentNode)&&n.nodeType===1;)e=n;f.push(e)}var i=/(?:^|\s)nocode(?:\s|$)/,s=/\r\n?|\n/,o=e.ownerDocument,u;e.currentStyle?u=e.currentStyle.whiteSpace:window.getComputedStyle&&(u=o.defaultView.getComputedStyle(e,q).getPropertyValue("white-space"));var a=u&&"pre"===u.substring(0,3);for(u=o.createElement("LI");e.firstChild;)u.appendChild(e.firstChild);for(var f=[u],l=0;l<f.length;++l)n(f[l]);t===(t|0)&&f[0].setAttribute("value",t);var c=o.createElement("OL");c.className="linenums";for(var h=Math.max(0,t-1|0)||0,l=0,p=f.length;l<p;++l)u=f[l],u.className="L"+(l+h)%10,u.firstChild||u.appendChild(o.createTextNode(" ")),c.appendChild(u);e.appendChild(c)}function o(e,t){for(var n=t.length;--n>=0;){var r=t[n];b.hasOwnProperty(r)?window.console&&console.warn("cannot override language handler %s",r):b[r]=e}}function u(e,t){if(!e||!b.hasOwnProperty(e))e=/^\s*</.test(t)?"default-markup":"default-code";return b[e]}function a(e){var n=e.g;try{var r=t(e.h),i=r.a;e.a=i,e.c=r.c,e.d=0,u(n,i)(e);var s=/\bMSIE\b/.test(navigator.userAgent),n=/\n/g,o=e.a,a=o.length,r=0,f=e.c,l=f.length,i=0,c=e.e,h=c.length,e=0;c[h]=a;var p,d;for(d=p=0;d<h;)c[d]!==c[d+2]?(c[p++]=c[d++],c[p++]=c[d++]):d+=2;h=p;for(d=p=0;d<h;){for(var v=c[d],m=c[d+1],g=d+2;g+2<=h&&c[g+1]===m;)g+=2;c[p++]=v,c[p++]=m,d=g}for(c.length=p;i<l;){var y=f[i+2]||a,b=c[e+2]||a,g=Math.min(y,b),w=f[i+1],E;if(w.nodeType!==1&&(E=o.substring(r,g))){s&&(E=E.replace(n,"\r")),w.nodeValue=E;var S=w.ownerDocument,x=S.createElement("SPAN");x.className=c[e+1];var T=w.parentNode;T.replaceChild(x,w),x.appendChild(w),r<y&&(f[i+1]=w=S.createTextNode(o.substring(g,y)),T.insertBefore(w,x.nextSibling))}r=g,r>=y&&(i+=2),r>=b&&(e+=2)}}catch(N){"console"in window&&console.log(N&&N.stack?N.stack:N)}}var f=["break,continue,do,else,for,if,return,while"],l=[[f,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],c=[l,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],h=[l,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],p=[h,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],l=[l,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],d=[f,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],v=[f,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],f=[f,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],m=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,g=/\S/,y=i({keywords:[c,p,l,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+d,v,f],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),b={};o(y,["default-code"]),o(r([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),o(r([["pln",/^\s+/,q," \r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]),o(r([],[["atv",/^[\S\s]+/]]),["uq.val"]),o(i({keywords:c,hashComments:!0,cStyleComments:!0,types:m}),["c","cc","cpp","cxx","cyc","m"]),o(i({keywords:"null,true,false"}),["json"]),o(i({keywords:p,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:m}),["cs"]),o(i({keywords:h,cStyleComments:!0}),["java"]),o(i({keywords:f,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]),o(i({keywords:d,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]),o(i({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]),o(i({keywords:v,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]),o(i({keywords:l,cStyleComments:!0,regexLiterals:!0}),["js"]),o(i({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),o(r([],[["str",/^[\S\s]+/]]),["regex"]),window.prettyPrintOne=function(e,t,n){var r=document.createElement("PRE");return r.innerHTML=e,n&&s(r,n),a({g:t,i:n,h:r}),r.innerHTML},window.prettyPrint=function(e){function t(){for(var n=window.PR_SHOULD_USE_CONTINUATION?f.now()+250:Infinity;l<r.length&&f.now()<n;l++){var i=r[l],o=i.className;if(o.indexOf("prettyprint")>=0){var o=o.match(h),u,p;if(p=!o){p=i;for(var d=void 0,v=p.firstChild;v;v=v.nextSibling)var m=v.nodeType,d=m===1?d?p:v:m===3?g.test(v.nodeValue)?p:d:d;p=(u=d===p?void 0:d)&&"CODE"===u.tagName}p&&(o=u.className.match(h)),o&&(o=o[1]),p=!1;for(d=i.parentNode;d;d=d.parentNode)if((d.tagName==="pre"||d.tagName==="code"||d.tagName==="xmp")&&d.className&&d.className.indexOf("prettyprint")>=0){p=!0;break}p||((p=(p=i.className.match(/\blinenums\b(?::(\d+))?/))?p[1]&&p[1].length?+p[1]:!0:!1)&&s(i,p),c={g:o,h:i,i:p},a(c))}}l<r.length?setTimeout(t,250):e&&e()}for(var n=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],r=[],i=0;i<n.length;++i)for(var o=0,u=n[i].length;o<u;++o)r.push(n[i][o]);var n=q,f=Date;f.now||(f={now:function(){return+(new Date)}});var l=0,c,h=/\blang(?:uage)?-([\w.]+)(?!\S)/;t()},window.PR={createSimpleLexer:r,registerLangHandler:o,sourceDecorator:i,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}}(),require.config({baseUrl:"/static/",paths:{text:"js/libs/text",json:"js/libs/json"},waitSeconds:15});var spin_opts={lines:9,length:5,width:2,radius:4,rotate:9,color:"#4c4c4c",speed:1.5,trail:40,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2e9},isMobileView=!1,mediaQuery=window.matchMedia("(max-width:600px)");mediaQuery.matches&&(isMobileView=!0),$(function(){$("#mobile-nav-btn").click(function(){$(".main-section").toggleClass("nav-opened")})});
\ No newline at end of file diff --git a/syte/static/less/base.less b/syte/static/less/base.less new file mode 100644 index 0000000..b801e3f --- /dev/null +++ b/syte/static/less/base.less @@ -0,0 +1,68 @@ + +body { + font-family: Helvetica Neue, Helvetica, Arial, sans-serif; + font-size: 15px; + color: @text-color; +} + +::selection, ::-moz-selection { + background: @adjacent-color; + color: #fff; + text-shadow: none; +} + +h1, .h1 { font-size: 30px; line-height: 35px; font-weight: 500; } +h2, .h2 { font-size: 24px; line-height: 30px; font-weight: 500; } +h3, .h3 { font-size: 18px; line-height: 25px; font-weight: 500; } +h4, .h4 { font-size: 16px; line-height: 20px; font-weight: 500; } +h5, .h5 { font-size: 16px; line-height: 20px; font-weight: 500; } +h6, .h6 { font-size: 14px; line-height: 20px; font-weight: 500; } + +ul { margin: 0 0 15px 15px; } +ol { margin: 0 0 15px 20px;} +li { margin-bottom: 5px; + ul, ol { margin-bottom: 0; } +} + +dl { + margin-bottom: 10px; + dt { font-weight: bold; } + dd { margin: 0 0 5px 10px; } +} + +p { + line-height: 25px; + margin-top: 20px; + margin-bottom: 20px; +} + +a { + color: @link-color; + text-decoration: none; + border-bottom: 1px solid @text-color; + + &:hover { + color: @adjacent-color; + border-bottom: 1px solid @adjacent-color; + } + + &.no-border {border-bottom: 0;} +} + +blockquote { + margin-top: 20px 0; + padding: 0 0 0 20px; + border-left: 5px solid @adjacent-color; + + p:first-child { + margin-top: 5px; + } +} + +.descr { + display: block; + font-size: 12px; + line-height: 20px; + color: #7f7e7e; +} + diff --git a/syte/static/less/buttons.less b/syte/static/less/buttons.less new file mode 100644 index 0000000..67547d8 --- /dev/null +++ b/syte/static/less/buttons.less @@ -0,0 +1,27 @@ +//Button +.btn { + display: inline-block; + padding: 4px 10px 4px; + font-size: 13px; + line-height: 18px; + color: #333; + text-align: center; + text-shadow: 0 1px 1px rgba(255,255,255,.75); + vertical-align: middle; + cursor: pointer; + .gradient(#fff, darken(#fff, 10%)); + border: 1px solid #ccc; + border-bottom-color: darken(#ccc, 10%); + .border-radius(4px); + .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)"); +} + +.btn:hover { + color: #333; + text-decoration: none; + background-color: darken(#fff, 10%); + background-position: 0 -15px; + border-bottom-color: darken(#ccc, 10%); + + .transition(background-position .1s linear); +} diff --git a/syte/static/less/code.less b/syte/static/less/code.less new file mode 100644 index 0000000..7861274 --- /dev/null +++ b/syte/static/less/code.less @@ -0,0 +1,86 @@ + +code, pre { + padding: 0 3px 2px; + color: #333; + + .font-monospace(); + .border-radius(3px); +} + +// Inline code +code { + padding: 2px 4px; + color: @adjacent-color; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +.reset-code() { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} + +// Blocks of code +pre { + display: block; + padding: 8px; + margin: 0 0 9px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + + border: 1px solid #ccc; // IE8- + border: 1px solid rgba(0,0,0,.15); + .border-radius(4px); + + &.prettyprint { margin-bottom: 20px; } + + code { + .reset-code(); + } +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +blockquote code { + .reset-code(); +} + +//Pretty print +.com { color: #93a1a1; } +.lit { color: #195f91; } +.pun, .opn, .clo { color: #93a1a1; } +.fun { color: #dc322f; } +.str, .atv { color: #da3f47; } +.kwd, .linenums .tag { color: #1e347b; } +.typ, .atn, .dec, .var { color: teal; } +.pln { color: #48484c; } + +.prettyprint { + padding: 8px; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +.prettyprint.linenums { + @linenums-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; + .box-shadow(@linenums-shadow); +} + +ol.linenums { + margin: 0 0 0 33px; /* IE indents via margin-left */ + + li { + padding-left: 12px; + color: #bebec5; + line-height: 18px; + text-shadow: 0 1px 0 #fff; + } +} + diff --git a/syte/static/less/less-1.1.5.min.js b/syte/static/less/less-1.1.5.min.js new file mode 100755 index 0000000..49949fb --- /dev/null +++ b/syte/static/less/less-1.1.5.min.js @@ -0,0 +1,9 @@ +// +// LESS - Leaner CSS v1.1.5 +// http://lesscss.org +// +// Copyright (c) 2009-2011, Alexis Sellier +// Licensed under the Apache 2.0 License. +// +(function(a,b){function c(b){return a.less[b.split("/")[1]]}function l(){var a=document.getElementsByTagName("style");for(var b=0;b<a.length;b++)a[b].type.match(j)&&(new d.Parser).parse(a[b].innerHTML||"",function(c,d){var e=d.toCSS(),f=a[b];try{f.innerHTML=e}catch(g){f.styleSheets.cssText=e}f.type="text/css"})}function m(a,b){for(var c=0;c<d.sheets.length;c++)n(d.sheets[c],a,b,d.sheets.length-(c+1))}function n(b,c,e,f){var h=a.location.href.replace(/[#?].*$/,""),i=b.href.replace(/\?.*$/,""),j=g&&g.getItem(i),k=g&&g.getItem(i+":timestamp"),l={css:j,timestamp:k};/^(https?|file):/.test(i)||(i.charAt(0)=="/"?i=a.location.protocol+"//"+a.location.host+i:i=h.slice(0,h.lastIndexOf("/")+1)+i),q(b.href,b.type,function(a,g){if(!e&&l&&g&&(new Date(g)).valueOf()===(new Date(l.timestamp)).valueOf())p(l.css,b),c(null,b,{local:!0,remaining:f});else try{(new d.Parser({optimization:d.optimization,paths:[i.replace(/[\w\.-]+$/,"")],mime:b.type})).parse(a,function(a,d){if(a)return u(a,i);try{c(d,b,{local:!1,lastModified:g,remaining:f}),s(document.getElementById("less-error-message:"+o(i)))}catch(a){u(a,i)}})}catch(h){u(h,i)}},function(a,b){throw new Error("Couldn't load "+b+" ("+a+")")})}function o(a){return a.replace(/^[a-z]+:\/\/?[^\/]+/,"").replace(/^\//,"").replace(/\?.*$/,"").replace(/\.[^\.\/]+$/,"").replace(/[^\.\w-]+/g,"-").replace(/\./g,":")}function p(a,b,c){var d,e=b.href?b.href.replace(/\?.*$/,""):"",f="less:"+(b.title||o(e));(d=document.getElementById(f))===null&&(d=document.createElement("style"),d.type="text/css",d.media=b.media||"screen",d.id=f,document.getElementsByTagName("head")[0].appendChild(d));if(d.styleSheet)try{d.styleSheet.cssText=a}catch(h){throw new Error("Couldn't reassign styleSheet.cssText.")}else(function(a){d.childNodes.length>0?d.firstChild.nodeValue!==a.nodeValue&&d.replaceChild(a,d.firstChild):d.appendChild(a)})(document.createTextNode(a));c&&g&&(t("saving "+e+" to cache."),g.setItem(e,a),g.setItem(e+":timestamp",c))}function q(a,b,c,e){function i(b,c,d){b.status>=200&&b.status<300?c(b.responseText,b.getResponseHeader("Last-Modified")):typeof d=="function"&&d(b.status,a)}var g=r(),h=f?!1:d.async;typeof g.overrideMimeType=="function"&&g.overrideMimeType("text/css"),g.open("GET",a,h),g.setRequestHeader("Accept",b||"text/x-less, text/css; q=0.9, */*; q=0.5"),g.send(null),f?g.status===0?c(g.responseText):e(g.status,a):h?g.onreadystatechange=function(){g.readyState==4&&i(g,c,e)}:i(g,c,e)}function r(){if(a.XMLHttpRequest)return new XMLHttpRequest;try{return new ActiveXObject("MSXML2.XMLHTTP.3.0")}catch(b){return t("browser doesn't support AJAX."),null}}function s(a){return a&&a.parentNode.removeChild(a)}function t(a){d.env=="development"&&typeof console!="undefined"&&console.log("less: "+a)}function u(a,b){var c="less-error-message:"+o(b),e=["<ul>",'<li><label>[-1]</label><pre class="ctx">{0}</pre></li>',"<li><label>[0]</label><pre>{current}</pre></li>",'<li><label>[1]</label><pre class="ctx">{2}</pre></li>',"</ul>"].join("\n"),f=document.createElement("div"),g,h;f.id=c,f.className="less-error-message",h="<h3>"+(a.message||"There is an error in your .less file")+"</h3>"+'<p><a href="'+b+'">'+b+"</a> ",a.extract&&(h+="on line "+a.line+", column "+(a.column+1)+":</p>"+e.replace(/\[(-?\d)\]/g,function(b,c){return parseInt(a.line)+parseInt(c)||""}).replace(/\{(\d)\}/g,function(b,c){return a.extract[parseInt(c)]||""}).replace(/\{current\}/,a.extract[1].slice(0,a.column)+'<span class="error">'+a.extract[1].slice(a.column)+"</span>")),f.innerHTML=h,p([".less-error-message ul, .less-error-message li {","list-style-type: none;","margin-right: 15px;","padding: 4px 0;","margin: 0;","}",".less-error-message label {","font-size: 12px;","margin-right: 15px;","padding: 4px 0;","color: #cc7777;","}",".less-error-message pre {","color: #ee4444;","padding: 4px 0;","margin: 0;","display: inline-block;","}",".less-error-message pre.ctx {","color: #dd4444;","}",".less-error-message h3 {","font-size: 20px;","font-weight: bold;","padding: 15px 0 5px 0;","margin: 0;","}",".less-error-message a {","color: #10a","}",".less-error-message .error {","color: red;","font-weight: bold;","padding-bottom: 2px;","border-bottom: 1px dashed red;","}"].join("\n"),{title:"error-message"}),f.style.cssText=["font-family: Arial, sans-serif","border: 1px solid #e00","background-color: #eee","border-radius: 5px","-webkit-border-radius: 5px","-moz-border-radius: 5px","color: #e00","padding: 15px","margin-bottom: 15px"].join(";"),d.env=="development"&&(g=setInterval(function(){document.body&&(document.getElementById(c)?document.body.replaceChild(f,document.getElementById(c)):document.body.insertBefore(f,document.body.firstChild),clearInterval(g))},10))}Array.isArray||(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"||a instanceof Array}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c=this.length>>>0;for(var d=0;d<c;d++)d in this&&a.call(b,this[d],d,this)}),Array.prototype.map||(Array.prototype.map=function(a){var b=this.length>>>0,c=new Array(b),d=arguments[1];for(var e=0;e<b;e++)e in this&&(c[e]=a.call(d,this[e],e,this));return c}),Array.prototype.filter||(Array.prototype.filter=function(a){var b=[],c=arguments[1];for(var d=0;d<this.length;d++)a.call(c,this[d])&&b.push(this[d]);return b}),Array.prototype.reduce||(Array.prototype.reduce=function(a){var b=this.length>>>0,c=0;if(b===0&&arguments.length===1)throw new TypeError;if(arguments.length>=2)var d=arguments[1];else do{if(c in this){d=this[c++];break}if(++c>=b)throw new TypeError}while(!0);for(;c<b;c++)c in this&&(d=a.call(null,d,this[c],c,this));return d}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length,c=arguments[1]||0;if(!b)return-1;if(c>=b)return-1;c<0&&(c+=b);for(;c<b;c++){if(!Object.prototype.hasOwnProperty.call(this,c))continue;if(a===this[c])return c}return-1}),Object.keys||(Object.keys=function(a){var b=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b}),String.prototype.trim||(String.prototype.trim=function(){return String(this).replace(/^\s\s*/,"").replace(/\s\s*$/,"")});var d,e;typeof environment=="object"&&{}.toString.call(environment)==="[object Environment]"?(d={},e=d.tree={},d.mode="rhino"):typeof a=="undefined"?(d=exports,e=c("./tree"),d.mode="node"):(typeof a.less=="undefined"&&(a.less={}),d=a.less,e=a.less.tree={},d.mode="browser"),d.Parser=function(a){function p(){g=j[f],h=c,k=c}function q(){j[f]=g,c=h,k=c}function r(){c>k&&(j[f]=j[f].slice(c-k),k=c)}function s(a){var d,e,g,h,i,m,n,o;if(a instanceof Function)return a.call(l.parsers);if(typeof a=="string")d=b.charAt(c)===a?a:null,g=1,r();else{r();if(d=a.exec(j[f]))g=d[0].length;else return null}if(d){o=c+=g,m=c+j[f].length-g;while(c<m){h=b.charCodeAt(c);if(h!==32&&h!==10&&h!==9)break;c++}return j[f]=j[f].slice(g+(c-o)),k=c,j[f].length===0&&f<j.length-1&&f++,typeof d=="string"?d:d.length===1?d[0]:d}}function t(a){return typeof a=="string"?b.charAt(c)===a:a.test(j[f])?!0:!1}var b,c,f,g,h,i,j,k,l,m=this,n=function(){},o=this.imports={paths:a&&a.paths||[],queue:[],files:{},mime:a&&a.mime,push:function(b,c){var e=this;this.queue.push(b),d.Parser.importer(b,this.paths,function(a){e.queue.splice(e.queue.indexOf(b),1),e.files[b]=a,c(a),e.queue.length===0&&n()},a)}};return this.env=a=a||{},this.optimization="optimization"in this.env?this.env.optimization:1,this.env.filename=this.env.filename||null,l={imports:o,parse:function(d,g){var h,l,m,o,p,q,r=[],t,u=null;c=f=k=i=0,j=[],b=d.replace(/\r\n/g,"\n"),j=function(c){var d=0,e=/[^"'`\{\}\/\(\)]+/g,f=/\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,g=0,h,i=c[0],j,k;for(var l=0,m,n;l<b.length;l++){e.lastIndex=l,(h=e.exec(b))&&h.index===l&&(l+=h[0].length,i.push(h[0])),m=b.charAt(l),f.lastIndex=l,!k&&!j&&m==="/"&&(n=b.charAt(l+1),(n==="/"||n==="*")&&(h=f.exec(b))&&h.index===l&&(l+=h[0].length,i.push(h[0]),m=b.charAt(l)));if(m==="{"&&!k&&!j)g++,i.push(m);else if(m==="}"&&!k&&!j)g--,i.push(m),c[++d]=i=[];else if(m==="("&&!k&&!j)i.push(m),j=!0;else if(m===")"&&!k&&j)i.push(m),j=!1;else{if(m==='"'||m==="'"||m==="`")k?k=k===m?!1:k:k=m;i.push(m)}}if(g>0)throw{type:"Syntax",message:"Missing closing `}`",filename:a.filename};return c.map(function(a){return a.join("")})}([[]]),h=new e.Ruleset([],s(this.parsers.primary)),h.root=!0,h.toCSS=function(c){var d,f,g;return function(g,h){function n(a){return a?(b.slice(0,a).match(/\n/g)||"").length:null}var i=[];g=g||{},typeof h=="object"&&!Array.isArray(h)&&(h=Object.keys(h).map(function(a){var b=h[a];return b instanceof e.Value||(b instanceof e.Expression||(b=new e.Expression([b])),b=new e.Value([b])),new e.Rule("@"+a,b,!1,0)}),i=[new e.Ruleset(null,h)]);try{var j=c.call(this,{frames:i}).toCSS([],{compress:g.compress||!1})}catch(k){f=b.split("\n"),d=n(k.index);for(var l=k.index,m=-1;l>=0&&b.charAt(l)!=="\n";l--)m++;throw{type:k.type,message:k.message,filename:a.filename,index:k.index,line:typeof d=="number"?d+1:null,callLine:k.call&&n(k.call)+1,callExtract:f[n(k.call)],stack:k.stack,column:m,extract:[f[d-1],f[d],f[d+1]]}}return g.compress?j.replace(/(\s)+/g,"$1"):j}}(h.eval);if(c<b.length-1){c=i,q=b.split("\n"),p=(b.slice(0,c).match(/\n/g)||"").length+1;for(var v=c,w=-1;v>=0&&b.charAt(v)!=="\n";v--)w++;u={name:"ParseError",message:"Syntax Error on line "+p,index:c,filename:a.filename,line:p,column:w,extract:[q[p-2],q[p-1],q[p]]}}this.imports.queue.length>0?n=function(){g(u,h)}:g(u,h)},parsers:{primary:function(){var a,b=[];while((a=s(this.mixin.definition)||s(this.rule)||s(this.ruleset)||s(this.mixin.call)||s(this.comment)||s(this.directive))||s(/^[\s\n]+/))a&&b.push(a);return b},comment:function(){var a;if(b.charAt(c)!=="/")return;if(b.charAt(c+1)==="/")return new e.Comment(s(/^\/\/.*/),!0);if(a=s(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/))return new e.Comment(a)},entities:{quoted:function(){var a,d=c,f;b.charAt(d)==="~"&&(d++,f=!0);if(b.charAt(d)!=='"'&&b.charAt(d)!=="'")return;f&&s("~");if(a=s(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/))return new e.Quoted(a[0],a[1]||a[2],f)},keyword:function(){var a;if(a=s(/^[_A-Za-z-][_A-Za-z0-9-]*/))return new e.Keyword(a)},call:function(){var a,b,d=c;if(!(a=/^([\w-]+|%)\(/.exec(j[f])))return;a=a[1].toLowerCase();if(a==="url")return null;c+=a.length;if(a==="alpha")return s(this.alpha);s("("),b=s(this.entities.arguments);if(!s(")"))return;if(a)return new e.Call(a,b,d)},arguments:function(){var a=[],b;while(b=s(this.expression)){a.push(b);if(!s(","))break}return a},literal:function(){return s(this.entities.dimension)||s(this.entities.color)||s(this.entities.quoted)},url:function(){var a;if(b.charAt(c)!=="u"||!s(/^url\(/))return;a=s(this.entities.quoted)||s(this.entities.variable)||s(this.entities.dataURI)||s(/^[-\w%@$\/.&=:;#+?~]+/)||"";if(!s(")"))throw new Error("missing closing ) for url()");return new e.URL(a.value||a.data||a instanceof e.Variable?a:new e.Anonymous(a),o.paths)},dataURI:function(){var a;if(s(/^data:/)){a={},a.mime=s(/^[^\/]+\/[^,;)]+/)||"",a.charset=s(/^;\s*charset=[^,;)]+/)||"",a.base64=s(/^;\s*base64/)||"",a.data=s(/^,\s*[^)]+/);if(a.data)return a}},variable:function(){var a,d=c;if(b.charAt(c)==="@"&&(a=s(/^@@?[\w-]+/)))return new e.Variable(a,d)},color:function(){var a;if(b.charAt(c)==="#"&&(a=s(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/)))return new e.Color(a[1])},dimension:function(){var a,d=b.charCodeAt(c);if(d>57||d<45||d===47)return;if(a=s(/^(-?\d*\.?\d+)(px|%|em|pc|ex|in|deg|s|ms|pt|cm|mm|rad|grad|turn)?/))return new e.Dimension(a[1],a[2])},javascript:function(){var a,d=c,f;b.charAt(d)==="~"&&(d++,f=!0);if(b.charAt(d)!=="`")return;f&&s("~");if(a=s(/^`([^`]*)`/))return new e.JavaScript(a[1],c,f)}},variable:function(){var a;if(b.charAt(c)==="@"&&(a=s(/^(@[\w-]+)\s*:/)))return a[1]},shorthand:function(){var a,b;if(!t(/^[@\w.%-]+\/[@\w.-]+/))return;if((a=s(this.entity))&&s("/")&&(b=s(this.entity)))return new e.Shorthand(a,b)},mixin:{call:function(){var a=[],d,f,g,h=c,i=b.charAt(c);if(i!=="."&&i!=="#")return;while(d=s(/^[#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/))a.push(new e.Element(f,d,c)),f=s(">");s("(")&&(g=s(this.entities.arguments))&&s(")");if(a.length>0&&(s(";")||t("}")))return new e.mixin.Call(a,g,h)},definition:function(){var a,d=[],f,g,h,i;if(b.charAt(c)!=="."&&b.charAt(c)!=="#"||t(/^[^{]*(;|})/))return;if(f=s(/^([#.](?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+)\s*\(/)){a=f[1];while(h=s(this.entities.variable)||s(this.entities.literal)||s(this.entities.keyword)){if(h instanceof e.Variable)if(s(":"))if(i=s(this.expression))d.push({name:h.name,value:i});else throw new Error("Expected value");else d.push({name:h.name});else d.push({value:h});if(!s(","))break}if(!s(")"))throw new Error("Expected )");g=s(this.block);if(g)return new e.mixin.Definition(a,d,g)}}},entity:function(){return s(this.entities.literal)||s(this.entities.variable)||s(this.entities.url)||s(this.entities.call)||s(this.entities.keyword)||s(this.entities.javascript)||s(this.comment)},end:function(){return s(";")||t("}")},alpha:function(){var a;if(!s(/^\(opacity=/i))return;if(a=s(/^\d+/)||s(this.entities.variable)){if(!s(")"))throw new Error("missing closing ) for alpha()");return new e.Alpha(a)}},element:function(){var a,b,d;d=s(this.combinator),a=s(/^(?:\d+\.\d+|\d+)%/)||s(/^(?:[.#]?|:*)(?:[\w-]|\\(?:[a-fA-F0-9]{1,6} ?|[^a-fA-F0-9]))+/)||s("*")||s(this.attribute)||s(/^\([^)@]+\)/);if(a)return new e.Element(d,a,c);if(d.value&&d.value.charAt(0)==="&")return new e.Element(d,null,c)},combinator:function(){var a,d=b.charAt(c);if(d===">"||d==="+"||d==="~"){c++;while(b.charAt(c)===" ")c++;return new e.Combinator(d)}if(d==="&"){a="&",c++,b.charAt(c)===" "&&(a="& ");while(b.charAt(c)===" ")c++;return new e.Combinator(a)}if(d===":"&&b.charAt(c+1)===":"){c+=2;while(b.charAt(c)===" ")c++;return new e.Combinator("::")}return b.charAt(c-1)===" "?new e.Combinator(" "):new e.Combinator(null)},selector:function(){var a,d,f=[],g,h;while(d=s(this.element)){g=b.charAt(c),f.push(d);if(g==="{"||g==="}"||g===";"||g===",")break}if(f.length>0)return new e.Selector(f)},tag:function(){return s(/^[a-zA-Z][a-zA-Z-]*[0-9]?/)||s("*")},attribute:function(){var a="",b,c,d;if(!s("["))return;if(b=s(/^[a-zA-Z-]+/)||s(this.entities.quoted))(d=s(/^[|~*$^]?=/))&&(c=s(this.entities.quoted)||s(/^[\w-]+/))?a=[b,d,c.toCSS?c.toCSS():c].join(""):a=b;if(!s("]"))return;if(a)return"["+a+"]"},block:function(){var a;if(s("{")&&(a=s(this.primary))&&s("}"))return a},ruleset:function(){var a=[],b,d,f;p();while(b=s(this.selector)){a.push(b),s(this.comment);if(!s(","))break;s(this.comment)}if(a.length>0&&(d=s(this.block)))return new e.Ruleset(a,d);i=c,q()},rule:function(){var a,d,g=b.charAt(c),k,l;p();if(g==="."||g==="#"||g==="&")return;if(a=s(this.variable)||s(this.property)){a.charAt(0)!="@"&&(l=/^([^@+\/'"*`(;{}-]*);/.exec(j[f]))?(c+=l[0].length-1,d=new e.Anonymous(l[1])):a==="font"?d=s(this.font):d=s(this.value),k=s(this.important);if(d&&s(this.end))return new e.Rule(a,d,k,h);i=c,q()}},"import":function(){var a;if(s(/^@import\s+/)&&(a=s(this.entities.quoted)||s(this.entities.url))&&s(";"))return new e.Import(a,o)},directive:function(){var a,d,f,g;if(b.charAt(c)!=="@")return;if(d=s(this["import"]))return d;if(a=s(/^@media|@page/)||s(/^@(?:-webkit-|-moz-)?keyframes/)){g=(s(/^[^{]+/)||"").trim();if(f=s(this.block))return new e.Directive(a+" "+g,f)}else if(a=s(/^@[-a-z]+/))if(a==="@font-face"){if(f=s(this.block))return new e.Directive(a,f)}else if((d=s(this.entity))&&s(";"))return new e.Directive(a,d)},font:function(){var a=[],b=[],c,d,f,g;while(g=s(this.shorthand)||s(this.entity))b.push(g);a.push(new e.Expression(b));if(s(","))while(g=s(this.expression)){a.push(g);if(!s(","))break}return new e.Value(a)},value:function(){var a,b=[],c;while(a=s(this.expression)){b.push(a);if(!s(","))break}if(b.length>0)return new e.Value(b)},important:function(){if(b.charAt(c)==="!")return s(/^! *important/)},sub:function(){var a;if(s("(")&&(a=s(this.expression))&&s(")"))return a},multiplication:function(){var a,b,c,d;if(a=s(this.operand)){while((c=s("/")||s("*"))&&(b=s(this.operand)))d=new e.Operation(c,[d||a,b]);return d||a}},addition:function(){var a,d,f,g;if(a=s(this.multiplication)){while((f=s(/^[-+]\s+/)||b.charAt(c-1)!=" "&&(s("+")||s("-")))&&(d=s(this.multiplication)))g=new e.Operation(f,[g||a,d]);return g||a}},operand:function(){var a,d=b.charAt(c+1);b.charAt(c)==="-"&&(d==="@"||d==="(")&&(a=s("-"));var f=s(this.sub)||s(this.entities.dimension)||s(this.entities.color)||s(this.entities.variable)||s(this.entities.call);return a?new e.Operation("*",[new e.Dimension(-1),f]):f},expression:function(){var a,b,c=[],d;while(a=s(this.addition)||s(this.entity))c.push(a);if(c.length>0)return new e.Expression(c)},property:function(){var a;if(a=s(/^(\*?-?[-a-z_0-9]+)\s*:/))return a[1]}}}};if(d.mode==="browser"||d.mode==="rhino")d.Parser.importer=function(a,b,c,d){a.charAt(0)!=="/"&&b.length>0&&(a=b[0]+a),n({href:a,title:a,type:d.mime},c,!0)};(function(a){function b(b){return a.functions.hsla(b.h,b.s,b.l,b.a)}function c(b){if(b instanceof a.Dimension)return parseFloat(b.unit=="%"?b.value/100:b.value);if(typeof b=="number")return b;throw{error:"RuntimeError",message:"color functions take numbers as parameters"}}function d(a){return Math.min(1,Math.max(0,a))}a.functions={rgb:function(a,b,c){return this.rgba(a,b,c,1)},rgba:function(b,d,e,f){var g=[b,d,e].map(function(a){return c(a)}),f=c(f);return new a.Color(g,f)},hsl:function(a,b,c){return this.hsla(a,b,c,1)},hsla:function(a,b,d,e){function h(a){return a=a<0?a+1:a>1?a-1:a,a*6<1?g+(f-g)*a*6:a*2<1?f:a*3<2?g+(f-g)*(2/3-a)*6:g}a=c(a)%360/360,b=c(b),d=c(d),e=c(e);var f=d<=.5?d*(b+1):d+b-d*b,g=d*2-f;return this.rgba(h(a+1/3)*255,h(a)*255,h(a-1/3)*255,e)},hue:function(b){return new a.Dimension(Math.round(b.toHSL().h))},saturation:function(b){return new a.Dimension(Math.round(b.toHSL().s*100),"%")},lightness:function(b){return new a.Dimension(Math.round(b.toHSL().l*100),"%")},alpha:function(b){return new a.Dimension(b.toHSL().a)},saturate:function(a,c){var e=a.toHSL();return e.s+=c.value/100,e.s=d(e.s),b(e)},desaturate:function(a,c){var e=a.toHSL();return e.s-=c.value/100,e.s=d(e.s),b(e)},lighten:function(a,c){var e=a.toHSL();return e.l+=c.value/100,e.l=d(e.l),b(e)},darken:function(a,c){var e=a.toHSL();return e.l-=c.value/100,e.l=d(e.l),b(e)},fadein:function(a,c){var e=a.toHSL();return e.a+=c.value/100,e.a=d(e.a),b(e)},fadeout:function(a,c){var e=a.toHSL();return e.a-=c.value/100,e.a=d(e.a),b(e)},fade:function(a,c){var e=a.toHSL();return e.a=c.value/100,e.a=d(e.a),b(e)},spin:function(a,c){var d=a.toHSL(),e=(d.h+c.value)%360;return d.h=e<0?360+e:e,b(d)},mix:function(b,c,d){var e=d.value/100,f=e*2-1,g=b.toHSL().a-c.toHSL().a,h=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,i=1-h,j=[b.rgb[0]*h+c.rgb[0]*i,b.rgb[1]*h+c.rgb[1]*i,b.rgb[2]*h+c.rgb[2]*i],k=b.alpha*e+c.alpha*(1-e);return new a.Color(j,k)},greyscale:function(b){return this.desaturate(b,new a.Dimension(100))},e:function(b){return new a.Anonymous(b instanceof a.JavaScript?b.evaluated:b)},escape:function(b){return new a.Anonymous(encodeURI(b.value).replace(/=/g,"%3D").replace(/:/g,"%3A").replace(/#/g,"%23").replace(/;/g,"%3B").replace(/\(/g,"%28").replace(/\)/g,"%29"))},"%":function(b){var c=Array.prototype.slice.call(arguments,1),d=b.value;for(var e=0;e<c.length;e++)d=d.replace(/%[sda]/i,function(a){var b=a.match(/s/i)?c[e].value:c[e].toCSS();return a.match(/[A-Z]$/)?encodeURIComponent(b):b});return d=d.replace(/%%/g,"%"),new a.Quoted('"'+d+'"',d)},round:function(b){if(b instanceof a.Dimension)return new a.Dimension(Math.round(c(b)),b.unit);if(typeof b=="number")return Math.round(b);throw{error:"RuntimeError",message:"math functions take numbers as parameters"}},argb:function(b){return new a.Anonymous(b.toARGB())}}})(c("./tree")),function(a){a.Alpha=function(a){this.value=a},a.Alpha.prototype={toCSS:function(){return"alpha(opacity="+(this.value.toCSS?this.value.toCSS():this.value)+")"},eval:function(a){return this.value.eval&&(this.value=this.value.eval(a)),this}}}(c("../tree")),function(a){a.Anonymous=function(a){this.value=a.value||a},a.Anonymous.prototype={toCSS:function(){return this.value},eval:function(){return this}}}(c("../tree")),function(a){a.Call=function(a,b,c){this.name=a,this.args=b,this.index=c},a.Call.prototype={eval:function(b){var c=this.args.map(function(a){return a.eval(b)});if(!(this.name in a.functions))return new a.Anonymous(this.name+"("+c.map(function(a){return a.toCSS()}).join(", ")+")");try{return a.functions[this.name].apply(a.functions,c)}catch(d){throw{message:"error evaluating function `"+this.name+"`",index:this.index}}},toCSS:function(a){return this.eval(a).toCSS()}}}(c("../tree")),function(a){a.Color=function(a,b){Array.isArray(a)?this.rgb=a:a.length==6?this.rgb=a.match(/.{2}/g).map(function(a){return parseInt(a,16)}):this.rgb=a.split("").map(function(a){return parseInt(a+a,16)}),this.alpha=typeof b=="number"?b:1},a.Color.prototype={eval:function(){return this},toCSS:function(){return this.alpha<1?"rgba("+this.rgb.map(function(a){return Math.round(a)}).concat(this.alpha).join(", ")+")":"#"+this.rgb.map(function(a){return a=Math.round(a),a=(a>255?255:a<0?0:a).toString(16),a.length===1?"0"+a:a}).join("")},operate:function(b,c){var d=[];c instanceof a.Color||(c=c.toColor());for(var e=0;e<3;e++)d[e]=a.operate(b,this.rgb[e],c.rgb[e]);return new a.Color(d,this.alpha+c.alpha)},toHSL:function(){var a=this.rgb[0]/255,b=this.rgb[1]/255,c=this.rgb[2]/255,d=this.alpha,e=Math.max(a,b,c),f=Math.min(a,b,c),g,h,i=(e+f)/2,j=e-f;if(e===f)g=h=0;else{h=i>.5?j/(2-e-f):j/(e+f);switch(e){case a:g=(b-c)/j+(b<c?6:0);break;case b:g=(c-a)/j+2;break;case c:g=(a-b)/j+4}g/=6}return{h:g*360,s:h,l:i,a:d}},toARGB:function(){var a=[Math.round(this.alpha*255)].concat(this.rgb);return"#"+a.map(function(a){return a=Math.round(a),a=(a>255?255:a<0?0:a).toString(16),a.length===1?"0"+a:a}).join("")}}}(c("../tree")),function(a){a.Comment=function(a,b){this.value=a,this.silent=!!b},a.Comment.prototype={toCSS:function(a){return a.compress?"":this.value},eval:function(){return this}}}(c("../tree")),function(a){a.Dimension=function(a,b){this.value=parseFloat(a),this.unit=b||null},a.Dimension.prototype={eval:function(){return this},toColor:function(){return new a.Color([this.value,this.value,this.value])},toCSS:function(){var a=this.value+this.unit;return a},operate:function(b,c){return new a.Dimension(a.operate(b,this.value,c.value),this.unit||c.unit)}}}(c("../tree")),function(a){a.Directive=function(b,c){this.name=b,Array.isArray(c)?this.ruleset=new a.Ruleset([],c):this.value=c},a.Directive.prototype={toCSS:function(a,b){return this.ruleset?(this.ruleset.root=!0,this.name+(b.compress?"{":" {\n ")+this.ruleset.toCSS(a,b).trim().replace(/\n/g,"\n ")+(b.compress?"}":"\n}\n")):this.name+" "+this.value.toCSS()+";\n"},eval:function(a){return a.frames.unshift(this),this.ruleset=this.ruleset&&this.ruleset.eval(a),a.frames.shift(),this},variable:function(b){return a.Ruleset.prototype.variable.call(this.ruleset,b)},find:function(){return a.Ruleset.prototype.find.apply(this.ruleset,arguments)},rulesets:function(){return a.Ruleset.prototype.rulesets.apply(this.ruleset)}}}(c("../tree")),function(a){a.Element=function(b,c,d){this.combinator=b instanceof a.Combinator?b:new a.Combinator(b),this.value=c?c.trim():"",this.index=d},a.Element.prototype.toCSS=function(a){return this.combinator.toCSS(a||{})+this.value},a.Combinator=function(a){a===" "?this.value=" ":a==="& "?this.value="& ":this.value=a?a.trim():""},a.Combinator.prototype.toCSS=function(a){return{"":""," ":" ","&":"","& ":" ",":":" :","::":"::","+":a.compress?"+":" + ","~":a.compress?"~":" ~ ",">":a.compress?">":" > "}[this.value]}}(c("../tree")),function(a){a.Expression=function(a){this.value=a},a.Expression.prototype={eval:function(b){return this.value.length>1?new a.Expression(this.value.map(function(a){return a.eval(b)})):this.value.length===1?this.value[0].eval(b):this},toCSS:function(a){return this.value.map(function(b){return b.toCSS(a)}).join(" ")}}}(c("../tree")),function(a){a.Import=function(b,c){var d=this;this._path=b,b instanceof a.Quoted?this.path=/\.(le?|c)ss(\?.*)?$/.test(b.value)?b.value:b.value+".less":this.path=b.value.value||b.value,this.css=/css(\?.*)?$/.test(this.path),this.css||c.push(this.path,function(a){if(!a)throw new Error("Error parsing "+d.path);d.root=a})},a.Import.prototype={toCSS:function(){return this.css?"@import "+this._path.toCSS()+";\n":""},eval:function(b){var c;if(this.css)return this;c=new a.Ruleset(null,this.root.rules.slice(0));for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.Import&&Array.prototype.splice.apply(c.rules,[d,1].concat(c.rules[d].eval(b)));return c.rules}}}(c("../tree")),function(a){a.JavaScript=function(a,b,c){this.escaped=c,this.expression=a,this.index=b},a.JavaScript.prototype={eval:function(b){var c,d=this,e={},f=this.expression.replace(/@\{([\w-]+)\}/g,function(c,e){return a.jsify((new a.Variable("@"+e,d.index)).eval(b))});try{f=new Function("return ("+f+")")}catch(g){throw{message:"JavaScript evaluation error: `"+f+"`",index:this.index}}for(var h in b.frames[0].variables())e[h.slice(1)]={value:b.frames[0].variables()[h].value,toJS:function(){return this.value.eval(b).toCSS()}};try{c=f.call(e)}catch(g){throw{message:"JavaScript evaluation error: '"+g.name+": "+g.message+"'",index:this.index}}return typeof c=="string"?new a.Quoted('"'+c+'"',c,this.escaped,this.index):Array.isArray(c)?new a.Anonymous(c.join(", ")):new a.Anonymous(c)}}}(c("../tree")),function(a){a.Keyword=function(a){this.value=a},a.Keyword.prototype={eval:function(){return this},toCSS:function(){return this.value}}}(c("../tree")),function(a){a.mixin={},a.mixin.Call=function(b,c,d){this.selector=new a.Selector(b),this.arguments=c,this.index=d},a.mixin.Call.prototype={eval:function(a){var b,c,d=[],e=!1;for(var f=0;f<a.frames.length;f++)if((b=a.frames[f].find(this.selector)).length>0){c=this.arguments&&this.arguments.map(function(b){return b.eval(a)});for(var g=0;g<b.length;g++)if(b[g].match(c,a))try{Array.prototype.push.apply(d,b[g].eval(a,this.arguments).rules),e=!0}catch(h){throw{message:h.message,index:h.index,stack:h.stack,call:this.index}}if(e)return d;throw{message:"No matching definition was found for `"+this.selector.toCSS().trim()+"("+this.arguments.map(function(a){return a.toCSS()}).join(", ")+")`",index:this.index}}throw{message:this.selector.toCSS().trim()+" is undefined",index:this.index}}},a.mixin.Definition=function(b,c,d){this.name=b,this.selectors=[new a.Selector([new a.Element(null,b)])],this.params=c,this.arity=c.length,this.rules=d,this._lookups={},this.required=c.reduce(function(a,b){return!b.name||b.name&&!b.value?a+1:a},0),this.parent=a.Ruleset.prototype,this.frames=[]},a.mixin.Definition.prototype={toCSS:function(){return""},variable:function(a){return this.parent.variable.call(this,a)},variables:function(){return this.parent.variables.call(this)},find:function(){return this.parent.find.apply(this,arguments)},rulesets:function(){return this.parent.rulesets.apply(this)},eval:function(b,c){var d=new a.Ruleset(null,[]),e,f=[];for(var g=0,h;g<this.params.length;g++)if(this.params[g].name)if(h=c&&c[g]||this.params[g].value)d.rules.unshift(new a.Rule(this.params[g].name,h.eval(b)));else throw{message:"wrong number of arguments for "+this.name+" ("+c.length+" for "+this.arity+")"};for(var g=0;g<Math.max(this.params.length,c&&c.length);g++)f.push(c[g]||this.params[g].value);return d.rules.unshift(new a.Rule("@arguments",(new a.Expression(f)).eval(b))),(new a.Ruleset(null,this.rules.slice(0))).eval({frames:[this,d].concat(this.frames,b.frames)})},match:function(a,b){var c=a&&a.length||0,d;if(c<this.required)return!1;if(this.required>0&&c>this.params.length)return!1;d=Math.min(c,this.arity);for(var e=0;e<d;e++)if(!this.params[e].name&&a[e].eval(b).toCSS()!=this.params[e].value.eval(b).toCSS())return!1;return!0}}}(c("../tree")),function(a){a.Operation=function(a,b){this.op=a.trim(),this.operands=b},a.Operation.prototype.eval=function(b){var c=this.operands[0].eval(b),d=this.operands[1].eval(b),e;if(c instanceof a.Dimension&&d instanceof a.Color)if(this.op==="*"||this.op==="+")e=d,d=c,c=e;else throw{name:"OperationError",message:"Can't substract or divide a color from a number"};return c.operate(this.op,d)},a.operate=function(a,b,c){switch(a){case"+":return b+c;case"-":return b-c;case"*":return b*c;case"/":return b/c}}}(c("../tree")),function(a){a.Quoted=function(a,b,c,d){this.escaped=c,this.value=b||"",this.quote=a.charAt(0),this.index=d},a.Quoted.prototype={toCSS:function(){return this.escaped?this.value:this.quote+this.value+this.quote},eval:function(b){var c=this,d=this.value.replace(/`([^`]+)`/g,function(d,e){return(new a.JavaScript(e,c.index,!0)).eval(b).value}).replace(/@\{([\w-]+)\}/g,function(d,e){var f=(new a.Variable("@"+e,c.index)).eval(b);return f.value||f.toCSS()});return new a.Quoted(this.quote+d+this.quote,d,this.escaped,this.index)}}}(c("../tree")),function(a){a.Rule=function(b,c,d,e){this.name=b,this.value=c instanceof a.Value?c:new a.Value([c]),this.important=d?" "+d.trim():"",this.index=e,b.charAt(0)==="@"?this.variable=!0:this.variable=!1},a.Rule.prototype.toCSS=function(a){return this.variable?"":this.name+(a.compress?":":": ")+this.value.toCSS(a)+this.important+";"},a.Rule.prototype.eval=function(b){return new a.Rule(this.name,this.value.eval(b),this.important,this.index)},a.Shorthand=function(a,b){this.a=a,this.b=b},a.Shorthand.prototype={toCSS:function(a){return this.a.toCSS(a)+"/"+this.b.toCSS(a)},eval:function(){return this}}}(c("../tree")),function(a){a.Ruleset=function(a,b){this.selectors=a,this.rules=b,this._lookups={}},a.Ruleset.prototype={eval:function(b){var c=new a.Ruleset(this.selectors,this.rules.slice(0));c.root=this.root,b.frames.unshift(c);if(c.root)for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.Import&&Array.prototype.splice.apply(c.rules,[d,1].concat(c.rules[d].eval(b)));for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.mixin.Definition&&(c.rules[d].frames=b.frames.slice(0));for(var d=0;d<c.rules.length;d++)c.rules[d]instanceof a.mixin.Call&&Array.prototype.splice.apply(c.rules,[d,1].concat(c.rules[d].eval(b)));for(var d=0,e;d<c.rules.length;d++)e=c.rules[d],e instanceof a.mixin.Definition||(c.rules[d]=e.eval?e.eval(b):e);return b.frames.shift(),c},match:function(a){return!a||a.length===0},variables:function(){return this._variables?this._variables:this._variables=this.rules.reduce(function(b,c){return c instanceof a.Rule&&c.variable===!0&&(b[c.name]=c),b},{})},variable:function(a){return this.variables()[a]},rulesets:function(){return this._rulesets?this._rulesets:this._rulesets=this.rules.filter(function(b){return b instanceof a.Ruleset||b instanceof a.mixin.Definition})},find:function(b,c){c=c||this;var d=[],e,f,g=b.toCSS();return g in this._lookups?this._lookups[g]:(this.rulesets().forEach(function(e){if(e!==c)for(var g=0;g<e.selectors.length;g++)if(f=b.match(e.selectors[g])){b.elements.length>e.selectors[g].elements.length?Array.prototype.push.apply(d,e.find(new a.Selector(b.elements.slice(1)),c)):d.push(e);break}}),this._lookups[g]=d)},toCSS:function(b,c){var d=[],e=[],f=[],g=[],h,i;this.root||(b.length===0?g=this.selectors.map(function(a){return[a]}):this.joinSelectors(g,b,this.selectors));for(var j=0;j<this.rules.length;j++)i=this.rules[j],i.rules||i instanceof a.Directive?f.push(i.toCSS(g,c)):i instanceof a.Comment?i.silent||(this.root?f.push(i.toCSS(c)):e.push(i.toCSS(c))):i.toCSS&&!i.variable?e.push(i.toCSS(c)):i.value&&!i.variable&&e.push(i.value.toString());return f=f.join(""),this.root?d.push(e.join(c.compress?"":"\n")):e.length>0&&(h=g.map(function(a){return a.map(function(a){return a.toCSS(c)}).join("").trim()}).join(c.compress?",":g.length>3?",\n":", "),d.push(h,(c.compress?"{":" {\n ")+e.join(c.compress?"":"\n ")+(c.compress?"}":"\n}\n"))),d.push(f),d.join("")+(c.compress?"\n":"")},joinSelectors:function(a,b,c){for(var d=0;d<c.length;d++)this.joinSelector(a,b,c[d])},joinSelector:function(b,c,d){var e=[],f=[],g=[],h=[],i=!1,j;for(var k=0;k<d.elements.length;k++)j=d.elements[k],j.combinator.value.charAt(0)==="&"&&(i=!0),i?h.push(j):g.push(j);i||(h=g,g=[]),g.length>0&&e.push(new a.Selector(g)),h.length>0&&f.push(new a.Selector(h));for(var l=0;l<c.length;l++)b.push(e.concat(c[l]).concat(f))}}}(c("../tree")),function(a){a.Selector=function(a){this.elements=a,this.elements[0].combinator.value===""&&(this.elements[0].combinator.value=" ")},a.Selector.prototype.match=function(a){var b=this.elements.length,c=a.elements.length,d=Math.min(b,c);if(b<c)return!1;for(var e=0;e<d;e++)if(this.elements[e].value!==a.elements[e].value)return!1 +;return!0},a.Selector.prototype.toCSS=function(a){return this._css?this._css:this._css=this.elements.map(function(b){return typeof b=="string"?" "+b.trim():b.toCSS(a)}).join("")}}(c("../tree")),function(a){a.URL=function(a,b){a.data?this.attrs=a:(d.mode==="browser"&&!/^(?:https?:\/\/|file:\/\/|data:|\/)/.test(a.value)&&b.length>0&&(a.value=b[0]+(a.value.charAt(0)==="/"?a.value.slice(1):a.value)),this.value=a,this.paths=b)},a.URL.prototype={toCSS:function(){return"url("+(this.attrs?"data:"+this.attrs.mime+this.attrs.charset+this.attrs.base64+this.attrs.data:this.value.toCSS())+")"},eval:function(b){return this.attrs?this:new a.URL(this.value.eval(b),this.paths)}}}(c("../tree")),function(a){a.Value=function(a){this.value=a,this.is="value"},a.Value.prototype={eval:function(b){return this.value.length===1?this.value[0].eval(b):new a.Value(this.value.map(function(a){return a.eval(b)}))},toCSS:function(a){return this.value.map(function(b){return b.toCSS(a)}).join(a.compress?",":", ")}}}(c("../tree")),function(a){a.Variable=function(a,b){this.name=a,this.index=b},a.Variable.prototype={eval:function(b){var c,d,e=this.name;e.indexOf("@@")==0&&(e="@"+(new a.Variable(e.slice(1))).eval(b).value);if(c=a.find(b.frames,function(a){if(d=a.variable(e))return d.value.eval(b)}))return c;throw{message:"variable "+e+" is undefined",index:this.index}}}}(c("../tree")),c("./tree").find=function(a,b){for(var c=0,d;c<a.length;c++)if(d=b.call(a,a[c]))return d;return null},c("./tree").jsify=function(a){return Array.isArray(a.value)&&a.value.length>1?"["+a.value.map(function(a){return a.toCSS(!1)}).join(", ")+"]":a.toCSS(!1)};var f=location.protocol==="file:"||location.protocol==="chrome:"||location.protocol==="chrome-extension:"||location.protocol==="resource:";d.env=d.env||(location.hostname=="127.0.0.1"||location.hostname=="0.0.0.0"||location.hostname=="localhost"||location.port.length>0||f?"development":"production"),d.async=!1,d.poll=d.poll||(f?1e3:1500),d.watch=function(){return this.watchMode=!0},d.unwatch=function(){return this.watchMode=!1},d.env==="development"?(d.optimization=0,/!watch/.test(location.hash)&&d.watch(),d.watchTimer=setInterval(function(){d.watchMode&&m(function(a,b,c){a&&p(a.toCSS(),b,c.lastModified)})},d.poll)):d.optimization=3;var g;try{g=typeof a.localStorage=="undefined"?null:a.localStorage}catch(h){g=null}var i=document.getElementsByTagName("link"),j=/^text\/(x-)?less$/;d.sheets=[];for(var k=0;k<i.length;k++)(i[k].rel==="stylesheet/less"||i[k].rel.match(/stylesheet/)&&i[k].type.match(j))&&d.sheets.push(i[k]);d.refresh=function(a){var b,c;b=c=new Date,m(function(a,d,e){e.local?t("loading "+d.href+" from cache."):(t("parsed "+d.href+" successfully."),p(a.toCSS(),d,e.lastModified)),t("css for "+d.href+" generated in "+(new Date-c)+"ms"),e.remaining===0&&t("css generated in "+(new Date-b)+"ms"),c=new Date},a),l()},d.refreshStyles=l,d.refresh(d.env==="development")})(window); diff --git a/syte/static/less/mixins.less b/syte/static/less/mixins.less new file mode 100644 index 0000000..44cc546 --- /dev/null +++ b/syte/static/less/mixins.less @@ -0,0 +1,250 @@ +/* mixins.less + * CSS Reset and base mixinis for LESS based development. + * Inspired by bootstrap.less initially created by Mark Dotto + * https://github.com/markdotto/preboot.less + **/ + +// Clearfix for clearing floats +.clearfix() { + zoom: 1; + &:before, &:after {display: table; content: "";} + &:after {clear: both;} +} + +// Center-align a block level element +.center-block() { + display: block; + margin: 0 auto; +} + +// Sizing Shortcuts +.size(@width: 5px, @height: 5px) { + height: @height; width: @width; +} + +.square(@size: 5px) { + .size(@size, @size); +} + +// Fonts +.font(@weight: normal, @size: 14px, @lineHeight: 20px) { + font-size: @size; + font-weight: @weight; + line-height: @lineHeight; +} + +.font-sans-serif(@weight: normal, @size: 14px, @lineHeight: 20px) { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + .font(@weight, @size, @lineHeight); +} + +.font-serif(@weight: normal, @size: 14px, @lineHeight: 20px) { + font-family: "Georgia", Times New Roman, Times, serif; + .font(@weight, @size, @lineHeight); +} + +.font-monospace(@weight: normal, @size: 12px, @lineHeight: 20px) { + font-family: "Monaco", Courier New, monospace; + .font(@weight, @size, @lineHeight); +} + +// Border Radius +.border-radius(@radius: 5px) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +// Box Shadows +.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) { + -webkit-box-shadow: @shadow; + -moz-box-shadow: @shadow; + box-shadow: @shadow; +} + +.reset-box-shadow() { + -webkit-box-shadow: 0 0 0; + -moz-box-shadow: 0 0 0; + box-shadow: 0 0 0; +} + +// Transitions +.transition(@transition) { + -webkit-transition: @transition; + -moz-transition: @transition; + -o-transition: @transition; + transition: @transition; +} + +.rotate(@rotation) { + -webkit-transform: rotate(@rotation); + -moz-transform: rotate(@rotation); + -ms-transform: rotate(@rotation); + -o-transform: rotate(@rotation); + transform: rotate(@rotation); +} + + +// Background Clipping +.background-clip(@clip) { + -webkit-background-clip: @clip; + -moz-background-clip: @clip; + background-clip: @clip; +} + +// CSS3 Content Columns +.content-columns(@columnCount, @columnGap: 20px) { + -webkit-column-count: @columnCount; + -webkit-column-gap: @columnGap; + -moz-column-count: @columnCount; + -moz-column-gap: @columnGap; + column-count: @columnCount; + column-gap: @columnGap; +} + +// Add a transparency value to a background +.alpha-background(@color: @white, @alpha: 1) { + background-color: @color; + background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); +} + +// Add a transparency value to a border +.alpha-border(@color: @white, @alpha: 1) { + border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); + background-clip: padding-box; +} + +// Gradients +.gradient(@startColor: #555, @endColor: #333) { + background-color: @endColor; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror + background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ + background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10 + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(top, @startColor, @endColor); // The standard + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down +} + +.horizontal-gradient(@startColor: #555, @endColor: #333) { + background-color: @endColor; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, right top, from(@startColor), to(@endColor)); // Konqueror + background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+ + background-image: -ms-linear-gradient(left, @startColor, @endColor); // IE10 + background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(left, @startColor, @endColor); // Le standard + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",@startColor,@endColor)); // IE9 and down +} + +.directional-gradient(@startColor: #555, @endColor: #333, @deg: 45deg) { + background-color: @endColor; + background-repeat: repeat-x; + background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+ + background-image: -ms-linear-gradient(@deg, @startColor, @endColor); // IE10 + background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(@deg, @startColor, @endColor); // The standard +} + +.vertical-gradient-3(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) { + background-color: @endColor; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor)); + background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor); + background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor); + background-image: -ms-linear-gradient(@startColor, @midColor @colorStop, @endColor); + background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor); + background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor); + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down, gets no color-stop at all for proper fallback +} + +.reset-ie-gradient() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); +} + +// Opacity +.opacity(@opacity: 100) { + filter: e(%("alpha(opacity=%d)", @opacity)); + -khtml-opacity: @opacity / 100; + -moz-opacity: @opacity / 100; + opacity: @opacity / 100; +} + +// Word spacing wrap +.break-word() { + white-space: pre-wrap; + word-wrap: break-word; +} + +// PATTERN ANIMATIONS +// ------------------ +.fade { + .transition(opacity .15s linear); + opacity: 0; + &.in { + opacity: 1; + } +} + +.user-select(@select) { + -webkit-user-select: @select; + -khtml-user-select: @select; + -moz-user-select: @select; + -o-user-select: @select; + user-select: @select; +} + +//Arrows +.arrow-top(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) { + bottom: 0; + left: @arrow-location; + margin-left: -@arrow-size; + border-left: @arrow-size solid transparent; + border-right: @arrow-size solid transparent; + border-top: @arrow-size solid @arrow-color; + position: absolute; + width: 0; + height: 0; +} + +.arrow-right(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) { + top: @arrow-location; + left: 0; + margin-top: -@arrow-size; + border-top: @arrow-size solid transparent; + border-bottom: @arrow-size solid transparent; + border-right: @arrow-size solid @arrow-color; + position: absolute; + width: 0; + height: 0; +} + +.arrow-bottom(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) { + top: 0; + left: @arrow-location; + margin-left: -@arrow-size; + border-left: @arrow-size solid transparent; + border-right: @arrow-size solid transparent; + border-bottom: @arrow-size solid @arrow-color; + position: absolute; + width: 0; + height: 0; +} + +.arrow-left(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) { + top: @arrow-location; + right: 0; + margin-top: -@arrow-size; + border-top: @arrow-size solid transparent; + border-bottom: @arrow-size solid transparent; + border-left: @arrow-size solid @arrow-color; + position: absolute; + width: 0; + height: 0; +} + diff --git a/syte/static/less/modals.less b/syte/static/less/modals.less new file mode 100644 index 0000000..522ecfa --- /dev/null +++ b/syte/static/less/modals.less @@ -0,0 +1,67 @@ +//Modals +.modal-backdrop { + position: fixed; + z-index: 1000; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #000; + + &.fade, &.fade-large { + .transition(e('opacity .2s linear')); + .opacity(0); + } +} + +.modal-backdrop, .modal-backdrop.fade.in { + .opacity(50); +} + +.modal { + position: fixed; + top: 0; + left: 240px; + z-index: 1050; + overflow: auto; + width: 400px; + height: 100%; + background-color: #fff; + border-right: 1px solid @text-color; + .box-shadow(0 0 7px rgba(0,0,0,0.5)); +} + +.modal { + &.fade-large { + width: 700px; + .transition(e('left .4s ease-out')); + left: -1100px; + } + + &.fade { + .transition(e('left .4s ease-out')); + left: -700px; + } + + &.fade.in, &.fade-large.in { left: 240px; } +} + +.close { + float: right; + font-size: 26px; + line-height: 30px; + font-weight: bold; + color: #000; + background-color: #fff; + text-shadow: 0 1px 0 rgba(255,255,255,1); + + .opacity(20); + + &:hover { + color: #000; + text-decoration: none; + cursor: pointer; + .opacity(40); + } +} + diff --git a/syte/static/less/profiles.less b/syte/static/less/profiles.less new file mode 100644 index 0000000..65cd33e --- /dev/null +++ b/syte/static/less/profiles.less @@ -0,0 +1,354 @@ +//Profiles +.profile { + background: #E9E9E9 url('/static/imgs/b.png'); +} + +.profile-info { + position: relative; + padding: 15px; + background: #fff; + + .close { line-height: 20px; } + .btn { + position: absolute; + right: 17px; + bottom: 20px; + } +} + +.profile-avatar { + display: inline-block; + float: left; + border-bottom: 0; + + img { + .square(52px); + border: 2px solid @adjacent-color; + } +} + +.profile-avatar:hover { + border-bottom: 0; +} + +.profile-name { + display: block; + float: left; + margin: 0 0 10px 10px; + + h2 { + font-size: 22px; + line-height: 30px; + + & a { + font-weight: 500; + color: @text-color; + border-bottom: 0; + } + } + h3 { + font-size: 16px; + line-height: 20px; + + & a { + color: #777; + border-bottom: 0; + } + } + + h2 a:hover, h3 a:hover + { color: @adjacent-color; } +} + +.profile-description { + clear: left; + font-size: 13px; + line-height: 18px; + font-style: italic; + color: #777; + margin: 0; + padding: 5px 0; + + a { border-bottom: 0; } +} + +.profile-location-url { + clear: left; + margin: 0; + + span { + display: inline-block; + font-size: 13px; + line-height: 18px; + color: #777; + } + + .divider { + padding: 0 4px; + color: #ccc; + } + + a { border-bottom:0; } +} + +.profile-stats { + margin: 0; + list-style: none; + overflow: hidden; + border-top: 1px solid #C2C2C2; + border-bottom: 1px solid #C2C2C2; + background: #fff; + + li { + display: inline; + + a, span { + float: left; + padding: 7px 15px; + color: #777; + font-size: 10px; + line-height: 16px; + text-transform: uppercase; + border-left: 1px solid #C2C2C2; + border-bottom: 0; + } + + strong { + display: block; + color: @text-color; + font-size: 14px; + } + + a:hover, a:hover strong { + color: @adjacent-color; + } + } + + li:first-child span { + border-left: 0; + } +} + +.profile-info-footer { + padding: 10px 15px; + border-bottom: 1px solid #c2c2c2; +} + +//Profile Icons +.profile-icons(@bgicon) { + display: inline-block; + background: @bgicon; + margin-left: 10px; + padding-left: 20px; +} + +.profile-watchers { + .profile-icons(~"url('/static/imgs/ico-watchers.png') no-repeat"); +} + +.profile-forks { + .profile-icons(~"url('/static/imgs/ico-forks.png') no-repeat"); +} + +.profile-comments { + .profile-icons(~"url('/static/imgs/ico-comments.png') no-repeat"); +} + +.profile-likes { + .profile-icons(~"url('/static/imgs/ico-likes.png') no-repeat"); +} + + +//Twitter Profile +.profile.twitter { + overflow:hidden; +} + +.profile-tweets { + list-style: none; + margin: 0; + background: #fff; + + li { + padding: 10px 15px; + border-bottom: 1px solid #C2C2C2 + } +} + +.tweet-title { + border-bottom: 0; + position: relative; + padding-left: 45px; + + img { + position: absolute; + left: 0; + width: 32px; + height: 32px; + border: 2px solid @adjacent-color; + } + + span { + color: #777; + font-size: 13px; + padding-left: 3px; + } +} + +.tweet-title:hover { + border-bottom: 0; +} + +.tweet-text { + color: #777; + margin:0; + padding: 3px 0; + font-size: 13px; + line-height: 18px; + margin-left: 45px; + + a { border-bottom: 0; } +} + +.tweet-date { + margin: 0; + font-size: 13px; + line-height: 18px; + margin-left: 45px; + color: #999; +} + +//Github Profile +.profile-repos { + list-style: none; + margin: 0; + background: #fff; + + li { + padding: 10px 15px; + border-bottom: 1px solid #C2C2C2 + } +} + +.profile-repo-name { + border-bottom: 0; + font-weight: 500; +} +.profile-repo-name:hover { + border-bottom: 0; +} + +.profile-repo-text { + color: #777; + margin:0; + padding: 5px 0; + font-size: 13px; + line-height: 18px; +} + +.profile-repo-stats { + list-style: none; + margin: 0; + font-size: 13px; + line-height: 18px; + + li { + padding: 0; + border: 0; + display: inline-block; + + //ie7 inline-block hack + zoom: 1; + *display: inline; + } + + a { + border-bottom: 0; + } + + a:hover { + border-bottom: 0; + color: @adjacent-color; + } +} + +//Dribbble & Instagram Profiles +.profile-shots { + list-style: none; + margin: 0; + padding: 15px 0; + + > li { + float: left; + width: 300px; + padding: 10px; + margin: 0 0px 20px 20px; + background: #fff; + + .box-shadow(); + } +} + +.profile-shot { + border-bottom: 0; + display: block; + + img { + width: 300px; + height: 225px; + } +} +.profile-shot:hover { + border-bottom: 0; +} + +.profile-shot-title { + display: block; + padding: 5px 0; + font-size: 13px; + line-height: 18px; + color: @alternate-text-color; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.profile-shot-stats { + list-style: none; + margin: 0; + font-size: 13px; + line-height: 18px; + + li { + margin-bottom: 0; + padding: 0; + border: 0; + display: inline-block; + + //ie7 inline-block hack + zoom: 1; + *display: inline; + } + li:first-child a, li:first-child span { + margin-left: 0; + } + + a { + border-bottom: 0; + } + + a:hover { + border-bottom: 0; + color: @adjacent-color; + } +} + +.profile-shot-date { + float: right; + color: #999; +} + +.instagram .profile-shot img { + width: 300px; + height: 300px; +} diff --git a/syte/static/less/reset.less b/syte/static/less/reset.less new file mode 100644 index 0000000..c597da0 --- /dev/null +++ b/syte/static/less/reset.less @@ -0,0 +1,24 @@ +html, body {margin: 0; padding: 0;} +h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, cite, code, del, dfn, em, img, q, s, samp, small, strike, strong, sub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset, form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td {margin: 0; padding: 0; border: 0; font-weight: normal; font-style: normal; font-size: 100%; font-family: inherit;} +strong, b {font-weight: bold;} +em, i {font-style:italic;} +body {line-height: 1;} +table {border-collapse: collapse; border-spacing: 0;} +q:before, q:after, blockquote:before, blockquote:after {content: "";} +html {overflow-y: scroll; font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;} +a:focus {outline: thin dotted;} +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {display: block;} +audio, canvas, video {display: inline-block; *display: inline; *zoom: 1;} +audio:not([controls]) {display: none;} +sub, sup {font-size: 75%; line-height: 0; position: relative; vertical-align: baseline;} +sup {top: -0.5em;} +sub {bottom: -0.25em;} +img {border: 0; -ms-interpolation-mode: bicubic;} +button, input, select, textarea {font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle;} +button, input {line-height: normal; *overflow: visible;} +button::-moz-focus-inner, input::-moz-focus-inner {border: 0;padding: 0;} +button, input[type="button"], input[type="reset"], input[type="submit"] {cursor: pointer; -webkit-appearance: button;} +input[type="search"] {-webkit-appearance: textfield; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;} +input[type="search"]::-webkit-search-decoration {-webkit-appearance: none;} +textarea {overflow: auto; vertical-align: top;} + diff --git a/syte/static/less/styles-mobile.less b/syte/static/less/styles-mobile.less new file mode 100644 index 0000000..6ff8003 --- /dev/null +++ b/syte/static/less/styles-mobile.less @@ -0,0 +1,165 @@ +@media (max-width: 600px) { + + body { + background: #E9E9E9 url('/static/imgs/b.png'); + overflow-x: hidden; + } + + .mobile-nav { + display: block; + position: fixed; + top: 0; + height: 45px; + width: 100%; + z-index: 3000; + + background: #E9E9E9 url('/static/imgs/b.png'); + border-top: 3px solid @adjacent-color; + .box-shadow(); + + h3 { + float: right; + padding: 10px; + + a { + border-bottom: 0; + font-weight: bold; + color: @text-color; + text-shadow: 0 1px 1px #f9f9f9; + } + } + + .nav-btn { + float: left; + padding: 7px 10px 4px; + margin: 8px 10px; + .gradient(#404040, #333); + .border-radius(4px); + .box-shadow(0 1px 1px #f9f9f9); + } + + .nav-btn-bar { + display: block; + width: 18px; + height: 2px; + margin-bottom: 3px; + background-color: #f9f9f9; + + .border-radius(1px); + .box-shadow(0 1px 0 rgba(0, 0, 0, 0.25)); + } + } + + header.main-header { + position: absolute; + + + hgroup { + .picture a { margin: 60px 0 10px 10px; } + h1 { + font-size: 18px; + margin: 0 10px; + } + h2 { + margin: 0 10px 10px 10px; + } + } + + nav { + margin: 20px 0; + } + + .fork-me { + display: none; + } + } + + .main-section { + margin: 45px 0 0 0; + position: relative; + min-height: 500px; + left: 0; + z-index: 2000; + background-color: #fff; + + .box-shadow(); + .transition(e('left .3s ease-out')); + + &.nav-opened { + left: 240px; + } + } + + .blog-section { + + hgroup { + h2, h1 { .h2; margin: 10px 0 5px 0; } + + h3 a { + position: static; + margin: 0; + padding: 5px 0; + border: 0; + font-weight: 300; + } + } + + article { + width: 95%; + padding: 10px 10px 30px; + border-bottom: 1px solid #C2C2C2; + + img { max-width: 300px; } + } + + .loading { + padding: 15px; + } + } + + .modal-backdrop { + z-index: 3500; + } + + .modal { + position: absolute; + width: 100%; + height: 1500px; + z-index: 4000; + top: 45px; + + &.fade-large { width: 100%; } + + &.fade.in, &.fade-large.in { left: 0; } + } + + .profile.twitter, .profile.github, .profile.dribbble, .profile.instagram { + overflow: scroll; + } + + .profile-info .btn { + position: static; + margin-top: 5px; + } + + .shots-likes-received, .shots-likes-given { display: none; } + + .profile-shots { padding: 10px 0; + + > li { + margin: 0 0 20px 10px; + width: 280px; + } + + img { + width: 280px; + height: 210px; + } + } + + .instagram .profile-shot img { + width: 280px; + height: 280px; + } + +} diff --git a/syte/static/less/styles.css b/syte/static/less/styles.css new file mode 100644 index 0000000..1797222 --- /dev/null +++ b/syte/static/less/styles.css @@ -0,0 +1,1221 @@ +html, +body { + margin: 0; + padding: 0; +} +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +cite, +code, +del, +dfn, +em, +img, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +dd, +dl, +dt, +li, +ol, +ul, +fieldset, +form, +label, +legend, +button, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td { + margin: 0; + padding: 0; + border: 0; + font-weight: normal; + font-style: normal; + font-size: 100%; + font-family: inherit; +} +strong, +b { + font-weight: bold; +} +em, +i { + font-style: italic; +} +body { + line-height: 1; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} +html { + overflow-y: scroll; + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} +audio:not([controls]) { + display: none; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; + -ms-interpolation-mode: bicubic; +} +button, +input, +select, +textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} +button, +input { + line-height: normal; + *overflow: visible; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +/* mixins.less + * CSS Reset and base mixinis for LESS based development. + * Inspired by bootstrap.less initially created by Mark Dotto + * https://github.com/markdotto/preboot.less + **/ +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +body { + font-family: Helvetica Neue, Helvetica, Arial, sans-serif; + font-size: 15px; + color: #404040; +} +::selection, +::-moz-selection { + background: #333366; + color: #fff; + text-shadow: none; +} +h1, +.h1 { + font-size: 30px; + line-height: 35px; + font-weight: 500; +} +h2, +.h2 { + font-size: 24px; + line-height: 30px; + font-weight: 500; +} +h3, +.h3 { + font-size: 18px; + line-height: 25px; + font-weight: 500; +} +h4, +.h4 { + font-size: 16px; + line-height: 20px; + font-weight: 500; +} +h5, +.h5 { + font-size: 16px; + line-height: 20px; + font-weight: 500; +} +h6, +.h6 { + font-size: 14px; + line-height: 20px; + font-weight: 500; +} +ul { + margin: 0 0 15px 15px; +} +ol { + margin: 0 0 15px 20px; +} +li { + margin-bottom: 5px; +} +li ul, +li ol { + margin-bottom: 0; +} +dl { + margin-bottom: 10px; +} +dl dt { + font-weight: bold; +} +dl dd { + margin: 0 0 5px 10px; +} +p { + line-height: 25px; + margin-top: 20px; + margin-bottom: 20px; +} +a { + color: #000000; + text-decoration: none; + border-bottom: 1px solid #404040; +} +a:hover { + color: #333366; + border-bottom: 1px solid #333366; +} +a.no-border { + border-bottom: 0; +} +blockquote { + margin-top: 20px 0; + padding: 0 0 0 20px; + border-left: 5px solid #333366; +} +blockquote p:first-child { + margin-top: 5px; +} +.descr { + display: block; + font-size: 12px; + line-height: 20px; + color: #7f7e7e; +} +.btn { + display: inline-block; + padding: 4px 10px 4px; + font-size: 13px; + line-height: 18px; + color: #333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #e6e6e6; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#e6e6e6)); + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(top, #ffffff, #e6e6e6); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + border: 1px solid #ccc; + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); +} +.btn:hover { + color: #333; + text-decoration: none; + background-color: #e6e6e6; + background-position: 0 -15px; + border-bottom-color: #b3b3b3; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.modal-backdrop { + position: fixed; + z-index: 1000; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #000; +} +.modal-backdrop.fade, +.modal-backdrop.fade-large { + -webkit-transition: opacity .2s linear; + -moz-transition: opacity .2s linear; + -o-transition: opacity .2s linear; + transition: opacity .2s linear; + filter: alpha(opacity=0); + -khtml-opacity: 0; + -moz-opacity: 0; + opacity: 0; +} +.modal-backdrop, +.modal-backdrop.fade.in { + filter: alpha(opacity=50); + -khtml-opacity: 0.5; + -moz-opacity: 0.5; + opacity: 0.5; +} +.modal { + position: fixed; + top: 0; + left: 240px; + z-index: 1050; + overflow: auto; + width: 400px; + height: 100%; + background-color: #fff; + border-right: 1px solid #404040; + -webkit-box-shadow: 0 0 7px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 0 7px rgba(0, 0, 0, 0.5); + box-shadow: 0 0 7px rgba(0, 0, 0, 0.5); +} +.modal.fade-large { + width: 700px; + -webkit-transition: left .4s ease-out; + -moz-transition: left .4s ease-out; + -o-transition: left .4s ease-out; + transition: left .4s ease-out; + left: -1100px; +} +.modal.fade { + -webkit-transition: left .4s ease-out; + -moz-transition: left .4s ease-out; + -o-transition: left .4s ease-out; + transition: left .4s ease-out; + left: -700px; +} +.modal.fade.in, +.modal.fade-large.in { + left: 240px; +} +.close { + float: right; + font-size: 26px; + line-height: 30px; + font-weight: bold; + color: #000; + background-color: #fff; + text-shadow: 0 1px 0 #ffffff; + filter: alpha(opacity=20); + -khtml-opacity: 0.2; + -moz-opacity: 0.2; + opacity: 0.2; +} +.close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=40); + -khtml-opacity: 0.4; + -moz-opacity: 0.4; + opacity: 0.4; +} +.profile { + background: #e9e9e9 url('/static/imgs/b.png'); +} +.profile-info { + position: relative; + padding: 15px; + background: #fff; +} +.profile-info .close { + line-height: 20px; +} +.profile-info .btn { + position: absolute; + right: 17px; + bottom: 20px; +} +.profile-avatar { + display: inline-block; + float: left; + border-bottom: 0; +} +.profile-avatar img { + height: 52px; + width: 52px; + border: 2px solid #333366; +} +.profile-avatar:hover { + border-bottom: 0; +} +.profile-name { + display: block; + float: left; + margin: 0 0 10px 10px; +} +.profile-name h2 { + font-size: 22px; + line-height: 30px; +} +.profile-name h2 a { + font-weight: 500; + color: #404040; + border-bottom: 0; +} +.profile-name h3 { + font-size: 16px; + line-height: 20px; +} +.profile-name h3 a { + color: #777; + border-bottom: 0; +} +.profile-name h2 a:hover, +.profile-name h3 a:hover { + color: #333366; +} +.profile-description { + clear: left; + font-size: 13px; + line-height: 18px; + font-style: italic; + color: #777; + margin: 0; + padding: 5px 0; +} +.profile-description a { + border-bottom: 0; +} +.profile-location-url { + clear: left; + margin: 0; +} +.profile-location-url span { + display: inline-block; + font-size: 13px; + line-height: 18px; + color: #777; +} +.profile-location-url .divider { + padding: 0 4px; + color: #ccc; +} +.profile-location-url a { + border-bottom: 0; +} +.profile-stats { + margin: 0; + list-style: none; + overflow: hidden; + border-top: 1px solid #C2C2C2; + border-bottom: 1px solid #C2C2C2; + background: #fff; +} +.profile-stats li { + display: inline; +} +.profile-stats li a, +.profile-stats li span { + float: left; + padding: 7px 15px; + color: #777; + font-size: 10px; + line-height: 16px; + text-transform: uppercase; + border-left: 1px solid #C2C2C2; + border-bottom: 0; +} +.profile-stats li strong { + display: block; + color: #404040; + font-size: 14px; +} +.profile-stats li a:hover, +.profile-stats li a:hover strong { + color: #333366; +} +.profile-stats li:first-child span { + border-left: 0; +} +.profile-info-footer { + padding: 10px 15px; + border-bottom: 1px solid #c2c2c2; +} +.profile-watchers { + display: inline-block; + background: url('/static/imgs/ico-watchers.png') no-repeat; + margin-left: 10px; + padding-left: 20px; +} +.profile-forks { + display: inline-block; + background: url('/static/imgs/ico-forks.png') no-repeat; + margin-left: 10px; + padding-left: 20px; +} +.profile-comments { + display: inline-block; + background: url('/static/imgs/ico-comments.png') no-repeat; + margin-left: 10px; + padding-left: 20px; +} +.profile-likes { + display: inline-block; + background: url('/static/imgs/ico-likes.png') no-repeat; + margin-left: 10px; + padding-left: 20px; +} +.profile.twitter { + overflow: hidden; +} +.profile-tweets { + list-style: none; + margin: 0; + background: #fff; +} +.profile-tweets li { + padding: 10px 15px; + border-bottom: 1px solid #c2c2c2; +} +.tweet-title { + border-bottom: 0; + position: relative; + padding-left: 45px; +} +.tweet-title img { + position: absolute; + left: 0; + width: 32px; + height: 32px; + border: 2px solid #333366; +} +.tweet-title span { + color: #777; + font-size: 13px; + padding-left: 3px; +} +.tweet-title:hover { + border-bottom: 0; +} +.tweet-text { + color: #777; + margin: 0; + padding: 3px 0; + font-size: 13px; + line-height: 18px; + margin-left: 45px; +} +.tweet-text a { + border-bottom: 0; +} +.tweet-date { + margin: 0; + font-size: 13px; + line-height: 18px; + margin-left: 45px; + color: #999; +} +.profile-repos { + list-style: none; + margin: 0; + background: #fff; +} +.profile-repos li { + padding: 10px 15px; + border-bottom: 1px solid #c2c2c2; +} +.profile-repo-name { + border-bottom: 0; + font-weight: 500; +} +.profile-repo-name:hover { + border-bottom: 0; +} +.profile-repo-text { + color: #777; + margin: 0; + padding: 5px 0; + font-size: 13px; + line-height: 18px; +} +.profile-repo-stats { + list-style: none; + margin: 0; + font-size: 13px; + line-height: 18px; +} +.profile-repo-stats li { + padding: 0; + border: 0; + display: inline-block; + zoom: 1; + *display: inline; +} +.profile-repo-stats a { + border-bottom: 0; +} +.profile-repo-stats a:hover { + border-bottom: 0; + color: #333366; +} +.profile-shots { + list-style: none; + margin: 0; + padding: 15px 0; +} +.profile-shots > li { + float: left; + width: 300px; + padding: 10px; + margin: 0 0px 20px 20px; + background: #fff; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); +} +.profile-shot { + border-bottom: 0; + display: block; +} +.profile-shot img { + width: 300px; + height: 225px; +} +.profile-shot:hover { + border-bottom: 0; +} +.profile-shot-title { + display: block; + padding: 5px 0; + font-size: 13px; + line-height: 18px; + color: #4b4b4b; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.profile-shot-stats { + list-style: none; + margin: 0; + font-size: 13px; + line-height: 18px; +} +.profile-shot-stats li { + margin-bottom: 0; + padding: 0; + border: 0; + display: inline-block; + zoom: 1; + *display: inline; +} +.profile-shot-stats li:first-child a, +.profile-shot-stats li:first-child span { + margin-left: 0; +} +.profile-shot-stats a { + border-bottom: 0; +} +.profile-shot-stats a:hover { + border-bottom: 0; + color: #333366; +} +.profile-shot-date { + float: right; + color: #999; +} +.instagram .profile-shot img { + width: 300px; + height: 300px; +} +code, +pre { + padding: 0 3px 2px; + color: #333; + font-family: "Monaco", Courier New, monospace; + font-size: 12px; + font-weight: normal; + line-height: 20px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 2px 4px; + color: #333366; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 8px; + margin: 0 0 9px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +pre.prettyprint { + margin-bottom: 20px; +} +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +blockquote code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} +.com { + color: #93a1a1; +} +.lit { + color: #195f91; +} +.pun, +.opn, +.clo { + color: #93a1a1; +} +.fun { + color: #dc322f; +} +.str, +.atv { + color: #da3f47; +} +.kwd, +.linenums .tag { + color: #1e347b; +} +.typ, +.atn, +.dec, +.var { + color: teal; +} +.pln { + color: #48484c; +} +.prettyprint { + padding: 8px; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +.prettyprint.linenums { + -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; + -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; + box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; +} +ol.linenums { + margin: 0 0 0 33px; + /* IE indents via margin-left */ + +} +ol.linenums li { + padding-left: 12px; + color: #bebec5; + line-height: 18px; + text-shadow: 0 1px 0 #fff; +} +.main-header { + position: fixed; + z-index: 1100; + top: 0; + left: 0; + width: 240px; + height: 100%; + min-height: 700px; + float: left; + border-right: 1px solid #c2c2c2; + background: #e9e9e9 url('/static/imgs/b.png'); +} +.main-header hgroup .picture a { + display: inline-block; + height: 84px; + width: 84px; + margin: 60px 35px 20px 35px; + border: 3px solid #333366; + background: #000000 0 url('https://twimg0-a.akamaihd.net/profile_images/1149409097/20101018060848_samrat94_6HR8FZ5V2JQDPU34ENIKCWBL0STAMO91XG7Y.jpg'); + -webkit-box-shadow: 0 1px 1px #f9f9f9, inset 0 0 6px #000000; + -moz-box-shadow: 0 1px 1px #f9f9f9, inset 0 0 6px #000000; + box-shadow: 0 1px 1px #f9f9f9, inset 0 0 6px #000000; +} +.main-header hgroup h1 { + font-size: 24px; + margin: 0 35px; + text-shadow: 0 1px 1px #f9f9f9; +} +.main-header hgroup h2 { + margin: 10px 35px; + font-size: 14px; + font-weight: normal; + line-height: 25px; + color: #4b4b4b; +} +.main-header nav { + margin: 65px 0; +} +.main-header nav ul { + border-top: 1px solid #d2d2d2; + list-style: none; + margin-left: 0; +} +.main-header nav li { + margin-bottom: 0; +} +.main-header nav a, +.main-header nav a:hover { + border-bottom: 1px solid #d2d2d2; +} +.main-header nav a { + position: relative; + padding: 15px 30px; + color: #404040; + display: block; + font-weight: 500; + text-shadow: 0 1px 1px #f9f9f9; +} +.main-header nav a:hover { + color: #fff; + background: #333366; + border-right: 0; + text-shadow: none; +} +.main-header nav .sel { + border-right: 6px solid #333366; +} +.main-header .spinner { + position: absolute !important; + right: 30px; + top: 23px; +} +.main-header .fork-me { + position: absolute; + left: 30px; + bottom: 20px; + font-size: 13px; + color: #4b4b4b; + border-bottom: none; +} +.main-header .fork-me:hover { + color: #333366; +} +.main-section { + position: relative; + overflow: hidden; + margin-left: 241px; + padding: 35px; +} +.main-section h3.date { + width: 100%; + display: block; + margin-left: -34px; + padding: 20px 35px 30px 75px; + border-bottom: 1px solid #C2C2C2; + border-top: 1px solid #C2C2C2; + font-size: 16px; + font-weight: bold; + background-color: #ffffff; + background-color: rgba(255, 255, 255, 0.8); + color: #333366; +} +a.button_accent { + margin: 40px 50px; + padding: 10px 20px; + display: inline-block; + border: 3px solid #333366; + border-radius: 70px; + -moz-border-radius: 70px; + -webkit-border-radius: 70px; + text-transform: uppercase; + color: #333366; + font-size: 17px; + font-weight: 400; +} +a.button_accent:link { + color: #0e94ec; +} +a.button_accent:hover { + color: #ffffff; + background-color: #333366; + outline: 0; +} +a.button_accent:active { + color: #ffffff; + background-color: #333399; + outline: 0; +} +.blog-section { + padding: 0; +} +.blog-section hgroup h2, +.blog-section hgroup h1 { + font-size: 30px; + line-height: 35px; + font-weight: 500; + line-height: 40px; + margin: 50px 0 25px 0; +} +.blog-section hgroup h2 a { + border-bottom: 0; + font-weight: 500; +} +.blog-section hgroup h3 a { + display: none; +} +.blog-section hgroup h3 a.active { + position: fixed; + top: 0; + bottom: auto; + margin-top: 0; +} +.blog-section article { + width: 700px; + overflow: hidden; + line-height: 25px; + padding: 5px 35px 50px 34px; +} +.blog-section article img { + padding: 2px; + border: 1px solid #C2C2C2; + margin: 0px 15px 5px 0px; +} +.blog-section article a.img-link { + border-bottom: 0; +} +.blog-section article a.img-link:hover img { + border-color: #333366; +} +.blog-section footer { + padding-top: 10px; +} +.blog-section footer h4 { + float: left; + text-transform: uppercase; + font-size: 13px; + line-height: 28px; + padding: 0px 15px 0px 0; +} +.tags { + list-style: none; + margin: 0; +} +.tags li { + display: inline-block; + zoom: 1; + *display: inline; +} +.tags a { + padding: 3px 10px; + font-size: 13px; + text-shadow: 0 1px 1px #F9F9F9; + background: #E9E9E9; + border: 1px solid #C2C2C2; +} +.tags a:hover { + background: #333366; + color: #fff; + text-shadow: none; + border: 1px solid #333366; +} +.mobile-nav { + display: none; +} +.load-more-button { + display: inline-block; + margin: 0 20px 50px 20px; + padding: 10px 30px; + background-color: #333366; + color: #fff; +} +.load-more-button:hover { + border: 1px solid #333366; + background: #fff; + color: #333366; +} +.load-more-button .spinner { + left: 140px; + top: -8px; +} +@media (max-width: 767px) { + header.main-header hgroup .picture a, + header.main-header nav { + margin-top: 30px; + } + .blog-section article { + width: 400px; + } + .blog-section article img { + max-width: 400px; + } +} +@media (max-width: 600px) { + body { + background: #e9e9e9 url('/static/imgs/b.png'); + overflow-x: hidden; + } + .mobile-nav { + display: block; + position: fixed; + top: 0; + height: 45px; + width: 100%; + z-index: 3000; + background: #e9e9e9 url('/static/imgs/b.png'); + border-top: 3px solid #333366; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + } + .mobile-nav h3 { + float: right; + padding: 10px; + } + .mobile-nav h3 a { + border-bottom: 0; + font-weight: bold; + color: #404040; + text-shadow: 0 1px 1px #f9f9f9; + } + .mobile-nav .nav-btn { + float: left; + padding: 7px 10px 4px; + margin: 8px 10px; + background-color: #333333; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#404040), to(#333333)); + background-image: -moz-linear-gradient(top, #404040, #333333); + background-image: -ms-linear-gradient(top, #404040, #333333); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #404040), color-stop(100%, #333333)); + background-image: -webkit-linear-gradient(top, #404040, #333333); + background-image: -o-linear-gradient(top, #404040, #333333); + background-image: linear-gradient(top, #404040, #333333); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#404040', endColorstr='#333333', GradientType=0); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px #f9f9f9; + -moz-box-shadow: 0 1px 1px #f9f9f9; + box-shadow: 0 1px 1px #f9f9f9; + } + .mobile-nav .nav-btn-bar { + display: block; + width: 18px; + height: 2px; + margin-bottom: 3px; + background-color: #f9f9f9; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + } + header.main-header { + position: absolute; + } + header.main-header hgroup .picture a { + margin: 60px 0 10px 10px; + } + header.main-header hgroup h1 { + font-size: 18px; + margin: 0 10px; + } + header.main-header hgroup h2 { + margin: 0 10px 10px 10px; + } + header.main-header nav { + margin: 20px 0; + } + header.main-header .fork-me { + display: none; + } + .main-section { + margin: 45px 0 0 0; + position: relative; + min-height: 500px; + left: 0; + z-index: 2000; + background-color: #fff; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); + -webkit-transition: left .3s ease-out; + -moz-transition: left .3s ease-out; + -o-transition: left .3s ease-out; + transition: left .3s ease-out; + } + .main-section.nav-opened { + left: 240px; + } + .blog-section hgroup h2, + .blog-section hgroup h1 { + font-size: 24px; + line-height: 30px; + font-weight: 500; + margin: 10px 0 5px 0; + } + .blog-section hgroup h3 a { + position: static; + margin: 0; + padding: 5px 0; + border: 0; + font-weight: 300; + } + .blog-section article { + width: 95%; + padding: 10px 10px 30px; + border-bottom: 1px solid #C2C2C2; + } + .blog-section article img { + max-width: 300px; + } + .blog-section .loading { + padding: 15px; + } + .modal-backdrop { + z-index: 3500; + } + .modal { + position: absolute; + width: 100%; + height: 1500px; + z-index: 4000; + top: 45px; + } + .modal.fade-large { + width: 100%; + } + .modal.fade.in, + .modal.fade-large.in { + left: 0; + } + .profile.twitter, + .profile.github, + .profile.dribbble, + .profile.instagram { + overflow: scroll; + } + .profile-info .btn { + position: static; + margin-top: 5px; + } + .shots-likes-received, + .shots-likes-given { + display: none; + } + .profile-shots { + padding: 10px 0; + } + .profile-shots > li { + margin: 0 0 20px 10px; + width: 280px; + } + .profile-shots img { + width: 280px; + height: 210px; + } + .instagram .profile-shot img { + width: 280px; + height: 280px; + } +} diff --git a/syte/static/less/styles.less b/syte/static/less/styles.less new file mode 100644 index 0000000..6a999c1 --- /dev/null +++ b/syte/static/less/styles.less @@ -0,0 +1,253 @@ +@import 'reset.less'; +@import 'mixins.less'; + +@import 'variables.less'; + +@import 'base.less'; +@import 'buttons.less'; +@import 'modals.less'; +@import 'profiles.less'; +@import 'code.less'; + + +// Specific styles +.main-header { + position: fixed; + z-index: 1100; + top: 0; + left: 0; + width: 240px; + height: 100%; + min-height: 700px; + float: left; + border-right: 1px solid #c2c2c2; + background: #E9E9E9 url('/static/imgs/b.png'); + + + hgroup { + .picture a { + display: inline-block; + .square(84px); + margin: 60px 35px 20px 35px; + border: 3px solid @adjacent-color; + background: #00000 url('https://twimg0-a.akamaihd.net/profile_images/1149409097/20101018060848_samrat94_6HR8FZ5V2JQDPU34ENIKCWBL0STAMO91XG7Y.jpg'); + + @pic-shadow:0 1px 1px #f9f9f9, inset 0 0 6px #000000; + .box-shadow(@pic-shadow); + } + + h1 { + font-size: 24px; + margin: 0 35px; + text-shadow: 0 1px 1px #f9f9f9; + } + h2 { + margin: 10px 35px; + font-size: 14px; + font-weight: normal; + line-height: 25px; + color: @alternate-text-color; + } + } + + nav { + margin: 65px 0; + + ul { border-top: 1px solid #d2d2d2; list-style: none; margin-left: 0; } + li { margin-bottom: 0; } + a, a:hover { border-bottom: 1px solid #d2d2d2; } + a { + position: relative; + padding: 15px 30px; + color: @text-color; + display: block; + font-weight: 500; + text-shadow: 0 1px 1px #f9f9f9; + } + a:hover { + color: #fff; + background: @adjacent-color; + border-right: 0; + text-shadow: none; + } + .sel { border-right: 6px solid @adjacent-color; } + } + + .spinner { + position: absolute !important; + right: 30px; + top: 23px; + } + + .fork-me { + position: absolute; + left: 30px; + bottom: 20px; + font-size: 13px; + color: @alternate-text-color; + border-bottom: none; + } + .fork-me:hover { + color: @adjacent-color; + } +} + +.main-section { + position: relative; + overflow: hidden; + margin-left: 241px; + padding: 35px; +} + +.main-section h3.date { + width: 100%; + display: block; + margin-left: -34px; + padding: 20px 35px 30px 75px; + border-bottom: 1px solid #C2C2C2; + border-top: 1px solid #C2C2C2; + font-size: 16px; + font-weight: bold; + .alpha-background(#ffffff, 0.8); + color: @adjacent-color; +} + +a.button_accent { + margin:40px 50px; + padding:10px 20px; + display:inline-block; + border:3px solid @adjacent-color; + border-radius:70px; + -moz-border-radius:70px; + -webkit-border-radius:70px; + text-transform:uppercase; + color:@adjacent-color; + font-size:17px; + font-weight:400;} + +a.button_accent:link{color:#0e94ec;} +a.button_accent:hover{color:#ffffff; + background-color:@adjacent-color; + outline:0;} +a.button_accent:active{ + color:#ffffff; + background-color:#333399; + outline:0;} + +.blog-section { + padding: 0; + + hgroup { + h2, h1 { .h1; line-height: 40px; margin: 50px 0 25px 0;} + h2 a { + border-bottom: 0; + font-weight: 500; + } + h3 a { + display: none; + } + + h3 a.active { + position: fixed; + top: 0; + bottom: auto; + margin-top: 0; + } + } + + article { + width: 700px; + overflow: hidden; + line-height: 25px; + padding: 5px 35px 50px 34px; + + img { + padding: 2px; + border: 1px solid #C2C2C2; + margin: 0px 15px 5px 0px; + } + + a.img-link { + border-bottom: 0; + + &:hover img { border-color: @adjacent-color; } + } + } + + footer { + padding-top: 10px; + + h4 { + float: left; + text-transform: uppercase; + font-size: 13px; + line-height: 28px; + padding: 0px 15px 0px 0; + } + } +} + +.tags { + list-style: none; + margin: 0; + + li { + display: inline-block; + + //ie7 inline-block hack + zoom: 1; + *display: inline; + } + + a { + padding: 3px 10px; + font-size: 13px; + text-shadow: 0 1px 1px #F9F9F9; + background: #E9E9E9; + border: 1px solid #C2C2C2; + } + a:hover { + background: @adjacent-color; + color: #fff; + text-shadow: none; + border: 1px solid @adjacent-color; + } +} + +.mobile-nav { + display: none; +} + +.load-more-button { + display: inline-block; + margin: 0 20px 50px 20px; + padding: 10px 30px; + background-color: @adjacent-color; + color: #fff; + + &:hover { + border: 1px solid @adjacent-color; + background: #fff; + color: @adjacent-color; + } + + .spinner { + left: 140px; + top: -8px; + } +} + +@media (max-width: 767px) { + + header.main-header { + hgroup .picture a, nav { margin-top: 30px; } + } + + .blog-section article { + width: 400px; + + img { max-width: 400px; } + } +} + +@import 'styles-mobile.less'; diff --git a/syte/static/less/variables.css b/syte/static/less/variables.css new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/syte/static/less/variables.css diff --git a/syte/static/less/variables.less b/syte/static/less/variables.less new file mode 100644 index 0000000..1957a02 --- /dev/null +++ b/syte/static/less/variables.less @@ -0,0 +1,6 @@ +//variables +@adjacent-color: #333366; + +@text-color: #404040; +@alternate-text-color: #4b4b4b; +@link-color: #000000; diff --git a/syte/static/styles.less b/syte/static/styles.less new file mode 100644 index 0000000..258af65 --- /dev/null +++ b/syte/static/styles.less @@ -0,0 +1,252 @@ +@import 'reset.less'; +@import 'mixins.less'; + +@import 'variables.less'; + +@import 'base.less'; +@import 'buttons.less'; +@import 'modals.less'; +@import 'profiles.less'; +@import 'code.less'; + + +// Specific styles +.main-header { + position: fixed; + z-index: 1100; + top: 0; + left: 0; + width: 240px; + height: 100%; + min-height: 700px; + float: left; + border-right: 1px solid #c2c2c2; + background: #E9E9E9 url('/static/imgs/b.png'); + + + hgroup { + .picture a { + display: inline-block; + .square(84px); + margin: 60px 35px 20px 35px; + border: 3px solid @adjacent-color; + background: #00000 url('/static/imgs/pic.png'); + + @pic-shadow:0 1px 1px #f9f9f9, inset 0 0 6px #000000; + .box-shadow(@pic-shadow); + } + + h1 { + font-size: 24px; + margin: 0 35px; + text-shadow: 0 1px 1px #f9f9f9; + } + h2 { + margin: 10px 35px; + font-size: 14px; + font-weight: normal; + line-height: 25px; + color: @alternate-text-color; + } + } + + nav { + margin: 65px 0; + + ul { border-top: 1px solid #d2d2d2; list-style: none; margin-left: 0; } + li { margin-bottom: 0; } + a, a:hover { border-bottom: 1px solid #d2d2d2; } + a { + position: relative; + padding: 15px 30px; + color: @text-color; + display: block; + font-weight: 500; + text-shadow: 0 1px 1px #f9f9f9; + } + a:hover { + color: #fff; + background: @adjacent-color; + border-right: 0; + text-shadow: none; + } + .sel { border-right: 6px solid @adjacent-color; } + } + + .spinner { + position: absolute !important; + right: 30px; + top: 23px; + } + + .fork-me { + position: absolute; + left: 30px; + bottom: 20px; + font-size: 13px; + color: @alternate-text-color; + border-bottom: none; + } + .fork-me:hover { + color: @adjacent-color; + } +} + +.main-section { + position: relative; + overflow: hidden; + margin-left: 241px; + padding: 35px; +} + +.main-section h3.date { + width: 100%; + display: block; + margin-left: -34px; + padding: 20px 35px 30px 75px; + border-bottom: 1px solid #C2C2C2; + border-top: 1px solid #C2C2C2; + font-size: 16px; + font-weight: bold; + .alpha-background(#ffffff, 0.8); +} + +a.button_accent { + margin:40px 50px; + padding:10px 20px; + display:inline-block; + border:3px solid @adjacent-color; + border-radius:70px; + -moz-border-radius:70px; + -webkit-border-radius:70px; + text-transform:uppercase; + color:#000000; + font-size:17px; + font-weight:400;} + +a.button_accent:link{color:#0e94ec;} +a.button_accent:hover{color:#ffffff; + background-color:@adjacent-color; + outline:0;} +a.button_accent:active{ + color:#ffffff; + background-color:#0e94ec; + outline:0;} + +.blog-section { + padding: 0; + + hgroup { + h2, h1 { .h1; line-height: 40px; margin: 50px 0 25px 0;} + h2 a { + border-bottom: 0; + font-weight: 500; + } + h3 a { + display: none; + } + + h3 a.active { + position: fixed; + top: 0; + bottom: auto; + margin-top: 0; + } + } + + article { + width: 700px; + overflow: hidden; + line-height: 25px; + padding: 5px 35px 50px 34px; + + img { + padding: 2px; + border: 1px solid #C2C2C2; + margin: 0px 15px 5px 0px; + } + + a.img-link { + border-bottom: 0; + + &:hover img { border-color: @adjacent-color; } + } + } + + footer { + padding-top: 10px; + + h4 { + float: left; + text-transform: uppercase; + font-size: 13px; + line-height: 28px; + padding: 0px 15px 0px 0; + } + } +} + +.tags { + list-style: none; + margin: 0; + + li { + display: inline-block; + + //ie7 inline-block hack + zoom: 1; + *display: inline; + } + + a { + padding: 3px 10px; + font-size: 13px; + text-shadow: 0 1px 1px #F9F9F9; + background: #E9E9E9; + border: 1px solid #C2C2C2; + } + a:hover { + background: @adjacent-color; + color: #fff; + text-shadow: none; + border: 1px solid @adjacent-color; + } +} + +.mobile-nav { + display: none; +} + +.load-more-button { + display: inline-block; + margin: 0 20px 50px 20px; + padding: 10px 30px; + background-color: @adjacent-color; + color: #fff; + + &:hover { + border: 1px solid @adjacent-color; + background: #fff; + color: @adjacent-color; + } + + .spinner { + left: 140px; + top: -8px; + } +} + +@media (max-width: 767px) { + + header.main-header { + hgroup .picture a, nav { margin-top: 30px; } + } + + .blog-section article { + width: 400px; + + img { max-width: 400px; } + } +} + +@import 'styles-mobile.less'; diff --git a/syte/static/templates/500.html b/syte/static/templates/500.html new file mode 100644 index 0000000..68cb76d --- /dev/null +++ b/syte/static/templates/500.html @@ -0,0 +1,10 @@ +{% extends 'base.html' %} +{% block pagetitle %}500 Oops{% endblock %} +{% block main_section %} +<section class="main-section"> + <article> + <h2>Oops!</h2> + <p>An error occurred. Please try again later.</p> + </article> +</section> +{% endblock %} diff --git a/syte/static/templates/blog-post-audio.html b/syte/static/templates/blog-post-audio.html new file mode 100644 index 0000000..ec3e9e2 --- /dev/null +++ b/syte/static/templates/blog-post-audio.html @@ -0,0 +1,20 @@ +<article id="{{ id }}"> + <hgroup> + <h2><a href="/post/{{ id }}">{{ artist }} - {{ track_name }}</a></h2> + <h3><a href="#{{ id }}">{{ formated_date }}</a></h3> + </hgroup> + {{{ player }}} + {{#if caption}} + {{{ caption }}} + {{/if}} + {{#if tags }} + <footer> + <h4>Tags</h4> + <ul class="tags"> + {{#each tags}} + <li><a href="/tags/{{ this }}">{{ this }}</a></li> + {{/each}} + </ul> + </footer> + {{/if}} +</article> diff --git a/syte/static/templates/blog-post-link.html b/syte/static/templates/blog-post-link.html new file mode 100644 index 0000000..d1f0b42 --- /dev/null +++ b/syte/static/templates/blog-post-link.html @@ -0,0 +1,17 @@ +<article id="{{ id }}"> + <hgroup> + <h2><a href="{{url}}">Link: {{title}}</a></h2> + <h3><a href="#{{ id }}">{{ formated_date }}</a></h3> + </hgroup> + {{{ description }}} + {{#if tags}} + <footer> + <h4>Tags</h4> + <ul class="tags"> + {{#each tags}} + <li><a href="/tags/{{ this }}">{{ this }}</a></li> + {{/each}} + </ul> + </footer> + {{/if}} +</article> diff --git a/syte/static/templates/blog-post-photo.html b/syte/static/templates/blog-post-photo.html new file mode 100644 index 0000000..42e4ff6 --- /dev/null +++ b/syte/static/templates/blog-post-photo.html @@ -0,0 +1,27 @@ +<article id="{{ id }}"> + <hgroup> + <h2><a href="/post/{{ id }}">Photo</a></h2> + <h3><a href="#{{ id }}">{{ formated_date }}</a></h3> + </hgroup> + {{#each photos}} + {{#with original_size}} + <p><img src="{{url}}" /></p> + {{/with}} + {{#if caption}} + {{{ caption }}} + {{/if}} + {{/each}} + {{#if caption}} + {{{ caption }}} + {{/if}} + {{#if tags }} + <footer> + <h4>Tags</h4> + <ul class="tags"> + {{#each tags}} + <li><a href="/tags/{{ this }}">{{ this }}</a></li> + {{/each}} + </ul> + </footer> + {{/if}} +</article> diff --git a/syte/static/templates/blog-post-quote.html b/syte/static/templates/blog-post-quote.html new file mode 100644 index 0000000..d15e67e --- /dev/null +++ b/syte/static/templates/blog-post-quote.html @@ -0,0 +1,22 @@ +<article id="{{ id }}"> + <hgroup> + <h2><a href="/post/{{ id }}">Quote</a></h2> + <h3><a href="#{{ id }}">{{ formated_date }}</a></h3> + </hgroup> + <blockquote> + {{text}} + </blockquote> + {{#if source}} + <p>{{{ source }}}</p> + {{/if}} + {{#if tags }} + <footer> + <h4>Tags</h4> + <ul class="tags"> + {{#each tags}} + <li><a href="/tags/{{ this }}">{{ this }}</a></li> + {{/each}} + </ul> + </footer> + {{/if}} +</article> diff --git a/syte/static/templates/blog-post-text.html b/syte/static/templates/blog-post-text.html new file mode 100644 index 0000000..b9a0cb6 --- /dev/null +++ b/syte/static/templates/blog-post-text.html @@ -0,0 +1,17 @@ +<article id="{{ id }}"> + <hgroup> + <h2><a href="/post/{{ id }}">{{ title }} </a></h2> + <h3><a href="#{{ id }}">{{ formated_date }}</a></h3> + </hgroup> + {{{ body }}} + {{#if tags}} + <footer> + <h4>Tags</h4> + <ul class="tags"> + {{#each tags}} + <li><a href="/tags/{{ this }}">{{ this }}</a></li> + {{/each}} + </ul> + </footer> + {{/if}} +</article> diff --git a/syte/static/templates/blog-post-video.html b/syte/static/templates/blog-post-video.html new file mode 100644 index 0000000..1f5dce0 --- /dev/null +++ b/syte/static/templates/blog-post-video.html @@ -0,0 +1,19 @@ +<article id="{{ id }}"> + <hgroup> + <h2><a href="/post/{{ id }}">Video</a></h2> + <h3><a href="#{{ id }}">{{ formated_date }}</a></h3> + </hgroup> + <p> + <a href="{{ permalink_url }}" class="no-border"><img src="{{ thumbnail_url }}" /></a> + </p> + {{#if tags }} + <footer> + <h4>Tags</h4> + <ul class="tags"> + {{#each tags}} + <li><a href="/tags/{{ this }}">{{ this }}</a></li> + {{/each}} + </ul> + </footer> + {{/if}} +</article> diff --git a/syte/static/templates/dribbble-view.html b/syte/static/templates/dribbble-view.html new file mode 100644 index 0000000..259b1cd --- /dev/null +++ b/syte/static/templates/dribbble-view.html @@ -0,0 +1,46 @@ +<div class="profile dribbble modal fade-large" id="dribbble-profile"> + {{#with user}} + <div class="profile-info"> + <button class="close" data-dismiss="modal">×</button> + <a href="http://dribbble.com/{{ username }}" class="profile-avatar"> + <img src="{{ avatar_url }}" alt="{{name}}" /> + </a> + <div class="profile-name"> + <h2><a href="http://dribbble.com/{{ username }}">{{ name }}</a></h2> + <h3><a href="http://dribbble.com/{{ username }}">@{{ username}}</a></h3> + </div> + <p class="profile-location-url"> + {{#if location }} + <span>{{ location }}</span> + <span class="divider">·</span> + {{/if}} + {{#if website_url }} + <span><a href="{{ website_url }}">{{ website_url }}</a></span> + {{/if}} + </p> + <a href="http://dribbble.com/{{ username }}" class="btn">Follow on Dribbble</a> + </div> + <ul class="profile-stats"> + <li><a href="http://dribbble.com/{{ username }}"><strong>{{ shots_count }}</strong> shots</a></li> + <li><a href="http://dribbble.com/{{ username }}" class="shots-likes-received"><strong>{{ likes_received_count }}</strong> likes received</a></li> + <li><a href="http://dribbble.com/{{ username }}" class="shots-likes-given"><strong>{{ likes_count }}</strong> likes given</a></li> + <li><a href="http://dribbble.com/{{ username }}/following"><strong>{{ following_count }}</strong> following</a></li> + <li><a href="http://dribbble.com/{{ username }}/followers"><strong>{{ followers_count }}</strong> followers</a></li> + </ul> + {{/with}} + <ul class="profile-shots"> + {{#each shots}} + <li> + <a href="{{ url }}" class="profile-shot"> + <img src="{{ image_url }}" alt="{{ title }}" /> + </a> + <span class="profile-shot-title">{{ title }}</span> + <ul class="profile-shot-stats"> + <li><a href="" class="profile-watchers">{{ views_count }}</a></li> + <li><a href="" class="profile-comments">{{ comments_count }}</a></li> + <li><a href="" class="profile-likes">{{ likes_count }}</a></li> + </ul> + </li> + {{/each}} + </ul> +</div> diff --git a/syte/static/templates/github-view.html b/syte/static/templates/github-view.html new file mode 100644 index 0000000..c71ad38 --- /dev/null +++ b/syte/static/templates/github-view.html @@ -0,0 +1,46 @@ +<div class="profile github modal fade" id="github-profile"> + {{#with user }} + <div class="profile-info"> + <button class="close" data-dismiss="modal">×</button> + <a href="http://github.com/{{ login }}" class="profile-avatar"> + <img src="http://gravatar.com/avatar/{{ gravatar_id }}" alt="{{name}}" /> + </a> + <div class="profile-name"> + <h2><a href="http://github.com/{{ login }}">{{ name }}</a></h2> + <h3><a href="http://github.com/{{ login }}">{{ login }}</a></h3> + </div> + <p class="profile-location-url"> + {{#if location }} + <span>{{ location }}</span> + <span class="divider">·</span> + {{/if}} + {{#if blog }} + <span><a href="{{ blog }}">{{ blog }}</a></span> + {{/if}} + </p> + </div> + <ul class="profile-stats"> + <li><a href="http://github.com/{{ login }}"><strong>{{ public_repo_count }}</strong> repos</a></li> + <li><a href="http://github.com/{{ login }}/following"><strong>{{ following_count }}</strong> following</a></li> + <li><a href="http://github.com/{{ login }}/followers"><strong>{{ followers_count }}</strong> followers</a></li> + </ul> + <div class="profile-info-footer"> + <a href="http://github.com/{{ login }}" class="btn">Follow on Github</a> + </div> + {{/with}} + <ul class="profile-repos"> + {{#each repositories}} + <li> + <a href="{{ url }}" class="profile-repo-name">{{ name }}</a> + <p class="profile-repo-text"> + {{ description }} + </p> + <ul class="profile-repo-stats"> + <li>{{ language }}</li> + <li><a href="{{ url }}/watchers" class="profile-watchers">{{ watchers }}</a></li> + <li><a href="{{ url }}/network" class="profile-forks">{{ forks }}</a></li> + </ul> + </li> + {{/each}} + </ul> +</div> diff --git a/syte/static/templates/instagram-view-more.html b/syte/static/templates/instagram-view-more.html new file mode 100644 index 0000000..78db9fc --- /dev/null +++ b/syte/static/templates/instagram-view-more.html @@ -0,0 +1,25 @@ +{{#each media}} +<li> + <a href="{{ link }}" class="profile-shot"> + {{#with images}} + {{#with low_resolution }} + <img src="{{ url }}" alt="Instagram Picture" /> + {{/with}} + {{/with}} + </a> + <span class="profile-shot-title"> + {{#if caption}} + {{#with caption}} + {{ text }} + {{/with}} + {{else}} + Untitled + {{/if}} + </span> + <ul class="profile-shot-stats"> + {{#with likes}}<li><span class="profile-likes">{{ count }}</span></li>{{/with}} + <li class="profile-shot-date">{{ formated_date }}</li> + </ul> +</li> +{{/each}} + diff --git a/syte/static/templates/instagram-view.html b/syte/static/templates/instagram-view.html new file mode 100644 index 0000000..90d49f7 --- /dev/null +++ b/syte/static/templates/instagram-view.html @@ -0,0 +1,58 @@ +<div class="profile instagram modal fade-large" id="instagram-profile"> + {{#with user}} + <div class="profile-info"> + <button class="close" data-dismiss="modal">×</button> + <span class="profile-avatar"> + <img src="{{ profile_picture }}" alt="{{ full_name }}" /> + </span> + <div class="profile-name"> + <h2>{{ full_name }}</h2> + </div> + {{#if bio }}<p class="profile-description">{{{ bio }}}</p>{{/if}} + <p class="profile-location-url"> + {{#if website }} + <span><a href="{{ website }}">{{ website }}</a></span> + {{/if}} + </p> + </div> + <ul class="profile-stats"> + {{#with counts}} + <li><span><strong>{{ media }}</strong> pictures</span></li> + <li><span><strong>{{ follows }}</strong> following</span></li> + <li><span><strong>{{ followed_by }}</strong> followers</span></li> + {{/with}} + </ul> + {{/with}} + <ul class="profile-shots"> + {{#each media}} + <li> + <a href="{{ link }}" class="profile-shot"> + {{#with images}} + {{#with low_resolution }} + <img src="{{ url }}" alt="Instagram Picture" /> + {{/with}} + {{/with}} + </a> + <span class="profile-shot-title"> + {{#if caption}} + {{#with caption}} + {{ text }} + {{/with}} + {{else}} + Untitled + {{/if}} + </span> + <ul class="profile-shot-stats"> + {{#with likes}}<li><span class="profile-likes">{{ count }}</span></li>{{/with}} + <li class="profile-shot-date">{{ formated_date }}</li> + </ul> + </li> + {{/each}} + </ul> + {{#if pagination}} + {{#with pagination}} + <button class="load-more-button" id="load-more-pics" data-control-next="{{ next_max_id }}">Load more...</button> + {{/with}} + {{/if}} +</div> + diff --git a/syte/static/templates/twitter-view.html b/syte/static/templates/twitter-view.html new file mode 100644 index 0000000..efa08aa --- /dev/null +++ b/syte/static/templates/twitter-view.html @@ -0,0 +1,52 @@ +<div class="profile twitter modal fade" id="twitter-profile"> + {{#with user}} + <div class="profile-info"> + <button class="close" data-dismiss="modal">×</button> + <a href="http://twitter.com/#!/{{ screen_name }}" class="profile-avatar"> + <img src="{{ profile_image_url }}" alt="{{name}}" /> + </a> + <div class="profile-name"> + <h2><a href="http://twitter.com/#!/{{ screen_name }}">{{ name }}</a></h2> + <h3><a href="http://twitter.com/#!/{{ screen_name }}">@{{ screen_name}}</a></h3> + </div> + <p class="profile-description">{{{ f_description }}}</p> + <p class="profile-location-url"> + {{#if location }} + <span>{{ location }}</span> + <span class="divider">·</span> + {{/if}} + {{#if url }} + <span><a href="{{ url }}">{{ url }}</a></span> + {{/if}} + </p> + </div> + <ul class="profile-stats"> + <li><a href="http://twitter.com/#!/{{ screen_name }}"><strong>{{ statuses_count }}</strong> tweets</a></li> + <li><a href="http://twitter.com/#!/{{ screen_name }}/following"><strong>{{ friends_count }}</strong> following</a></li> + <li><a href="http://twitter.com/#!/{{ screen_name }}/followers"><strong>{{ followers_count }}</strong> followers</a></li> + </ul> + <div class="profile-info-footer"> + <a href="http://twitter.com/#!/{{ screen_name }}" class="btn">Follow on Twitter</a> + </div> + {{/with}} + <ul class="profile-tweets"> + {{#each tweets}} + <li> + {{#with user }} + <a href="http://twitter.com/#!/{{ screen_name }}" class="tweet-title"> + <img src="{{ profile_image_url }}" alt="{{ name }}" /> + <strong>{{ name }}</strong> + <span>@{{ screen_name }}</span> + </a> + {{/with}} + <p class="tweet-text"> + {{{ f_text }}} + </p> + <p class="tweet-date"> + {{ formated_date }} + </p> + </li> + {{/each}} + </ul> +</div> + diff --git a/syte/templates/404.html b/syte/templates/404.html new file mode 100644 index 0000000..d4071bc --- /dev/null +++ b/syte/templates/404.html @@ -0,0 +1,10 @@ +{% extends 'base.html' %} +{% block pagetitle %}404 Not Found{% endblock %} +{% block main_section %} +<section class="main-section"> + <article> + <h2>The page you are looking for was not found.</h2> + <p>Please use the links on the left to navigate to your desired destination.</p> + </article> +</section> +{% endblock %} diff --git a/syte/templates/analytics.html b/syte/templates/analytics.html new file mode 100644 index 0000000..ba174fc --- /dev/null +++ b/syte/templates/analytics.html @@ -0,0 +1,11 @@ +{% if GOOGLE_ANALYTICS %} + <script type="text/javascript"> + var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); + document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); + </script> + <script type="text/javascript"> + try { + var pageTracker = _gat._getTracker("{{GOOGLE_ANALYTICS}}"); + pageTracker._trackPageview(); + } catch(err) {}</script> +{% endif %}
\ No newline at end of file diff --git a/syte/templates/article.html b/syte/templates/article.html new file mode 100644 index 0000000..756a738 --- /dev/null +++ b/syte/templates/article.html @@ -0,0 +1,50 @@ +{% extends 'base.html' %} +{% block title %}{{article.title}} | Samrat Man Singh{% endblock %} +{% block main_section %} +<section class="main-section blog-section" id="blog-posts"> + <h3 class="date">{{article.locale_date}}</h3> + <article> + <hgroup> + + <h2><a href="{{SITEURL}}/{{article.url}}">{{article.title}}</a></h2> + {% include "twitter.html" %} + <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a> + <!--<script type="text/javascript" src="http://hnapiwrapper.herokuapp.com/static/js/button.js"></script>--> + {% include "hacker_news.html" %} + </hgroup> + {{article.content}} + + <p> + If you liked this post, you should <a href="http://twitter.com/samratmansingh">follow me on Twitter.</a> + </p> + <br/> + <footer> + {% if article.tags %} + <h4>TAGS</h4> + <ul class="tags"> + {% for tag in article.tags %} + <li><a href="{{ SITEURL }}/tag/{{ tag }}.html" class="tag">{{tag}}</a></li> + {% endfor %} + </ul> + {% endif %} + + <br/> + {% if DISQUS_SITENAME %} + <div class="comments"> + <div id="disqus_thread"></div> + <script type="text/javascript"> + var disqus_identifier = "{{ article.url }}"; + (function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = 'http://{{ DISQUS_SITENAME }}.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + </script> + </div> + {% endif %} + </footer> + </article> +</section> + + +{% endblock %} diff --git a/syte/templates/base.html b/syte/templates/base.html new file mode 100644 index 0000000..a0d769a --- /dev/null +++ b/syte/templates/base.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<html lang="en"> +{% block head %} +<head> + <meta charset="utf-8" /> + <meta name="description" content="Personal website and blog of Samrat Man Singh. Follow him at @samratmansingh" /> + <meta name="keywords" content="Samrat Man Singh, python, flask, computers, technology, nepal" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>{% block title %}{{SITENAME}}{% endblock %}</title> + <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> + + <link rel="stylesheet" href="{{SITEURL}}/{{ MEDIA_URL }}css/styles.min.css" type="text/css" media="screen, projection"> + +</head> +{% endblock %} +<body> +<header class="main-header"> + <hgroup> + <div class="picture"> + <a href="/" rel="home"></a> + </div> + <h1>{{ SITENAME }}</h1> + <h2>18 year-old from Nepal interested in computers and technology.</h2> + </hgroup> + <nav> + <ul class="main-nav"> + <li><a href="/" id="home-link">Home</a></li> + <li><a href="http://twitter.com/#!/samratmansingh" id="twitter-link">Twitter</a></li> + <li><a href="http://github.com/samrat" id="github-link">Github</a></li> + <li><a href="http://feeds.feedburner.com/SamratManSingh" id="github-link">Feed</a></li> + <li><a href="mailto:samratmansingh@gmail.com?subject=Hello" id="contact-link">Contact</a></li> + </ul> + </nav> + <a href="http://pelican.notmyidea.org" class="fork-me">Powered by Pelican.</a> + +</header> +{% block main_section %}{% endblock %} +<div class="mobile-nav"> + <span class="nav-btn" id="mobile-nav-btn"> + <span class="nav-btn-bar"></span> + <span class="nav-btn-bar"></span> + <span class="nav-btn-bar"></span> + </span> + <h3><a href="/">samrat.github.com</a></h3> +</div> +<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> +<script type="text/javascript"> +/*<![CDATA[*/ +var twitter_integration_enabled = {% if TWITTER_INTEGRATION_ENABLED %}true{% else %}false{% endif %}, + github_integration_enabled = {% if GITHUB_INTEGRATION_ENABLED %}true{% else %}false{% endif %}, + dribbble_integration_enabled = {% if DRIBBBLE_INTEGRATION_ENABLED %}true{% else %}false{% endif %}, + instagram_integration_enabled = {% if INSTAGRAM_INTEGRATION_ENABLED %}true{% else %}false{% endif %}; +/*]]>*/ +</script> + +<script src="{{ SITEURL }}/{{ MEDIA_URL }}js/min/scripts.min.js"></script> + +{% include "analytics.html" %} +</body> diff --git a/syte/templates/hacker_news.html b/syte/templates/hacker_news.html new file mode 100644 index 0000000..b0fef97 --- /dev/null +++ b/syte/templates/hacker_news.html @@ -0,0 +1,7 @@ +<script> + (function() { + var hn = document.createElement('script'); hn.type = 'text/javascript'; + hn.async = true; hn.src = 'http://hnbutton.appspot.com/static/hn.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(hn, s); + })(); +</script> diff --git a/syte/templates/index.html b/syte/templates/index.html new file mode 100644 index 0000000..9f42064 --- /dev/null +++ b/syte/templates/index.html @@ -0,0 +1,18 @@ +{% extends 'base.html' %} +{% block main_section %} +<section class="main-section blog-section" id="blog-posts"> + {% for article in articles_page.object_list %} + <h3 class="date">{{article.locale_date}}</h3> + <article> + <hgroup> + <h2><a href="{{article.url}}" title="Permalink to {{article.title}}">{{article.title}}</a></h2> + + </hgroup> + {{article.content}} + </article> +{% endfor %} + +{% include "pagination.html" %} + +</section> +{% endblock %} diff --git a/syte/templates/instagram_auth.html b/syte/templates/instagram_auth.html new file mode 100644 index 0000000..d864641 --- /dev/null +++ b/syte/templates/instagram_auth.html @@ -0,0 +1,21 @@ +{% extends 'base.html' %} +{% block pagetitle %}Instagram Auth{% endblock %} +{% block main_section %} +<section class="main-section"> + <article> + {% if error %} + <h2>Unable to get Access Token</h2> + <p>{{ error }}</p> + {% else %} + <h2>Instagram Access Token</h2> + <p>Go to your syte_settings.py and enter the token under <code>INSTAGRAM_ACCESS_TOKEN</code> and the user id under <code>INSTAGRAM_USER_ID</code>.</p> + <dl> + <dt>User Name</dt><dd> {{ user_name }}</dd> + <dt>User ID</dt><dd>{{ user_id }}</dd> + <dt>Access Token</dt><dd>{{ token }}</dd> + </dl> + {% endif %} + </article> +</section> +{% endblock %} + diff --git a/syte/templates/pagination.html b/syte/templates/pagination.html new file mode 100644 index 0000000..b53a580 --- /dev/null +++ b/syte/templates/pagination.html @@ -0,0 +1,14 @@ +{% if DEFAULT_PAGINATION %} +<p class="paginator"> + {% if articles_page.has_previous() %} + {% if articles_page.previous_page_number() == 1 %} + <a href="{{ SITEURL }}/{{ page_name }}.html" class="button_accent">← newer</a> + {% else %} + <a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html" class="button_accent">← newer</a> + {% endif %} + {% endif %} + {% if articles_page.has_next() %} + <a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html" class="button_accent" style="float:right; right: 0;">continue →</a> + {% endif %} +</p> +{% endif %} diff --git a/syte/templates/tag.html b/syte/templates/tag.html new file mode 100644 index 0000000..ae97414 --- /dev/null +++ b/syte/templates/tag.html @@ -0,0 +1,18 @@ +{% extends 'base.html' %} +{% block title %}Posts tagged '{{tag}}' | Samrat Man Singh {% endblock %} +{% block main_section %} +<section class="main-section blog-section" id="blog-posts"> + {% for article in articles[:5] %} + <h3 class="date">{{article.locale_date}}</h3> + <article> + <hgroup> + <h2><a href="{{article.url}}" title="Permalink to {{article.title}}">{{article.title}}</a></h2> + + </hgroup> + {{article.content}} + </article> +{% endfor %} +</section> + + +{% endblock %} diff --git a/syte/templates/twitter.html b/syte/templates/twitter.html new file mode 100644 index 0000000..c6b159f --- /dev/null +++ b/syte/templates/twitter.html @@ -0,0 +1,3 @@ +{% if TWITTER_USERNAME %} +<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="{{TWITTER_USERNAME}}">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> +{% endif %}
\ No newline at end of file |