diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..7c484044 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +*.iml +.idea/ +.ipr +.iws +*~ +~* +*.diff +*.patch +*.bak +.DS_Store +Thumbs.db +.svn/ +*.swp +.project +.settings/ +node_modules/ +_site/ diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 00000000..249ae8f1 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,15 @@ +{ + "asi" : true, + "boss" : true, + "browser" : true, + "curly" : false, + "debug" : true, + "devel" : true, + "eqeqeq" : false, + "eqnull" : true, + "expr" : true, + "laxbreak" : true, + "laxcomma" : true, + "validthis": true, + "multistr" : true +} \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..165d9ae9 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - 0.10 +before_script: + - npm install -g grunt-cli \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 00000000..554f9fcf --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,93 @@ +module.exports = function(grunt) { + 'use strict'; + + // Project configuration. + grunt.initConfig({ + + // Task configuration. + jshint: { + options: { + jshintrc: '.jshintrc' + }, + gruntfile: { + src: 'Gruntfile.js' + }, + build: { + src: 'js/*.js' + } + }, + + concat: { + js: { + options: { + separator: ';' + }, + src: [ + 'js/lib/zepto.js', + 'js/lib/detect.js', + 'js/lib/touch.js', + 'js/lib/spa.js', + 'js/lib/template.js', + 'js/lib/marked.js', + 'js/lib/highlight.js', + 'js/boot.js', + 'js/pull2refresh.js', + 'js/issuelist.js', + 'js/side.js', + 'js/menu.js', + 'js/home.js', + 'js/labels.js', + 'js/issues.js' + ], + dest: 'dist/main.js' + } + }, + + uglify: { + js: { + files: { + 'dist/main.min.js': 'dist/main.js' + } + } + }, + + less: { + production: { + options: { + cleancss: true + }, + files: { + 'dist/main.min.css': 'css/boot.less' + } + } + }, + + clean: { + temporary: ['dist/main.js', 'dest/main.min.css'] + } + + }) + + // These plugins provide necessary tasks. + grunt.loadNpmTasks('grunt-contrib-concat') + grunt.loadNpmTasks('grunt-contrib-jshint') + grunt.loadNpmTasks('grunt-contrib-uglify') + grunt.loadNpmTasks('grunt-contrib-less') + grunt.loadNpmTasks('grunt-contrib-clean') + + + // Default task. + grunt.registerTask( + 'default', + [ + 'jshint', + 'concat', + 'uglify', + 'less', + 'clean' + ]) + + // // Test task. + grunt.registerTask('test', ['jshint']) + +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..07fbb2ca --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 zhaoda(赵达) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..0288b27a --- /dev/null +++ b/README.md @@ -0,0 +1,159 @@ +# Spring [![Build Status](https://img.shields.io/travis/zhaoda/spring.svg)](https://travis-ci.org/zhaoda/spring) + +Spring is a blog engine written by GitHub Issues, or is a simple, static web site generator. No more server and database, you can setup it in free hosting with GitHub Pages as a repository, then post the blogs in the repository Issues. + +You can add some labels in your repository Issues as the blog category, and create Issues for writing blog content through Markdown. + +Spring has responsive templates, looking good on mobile, tablet, and desktop.Gracefully degrading in older browsers. Compatible with Internet Explorer 10+ and all modern browsers. + +Get up and running in seconds. + +[中文介绍](http://zhaoda.net/2014/03/21/%E4%BD%BF%E7%94%A8Spring%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2.html) + +## Quick start guide + +For the impatient, here's how to get a Spring blog site up and running. + +### First of all + +* Fork the [Spring](https://github.com/zhaoda/spring "Spring") repository as yours. +* Goto your repository settings page to rename `Repository Name`. +* Hosted directly on [GitHub Pages](http://pages.github.com "GitHub Pages") from your project repository, you can take it as *User or organization site* or *Project site(create a gh-pages branch)*. +* Also, you can [set up a custom domain with Pages](https://help.github.com/articles/setting-up-a-custom-domain-with-pages). + +### Secondly + +* Open the `index.html` file to edit the config variables with yours below. + + ```javascript + $.extend(spring.config, { + // my blog title + title: 'Spring', + // my blog description + desc: "A blog engine written by github issues [Fork me on GitHub](https://github.com/zhaoda/spring)", + // my github username + owner: 'zhaoda', + // creator's username + creator: 'zhaoda', + // the repository name on github for writting issues + repo: 'spring', + // custom page + pages: [ + ] + }) + ``` +* Put your domain into the `CNAME ` file if you have. +* Commit your change and push it. + +### And then + +* Goto your repository settings page to turn on the `Issues` feature. +* Browser this repository's issues page, like this `https://github.com/your-username/your-repo-name/issues?state=open`. +* Click the `New Issue` button to just write some content as a new one blog. + +### Finally + +* Browser this repository's GitHub Pages url, like this `http://your-username.github.io/your-repo-name`, you will see your Spring blog, have a test. +* And you're done! + +## Custom development + +### Installation + +* You will need a web server installed on your system, for example, Nginx, Apache etc. +* Configure your spring project to your local web server directory. +* Run and browser it, like `http://localhost/spring/dev.html` . +* `dev.html` is used to develop, `index.html` is used to runtime. + +### Folder Structure + +```bash +spring/ +├── css/ +| ├── boot.less #import other less files +| ├── github.less #github highlight style +| ├── home.less #home page style +| ├── issuelist.less #issue list widget style +| ├── issues.less #issues page style +| ├── labels.less #labels page style +| ├── main.less #commo style +| ├── markdown.less #markdown format style +| ├── menu.less #menu panel style +| ├── normalize.less #normalize style +| ├── pull2refresh.less #pull2refresh widget style +| └── side.html #side panel style +├── dist/ +| ├── main.min.css #css for runtime +| └── main.min.js #js for runtime +├── img/ #some icon, startup images +├── js/ +| ├── lib/ #some js librarys need to use +| ├── boot.js #boot +| ├── home.js #home page +| ├── issuelist.js #issue list widget +| ├── issues.js #issues page +| ├── labels.js #labels page +| ├── menu.js #menu panel +| ├── pull2refresh.less #pull2refresh widget +| └── side.html #side panel +├── css/ +| ├── boot.less #import other less files +| ├── github.less #github highlight style +| ├── home.less #home page style +| ├── issuelist.less #issue list widget style +| ├── issues.less #issues page style +| ├── labels.less #labels page style +| ├── main.less #commo style +| ├── markdown.less #markdown format style +| ├── menu.less #menu panel style +| ├── normalize.less #normalize style +| ├── pull2refresh.less #pull2refresh widget style +| └── side.html #side panel style +├── dev.html #used to develop +├── favicon.ico #website icon +├── Gruntfile.js #Grunt task config +├── index.html #used to runtime +└── package.json #nodejs install config +``` + +### Customization + +* Browser `http://localhost/spring/dev.html`, enter the development mode. +* Changes you want to modify the source code, like `css`, `js` etc. +* Refresh `dev.html` view change. + +### Building + +* You will need [Node.js](http://nodejs.org/ "Node.js") installed on your system. +* Installation package. + + ```bash +$ npm install +``` +* Run grunt task. + + ```bash +$ grunt +``` +* Browser `http://localhost/spring/index.html`, enter the runtime mode. +* If there is no problem, commit and push the code. +* Don't forget to merge `master` branch into `gh-pages` branch if you have. +* And you're done! Good luck! + +## Report a bug + +* Check if the bug is already fixed in the [master branch](https://github.com/zhaoda/spring/commits/master) since the last release. +* Check [existing issues](https://github.com/zhaoda/spring/issues). +* [Open a new one](https://github.com/zhaoda/spring/issues/new), including exact browser & platform information. + +## Who used + +* http://zhaoda.net/spring +* http://zhaoda.net/blog + +If you are using, please [tell me](https://github.com/zhaoda/spring/issues/6). + +## License + +Spring is available under the terms of the [MIT License](https://raw.githubusercontent.com/zhaoda/spring/master/LICENSE "MIT License") + diff --git a/css/boot.less b/css/boot.less new file mode 100644 index 00000000..d426884a --- /dev/null +++ b/css/boot.less @@ -0,0 +1,11 @@ +@import "normalize"; +@import "github"; +@import "main"; +@import "markdown"; +@import "pull2refresh"; +@import "issuelist"; +@import "side"; +@import "menu"; +@import "home"; +@import "labels"; +@import "issues"; \ No newline at end of file diff --git a/css/github.less b/css/github.less new file mode 100644 index 00000000..71967a37 --- /dev/null +++ b/css/github.less @@ -0,0 +1,125 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; padding: 0.5em; + color: #333; + background: #f8f8f8 +} + +.hljs-comment, +.hljs-template_comment, +.diff .hljs-header, +.hljs-javadoc { + color: #998; + font-style: italic +} + +.hljs-keyword, +.css .rule .hljs-keyword, +.hljs-winutils, +.javascript .hljs-title, +.nginx .hljs-title, +.hljs-subst, +.hljs-request, +.hljs-status { + color: #333; + font-weight: bold +} + +.hljs-number, +.hljs-hexcolor, +.ruby .hljs-constant { + color: #099; +} + +.hljs-string, +.hljs-tag .hljs-value, +.hljs-phpdoc, +.tex .hljs-formula { + color: #d14 +} + +.hljs-title, +.hljs-id, +.coffeescript .hljs-params, +.scss .hljs-preprocessor { + color: #900; + font-weight: bold +} + +.javascript .hljs-title, +.lisp .hljs-title, +.clojure .hljs-title, +.hljs-subst { + font-weight: normal +} + +.hljs-class .hljs-title, +.haskell .hljs-type, +.vhdl .hljs-literal, +.tex .hljs-command { + color: #458; + font-weight: bold +} + +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-rules .hljs-property, +.django .hljs-tag .hljs-keyword { + color: #000080; + font-weight: normal +} + +.hljs-attribute, +.hljs-variable, +.lisp .hljs-body { + color: #008080 +} + +.hljs-regexp { + color: #009926 +} + +.hljs-symbol, +.ruby .hljs-symbol .hljs-string, +.lisp .hljs-keyword, +.tex .hljs-special, +.hljs-prompt { + color: #990073 +} + +.hljs-built_in, +.lisp .hljs-title, +.clojure .hljs-built_in { + color: #0086b3 +} + +.hljs-preprocessor, +.hljs-pragma, +.hljs-pi, +.hljs-doctype, +.hljs-shebang, +.hljs-cdata { + color: #999; + font-weight: bold +} + +.hljs-deletion { + background: #fdd +} + +.hljs-addition { + background: #dfd +} + +.diff .hljs-change { + background: #0086b3 +} + +.hljs-chunk { + color: #aaa +} diff --git a/css/home.less b/css/home.less new file mode 100644 index 00000000..6629dbe0 --- /dev/null +++ b/css/home.less @@ -0,0 +1,30 @@ +.spa-page-home { + .container { + top: 3em; + + @media screen and (min-width: @screen-tablet) { + top: 0; + + .desc { + display: none; + } + } + + .container-inner { + + @media screen and (min-width: @screen-tablet) { + margin-left: 16em; + } + + @media screen and (min-width: @screen-desktop) { + margin-left: 18em; + margin-right: 1em; + } + + @media screen and (min-width: @screen-large) { + margin-left: 24em; + max-width: 52em; + } + } + } +} \ No newline at end of file diff --git a/css/issuelist.less b/css/issuelist.less new file mode 100644 index 00000000..612db603 --- /dev/null +++ b/css/issuelist.less @@ -0,0 +1,65 @@ +.issuelist { + position: relative; + + article { + margin: 0 10px; + padding: 20px 0 10px; + box-shadow: 0 1px 0 @lighter; + + span.date { + display: block; + padding: 0 0 5px 0; + color: @light; + font-size: 0.75em; + font-weight: 200; + + @media screen and (min-width: @screen-small) { + font-size: 1em; + } + } + + h3 { + margin: 0; + font-weight: normal; + + @media screen and (min-width: @screen-small) { + font-size: 2em; + } + + @media screen and (min-width: @screen-desktop) { + font-size: 2.5em; + } + + a { + display: block; + } + } + + p.tag { + margin: 0; + padding: 5px 0; + font-size: 0.75em; + + @media screen and (min-width: @screen-small) { + font-size: 1em; + } + + a { + display: inline-block; + margin-right: 5px; + padding: 2px 5px; + font-weight: 200; + color: #fff; + .border-radius(4px); + background: @lighter; + } + } + } + + .end { + padding: 10px 0; + text-align: center; + color: @light; + font-weight: 100; + } +} \ No newline at end of file diff --git a/css/issues.less b/css/issues.less new file mode 100644 index 00000000..341bbb3a --- /dev/null +++ b/css/issues.less @@ -0,0 +1,105 @@ +.spa-page-issues { + header { + .btn-back { + display: block; + } + } + + .container { + top: 3em; + + @media screen and (min-width: @screen-tablet) { + top: 0; + } + + .container-inner { + @media screen and (min-width: @screen-tablet) { + margin-left: 16em; + } + + @media screen and (min-width: @screen-desktop) { + margin-left: 18em; + margin-right: 1em; + } + + @media screen and (min-width: @screen-large) { + margin-left: 24em; + max-width: 52em; + } + } + } + + .btn-back { + display: none; + + @media screen and (min-width: @screen-tablet) { + display: block; + position: fixed; + top: 10px; + right: 10px; + z-index: 2; + .opacity(0.8); + } + + @media screen and (min-width: @screen-large) { + left: 72em; + top: 20px; + right: auto; + } + } + + .btn-menu { + display: none; + } + + .issues { + position: relative; + + .desc { + text-align: center; + } + + .title { + padding: 0 10px; + font-weight: normal; + text-align: center; + margin-bottom: 0.2em; + + @media screen and (min-width: @screen-desktop) { + font-size: 2.5em; + } + } + + article { + video { + max-width: 100%; + } + + @media screen and (min-width: @screen-small) { + font-size: 1em; + + pre { + font-size: 0.8em; + } + } + + @media screen and (min-width: @screen-desktop) { + font-size: 1.2em; + } + + .btn-view { + display: block; + width: 100%; + padding: 0.5em 0; + text-align: center; + font-weight: 200; + .border-radius(4px); + color: @light; + background: @lighter; + text-decoration: none; + } + } + + } + +} \ No newline at end of file diff --git a/css/labels.less b/css/labels.less new file mode 100644 index 00000000..a893b353 --- /dev/null +++ b/css/labels.less @@ -0,0 +1,25 @@ +.spa-page-labels { + .container { + top: 3em; + + @media screen and (min-width: @screen-tablet) { + top: 0; + } + + .container-inner { + @media screen and (min-width: @screen-tablet) { + margin-left: 16em; + } + + @media screen and (min-width: @screen-desktop) { + margin-left: 18em; + margin-right: 1em; + } + + @media screen and (min-width: @screen-large) { + margin-left: 24em; + max-width: 52em; + } + } + } +} diff --git a/css/main.less b/css/main.less new file mode 100644 index 00000000..e2e12f18 --- /dev/null +++ b/css/main.less @@ -0,0 +1,226 @@ +@dark: #34495E; +@darker: #2C3E50; +@grey: #95A5A6; +@greyer: #7F8C8D; +@light: #BDC3C7; +@lighter: #ECF0F1; +@black: #000; +@white: #FFF; + +@blue: #3498DB; +@orange: #F39C12; + +@screen-small: 37.5em; +@screen-tablet: 48em; +@screen-desktop: 62em; +@screen-large: 75em; + +.rotate (@rotate: 0deg) { + -webkit-transform: rotate(@rotate); + -moz-transform: rotate(@rotate); + -ms-transform: rotate(@rotate); + -o-transform: rotate(@rotate); + transform: rotate(@rotate); +} + +.box-shadow (@string) { + -webkit-box-shadow: @string; + -moz-box-shadow: @string; + box-shadow: @string; +} + +.border-radius (@radius: 5px) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; + + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} + +.opacity (@opacity: 0.5) { + -webkit-opacity: @opacity; + -moz-opacity: @opacity; + opacity: @opacity; +} + +html { + color: @darker; + font-size: 1em; + line-height: 1.4; + + @media screen and (max-width: @screen-tablet) { + -webkit-user-select: none; + user-select: none; + } +} + +body { + font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; + + @media screen and (max-width: @screen-tablet) { + -webkit-user-select: none; + user-select: none; + } +} + +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +::selection { + background: #b3d4fc; + text-shadow: none; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +audio, +canvas, +img, +svg, +video { + vertical-align: middle; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +textarea { + resize: vertical; +} + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.visuallyhidden { + &.focusable { + &:active, &:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; + } + } +} + +.invisible { + visibility: hidden; +} + +.clearfix { + &:before, &:after { + content: " "; + display: table; + } + &:after { + clear: both; + } +} + +a { + color: @dark; + text-decoration: none; + -webkit-touch-callout: none; + + &:hover, &:active { + color: @dark; + text-decoration: none; + } +} + +.hidden { + display: none !important; + visibility: hidden; +} + +.container { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #fff; + + .desc { + color: @greyer; + .box-shadow(0 0 1px @light); + + @media screen and (min-width: @screen-small) { + font-size: 1em; + } + } + + .container-inner { + min-height: 100%; + margin: 0 0 2px 0; + overflow: hidden; + } + +} + +header { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 3em; + overflow: hidden; + z-index: 1; + background: @dark; + color: @lighter; + + @media screen and (min-width: @screen-tablet) { + display: none; + } + + h1 { + position: absolute; + left: 50%; + top: 0.6em; + margin: 0; + font-size: 1em; + font-weight: 200; + + span { + display: block; + max-width: 8em; + margin-left: -50%; + margin-right: 50%; + font-size: 1.4em; + overflow: hidden; + } + } + +} + +.btn-menu, .btn-back { + float: left; + font-weight: 200; + margin: 0.65em; + padding: 0.2em; + background: @lighter; + .border-radius(3px); +} diff --git a/css/markdown.less b/css/markdown.less new file mode 100644 index 00000000..21cf8ca3 --- /dev/null +++ b/css/markdown.less @@ -0,0 +1,294 @@ +.markdown { + font-family: Helvetica, arial, sans-serif; + font-size: 14px; + line-height: 1.6; + padding: 10px; + + > *:first-child { + margin-top: 0 !important; + } + > *:last-child { + margin-bottom: 0 !important; + } + + a { + color: @blue; + text-decoration: underline; + } + a.absent { + color: #cc0000; + } + a.anchor { + display: block; + padding-left: 30px; + margin-left: -30px; + cursor: pointer; + position: absolute; + top: 0; + left: 0; + bottom: 0; + } + + h1, h2, h3, h4, h5, h6 { + margin: 20px 0 10px; + padding: 0; + font-weight: bold; + -webkit-font-smoothing: antialiased; + cursor: text; + position: relative; } + + h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { + text-decoration: none; } + + h1 tt, h1 code { + font-size: inherit; } + + h2 tt, h2 code { + font-size: inherit; } + + h3 tt, h3 code { + font-size: inherit; } + + h4 tt, h4 code { + font-size: inherit; } + + h5 tt, h5 code { + font-size: inherit; } + + h6 tt, h6 code { + font-size: inherit; } + + h1 { + font-size: 28px; + color: black; } + + h2 { + font-size: 24px; + border-bottom: 1px solid #cccccc; + color: black; } + + h3 { + font-size: 18px; } + + h4 { + font-size: 16px; } + + h5 { + font-size: 14px; } + + h6 { + color: #777777; + font-size: 14px; } + + p, blockquote, ul, ol, dl, li, table, pre { + margin: 15px 0; } + + hr { + border: 0 none; + color: #cccccc; + height: 4px; + padding: 0; + } + + > h2:first-child { + margin-top: 0; + padding-top: 0; } + > h1:first-child { + margin-top: 0; + padding-top: 0; } + > h1:first-child + h2 { + margin-top: 0; + padding-top: 0; } + > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child { + margin-top: 0; + padding-top: 0; } + + a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 { + margin-top: 0; + padding-top: 0; } + + h1 p, h2 p, h3 p, h4 p, h5 p, h6 p { + margin-top: 0; } + + li p.first { + display: inline-block; } + li { + margin: 0; } + ul, ol { + padding-left: 30px; } + + ul :first-child, ol :first-child { + margin-top: 0; } + + dl { + padding: 0; } + dl dt { + font-size: 14px; + font-weight: bold; + font-style: italic; + padding: 0; + margin: 15px 0 5px; } + dl dt:first-child { + padding: 0; } + dl dt > :first-child { + margin-top: 0; } + dl dt > :last-child { + margin-bottom: 0; } + dl dd { + margin: 0 0 15px; + padding: 0 15px; } + dl dd > :first-child { + margin-top: 0; } + dl dd > :last-child { + margin-bottom: 0; } + + blockquote { + border-left: 4px solid #dddddd; + padding: 0 15px; + color: #777777; } + blockquote > :first-child { + margin-top: 0; } + blockquote > :last-child { + margin-bottom: 0; } + + table { + padding: 0;border-collapse: collapse; } + table tr { + border-top: 1px solid #cccccc; + background-color: white; + margin: 0; + padding: 0; } + table tr:nth-child(2n) { + background-color: #f8f8f8; } + table tr th { + font-weight: bold; + border: 1px solid #cccccc; + margin: 0; + padding: 6px 13px; } + table tr td { + border: 1px solid #cccccc; + margin: 0; + padding: 6px 13px; } + table tr th :first-child, table tr td :first-child { + margin-top: 0; } + table tr th :last-child, table tr td :last-child { + margin-bottom: 0; } + + img { + max-width: 100%; } + + span.frame { + display: block; + overflow: hidden; } + span.frame > span { + border: 1px solid #dddddd; + display: block; + float: left; + overflow: hidden; + margin: 13px 0 0; + padding: 7px; + width: auto; } + span.frame span img { + display: block; + float: left; } + span.frame span span { + clear: both; + color: #333333; + display: block; + padding: 5px 0 0; } + span.align-center { + display: block; + overflow: hidden; + clear: both; } + span.align-center > span { + display: block; + overflow: hidden; + margin: 13px auto 0; + text-align: center; } + span.align-center span img { + margin: 0 auto; + text-align: center; } + span.align-right { + display: block; + overflow: hidden; + clear: both; } + span.align-right > span { + display: block; + overflow: hidden; + margin: 13px 0 0; + text-align: right; } + span.align-right span img { + margin: 0; + text-align: right; } + span.float-left { + display: block; + margin-right: 13px; + overflow: hidden; + float: left; } + span.float-left span { + margin: 13px 0 0; } + span.float-right { + display: block; + margin-left: 13px; + overflow: hidden; + float: right; } + span.float-right > span { + display: block; + overflow: hidden; + margin: 13px auto 0; + text-align: right; } + + code, tt { + margin: 0 2px; + padding: 0 5px; + white-space: nowrap; + border: 1px solid #eaeaea; + background-color: #f8f8f8; + border-radius: 3px; } + + pre code { + margin: 0; + padding: 0; + white-space: pre; + border: none; + background: transparent; } + + .highlight pre { + background-color: #f8f8f8; + border: 1px solid #cccccc; + font-size: 13px; + line-height: 19px; + overflow: auto; + padding: 6px 10px; + border-radius: 3px; } + + pre { + background-color: #f8f8f8; + border: 1px solid #cccccc; + font-size: 13px; + line-height: 19px; + overflow: auto; + padding: 6px 10px; + border-radius: 3px; } + pre code, pre tt { + background-color: transparent; + border: none; } + + sup { + font-size: 0.83em; + vertical-align: super; + line-height: 0; + } + * { + -webkit-print-color-adjust: exact; + } + @media print { + table, pre { + page-break-inside: avoid; + } + pre { + word-wrap: break-word; + } + } + +} \ No newline at end of file diff --git a/css/menu.less b/css/menu.less new file mode 100644 index 00000000..34e3276c --- /dev/null +++ b/css/menu.less @@ -0,0 +1,122 @@ +.spa-panel-menu { + .container { + width: 12em; + max-width: 100%; + height: 100%; + padding: 0; + background: @lighter; + + @media screen and (min-width: 20em) { + width: 16em; + } + + @media screen and (min-width: @screen-tablet) { + display: none; + } + + } + + .container-shadow { + position: absolute; + width: 1px; + top: 0; + right: -1px; + bottom: 0; + .box-shadow(0 0 4px @dark); + overflow: hidden; + + @media screen and (min-width: @screen-tablet) { + display: none; + } + } +} + +.menu { + width: 100%; + height: 100%; + margin-bottom: 2px; + padding-bottom: 1em; + box-sizing: border-box; + overflow: hidden; + + @media screen and (min-width: @screen-tablet) { + height: auto; + } + + menu { + width: 100%; + margin: 1em 0 0; + padding: 0; + .box-shadow(0 0 1px @grey); + background: @white; + list-style: none; + overflow: hidden; + + li { + position: relative; + height: 2em; + line-height: 2em; + margin: 0 0 0 1.5em; + font-size: 1.2em; + .box-shadow(2px 0px 1px @greyer); + + &:first-child { + margin-top: -1px; + padding-top: 1px; + } + + a { + display: block; + height: 100%; + padding: 0 0.5em 0 0.2em; + color: @darker; + background: @white; + overflow: hidden; + } + + span { + position: absolute; + top: 16px; + left: -14px; + width: 6px; + height: 6px; + .border-radius(50%); + overflow: hidden; + } + + &:after { + content: ""; + position: absolute; + top: 15px; + right: 15px; + width: 6px; + height: 6px; + border-width: 0 2px 2px 0; + border-style: solid; + border-color: @lighter; + .rotate(-45deg); + } + + &:active { + background: @lighter; + } + } + } + + footer { + position: absolute; + left: 0; + bottom: 0; + margin: 1em; + font-weight: 100; + color: @light; + font-style: italic; + + a { + font-weight: 200; + color: @light; + } + } +} + + diff --git a/css/normalize.less b/css/normalize.less new file mode 100644 index 00000000..fb12d8fd --- /dev/null +++ b/css/normalize.less @@ -0,0 +1,423 @@ +/* normalize.css v3.0.0 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9. + * Hide the `template` element in IE, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9, Safari 5, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari 5 and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari 5, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9. + */ + +img { + border: 0; +} + +/** + * Correct overflow displayed oddly in IE 9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari 5. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8+, and Opera + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} \ No newline at end of file diff --git a/css/pull2refresh.less b/css/pull2refresh.less new file mode 100644 index 00000000..4064f618 --- /dev/null +++ b/css/pull2refresh.less @@ -0,0 +1,35 @@ +.pulldown, .pullup { + position: absolute; + width: 100%; + height: 3em; + line-height: 3em; + text-align: center; + color: @light; + font-weight: 100; + z-index: 1; + + .ball { + display: inline-block; + padding: 5px; + .border-radius(50%); + } + + .ball:nth-child(1) { + background: @orange; + -webkit-animation: move-left 800ms ease-in-out infinite alternate; + } + + .ball:nth-child(2) { + background: @blue; + -webkit-animation: move-right 800ms ease-in-out infinite alternate; + } +} + +.pulldown { + top: -3em; +} + +.pullup { + bottom: -3em; +} + diff --git a/css/side.less b/css/side.less new file mode 100644 index 00000000..2b4674cb --- /dev/null +++ b/css/side.less @@ -0,0 +1,41 @@ +.side { + display: none; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 15em; + z-index: 3000; + box-shadow: 0 0 4px @greyer; + + @media screen and (min-width: @screen-tablet) { + display: block; + } + + @media screen and (min-width: @screen-desktop) { + width: 16em; + } + + @media screen and (min-width: @screen-large) { + width: 18em; + left: 4em; + } + + .container { + background: @lighter; + + .logo { + margin: 20px 10px; + font-size: 3em; + } + + .desc { + box-shadow: none; + + a { + color: @greyer; + } + } + } + +} \ No newline at end of file diff --git a/dev.html b/dev.html new file mode 100644 index 00000000..df9cf161 --- /dev/null +++ b/dev.html @@ -0,0 +1,64 @@ + + + + + + + + + + + +Spring is a blog engine written by github issues + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/main.min.css b/dist/main.min.css new file mode 100644 index 00000000..253f6e53 --- /dev/null +++ b/dist/main.min.css @@ -0,0 +1 @@ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.hljs{display:block;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-template_comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.javascript .hljs-title,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:700}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:#099}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.coffeescript .hljs-params,.scss .hljs-preprocessor{color:#900;font-weight:700}.javascript .hljs-title,.lisp .hljs-title,.clojure .hljs-title,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.haskell .hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:700}.hljs-tag,.hljs-tag .hljs-title,.hljs-rules .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:400}.hljs-attribute,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in,.lisp .hljs-title,.clojure .hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}html{color:#2c3e50;font-size:1em;line-height:1.4}@media screen and (max-width:48em){html{-webkit-user-select:none;user-select:none}}body{font-family:"Helvetica Neue",Helvetica,STHeiTi,sans-serif}@media screen and (max-width:48em){body{-webkit-user-select:none;user-select:none}}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}audio,canvas,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}a{color:#34495e;text-decoration:none;-webkit-touch-callout:none}a:hover,a:active{color:#34495e;text-decoration:none}.hidden{display:none!important;visibility:hidden}.container{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff}.container .desc{color:#7f8c8d;-webkit-box-shadow:0 0 1px #bdc3c7;-moz-box-shadow:0 0 1px #bdc3c7;box-shadow:0 0 1px #bdc3c7}@media screen and (min-width:37.5em){.container .desc{font-size:1em}}.container .container-inner{min-height:100%;margin:0 0 2px;overflow:hidden}header{position:absolute;left:0;top:0;width:100%;height:3em;overflow:hidden;z-index:1;background:#34495e;color:#ecf0f1}@media screen and (min-width:48em){header{display:none}}header h1{position:absolute;left:50%;top:.6em;margin:0;font-size:1em;font-weight:200}header h1 span{display:block;max-width:8em;margin-left:-50%;margin-right:50%;font-size:1.4em;overflow:hidden}.btn-menu,.btn-back{float:left;font-weight:200;margin:.65em;padding:.2em;background:#ecf0f1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.markdown{font-family:Helvetica,arial,sans-serif;font-size:14px;line-height:1.6;padding:10px}.markdown>:first-child{margin-top:0!important}.markdown>:last-child{margin-bottom:0!important}.markdown a{color:#3498db;text-decoration:underline}.markdown a.absent{color:#c00}.markdown a.anchor{display:block;padding-left:30px;margin-left:-30px;cursor:pointer;position:absolute;top:0;left:0;bottom:0}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{margin:20px 0 10px;padding:0;font-weight:700;-webkit-font-smoothing:antialiased;cursor:text;position:relative}.markdown h1:hover a.anchor,.markdown h2:hover a.anchor,.markdown h3:hover a.anchor,.markdown h4:hover a.anchor,.markdown h5:hover a.anchor,.markdown h6:hover a.anchor{text-decoration:none}.markdown h1 tt,.markdown h1 code{font-size:inherit}.markdown h2 tt,.markdown h2 code{font-size:inherit}.markdown h3 tt,.markdown h3 code{font-size:inherit}.markdown h4 tt,.markdown h4 code{font-size:inherit}.markdown h5 tt,.markdown h5 code{font-size:inherit}.markdown h6 tt,.markdown h6 code{font-size:inherit}.markdown h1{font-size:28px;color:#000}.markdown h2{font-size:24px;border-bottom:1px solid #ccc;color:#000}.markdown h3{font-size:18px}.markdown h4{font-size:16px}.markdown h5{font-size:14px}.markdown h6{color:#777;font-size:14px}.markdown p,.markdown blockquote,.markdown ul,.markdown ol,.markdown dl,.markdown li,.markdown table,.markdown pre{margin:15px 0}.markdown hr{border:0 none;color:#ccc;height:4px;padding:0}.markdown>h2:first-child{margin-top:0;padding-top:0}.markdown>h1:first-child{margin-top:0;padding-top:0}.markdown>h1:first-child+h2{margin-top:0;padding-top:0}.markdown>h3:first-child,.markdown body>h4:first-child,.markdown body>h5:first-child,.markdown body>h6:first-child{margin-top:0;padding-top:0}.markdown a:first-child h1,.markdown a:first-child h2,.markdown a:first-child h3,.markdown a:first-child h4,.markdown a:first-child h5,.markdown a:first-child h6{margin-top:0;padding-top:0}.markdown h1 p,.markdown h2 p,.markdown h3 p,.markdown h4 p,.markdown h5 p,.markdown h6 p{margin-top:0}.markdown li p.first{display:inline-block}.markdown li{margin:0}.markdown ul,.markdown ol{padding-left:30px}.markdown ul :first-child,.markdown ol :first-child{margin-top:0}.markdown dl{padding:0}.markdown dl dt{font-size:14px;font-weight:700;font-style:italic;padding:0;margin:15px 0 5px}.markdown dl dt:first-child{padding:0}.markdown dl dt>:first-child{margin-top:0}.markdown dl dt>:last-child{margin-bottom:0}.markdown dl dd{margin:0 0 15px;padding:0 15px}.markdown dl dd>:first-child{margin-top:0}.markdown dl dd>:last-child{margin-bottom:0}.markdown blockquote{border-left:4px solid #ddd;padding:0 15px;color:#777}.markdown blockquote>:first-child{margin-top:0}.markdown blockquote>:last-child{margin-bottom:0}.markdown table{padding:0;border-collapse:collapse}.markdown table tr{border-top:1px solid #ccc;background-color:#fff;margin:0;padding:0}.markdown table tr:nth-child(2n){background-color:#f8f8f8}.markdown table tr th{font-weight:700;border:1px solid #ccc;margin:0;padding:6px 13px}.markdown table tr td{border:1px solid #ccc;margin:0;padding:6px 13px}.markdown table tr th :first-child,.markdown table tr td :first-child{margin-top:0}.markdown table tr th :last-child,.markdown table tr td :last-child{margin-bottom:0}.markdown img{max-width:100%}.markdown span.frame{display:block;overflow:hidden}.markdown span.frame>span{border:1px solid #ddd;display:block;float:left;overflow:hidden;margin:13px 0 0;padding:7px;width:auto}.markdown span.frame span img{display:block;float:left}.markdown span.frame span span{clear:both;color:#333;display:block;padding:5px 0 0}.markdown span.align-center{display:block;overflow:hidden;clear:both}.markdown span.align-center>span{display:block;overflow:hidden;margin:13px auto 0;text-align:center}.markdown span.align-center span img{margin:0 auto;text-align:center}.markdown span.align-right{display:block;overflow:hidden;clear:both}.markdown span.align-right>span{display:block;overflow:hidden;margin:13px 0 0;text-align:right}.markdown span.align-right span img{margin:0;text-align:right}.markdown span.float-left{display:block;margin-right:13px;overflow:hidden;float:left}.markdown span.float-left span{margin:13px 0 0}.markdown span.float-right{display:block;margin-left:13px;overflow:hidden;float:right}.markdown span.float-right>span{display:block;overflow:hidden;margin:13px auto 0;text-align:right}.markdown code,.markdown tt{margin:0 2px;padding:0 5px;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;border-radius:3px}.markdown pre code{margin:0;padding:0;white-space:pre;border:none;background:0 0}.markdown .highlight pre{background-color:#f8f8f8;border:1px solid #ccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px}.markdown pre{background-color:#f8f8f8;border:1px solid #ccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px}.markdown pre code,.markdown pre tt{background-color:transparent;border:none}.markdown sup{font-size:.83em;vertical-align:super;line-height:0}.markdown *{-webkit-print-color-adjust:exact}@media print{.markdown table,.markdown pre{page-break-inside:avoid}.markdown pre{word-wrap:break-word}}.pulldown,.pullup{position:absolute;width:100%;height:3em;line-height:3em;text-align:center;color:#bdc3c7;font-weight:100;z-index:1}.pulldown .ball,.pullup .ball{display:inline-block;padding:5px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.pulldown .ball:nth-child(1),.pullup .ball:nth-child(1){background:#f39c12;-webkit-animation:move-left 800ms ease-in-out infinite alternate}.pulldown .ball:nth-child(2),.pullup .ball:nth-child(2){background:#3498db;-webkit-animation:move-right 800ms ease-in-out infinite alternate}.pulldown{top:-3em}.pullup{bottom:-3em}.issuelist{position:relative}.issuelist article{margin:0 10px;padding:20px 0 10px;box-shadow:0 1px 0 #ecf0f1}.issuelist article span.date{display:block;padding:0 0 5px;color:#bdc3c7;font-size:.75em;font-weight:200}@media screen and (min-width:37.5em){.issuelist article span.date{font-size:1em}}.issuelist article h3{margin:0;font-weight:400}@media screen and (min-width:37.5em){.issuelist article h3{font-size:2em}}@media screen and (min-width:62em){.issuelist article h3{font-size:2.5em}}.issuelist article h3 a{display:block}.issuelist article p.tag{margin:0;padding:5px 0;font-size:.75em}@media screen and (min-width:37.5em){.issuelist article p.tag{font-size:1em}}.issuelist article p.tag a{display:inline-block;margin-right:5px;padding:2px 5px;font-weight:200;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;background:#ecf0f1}.issuelist .end{padding:10px 0;text-align:center;color:#bdc3c7;font-weight:100}.side{display:none;position:absolute;left:0;top:0;bottom:0;width:15em;z-index:3000;box-shadow:0 0 4px #7f8c8d}@media screen and (min-width:48em){.side{display:block}}@media screen and (min-width:62em){.side{width:16em}}@media screen and (min-width:75em){.side{width:18em;left:4em}}.side .container{background:#ecf0f1}.side .container .logo{margin:20px 10px;font-size:3em}.side .container .desc{box-shadow:none}.side .container .desc a{color:#7f8c8d}.spa-panel-menu .container{width:12em;max-width:100%;height:100%;padding:0;background:#ecf0f1}@media screen and (min-width:20em){.spa-panel-menu .container{width:16em}}@media screen and (min-width:48em){.spa-panel-menu .container{display:none}}.spa-panel-menu .container-shadow{position:absolute;width:1px;top:0;right:-1px;bottom:0;-webkit-box-shadow:0 0 4px #34495e;-moz-box-shadow:0 0 4px #34495e;box-shadow:0 0 4px #34495e;overflow:hidden}@media screen and (min-width:48em){.spa-panel-menu .container-shadow{display:none}}.menu{width:100%;height:100%;margin-bottom:2px;padding-bottom:1em;box-sizing:border-box;overflow:hidden}@media screen and (min-width:48em){.menu{height:auto}}.menu menu{width:100%;margin:1em 0 0;padding:0;-webkit-box-shadow:0 0 1px #95a5a6;-moz-box-shadow:0 0 1px #95a5a6;box-shadow:0 0 1px #95a5a6;background:#fff;list-style:none;overflow:hidden}.menu menu li{position:relative;height:2em;line-height:2em;margin:0 0 0 1.5em;font-size:1.2em;-webkit-box-shadow:2px 0 1px #7f8c8d;-moz-box-shadow:2px 0 1px #7f8c8d;box-shadow:2px 0 1px #7f8c8d}.menu menu li:first-child{margin-top:-1px;padding-top:1px}.menu menu li a{display:block;height:100%;padding:0 .5em 0 .2em;color:#2c3e50;background:#fff;overflow:hidden}.menu menu li span{position:absolute;top:16px;left:-14px;width:6px;height:6px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;overflow:hidden}.menu menu li:after{content:"";position:absolute;top:15px;right:15px;width:6px;height:6px;border-width:0 2px 2px 0;border-style:solid;border-color:#ecf0f1;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.menu menu li:active{background:#ecf0f1}.menu footer{position:absolute;left:0;bottom:0;margin:1em;font-weight:100;color:#bdc3c7;font-style:italic}.menu footer a{font-weight:200;color:#bdc3c7}.spa-page-home .container{top:3em}@media screen and (min-width:48em){.spa-page-home .container{top:0}.spa-page-home .container .desc{display:none}}@media screen and (min-width:48em){.spa-page-home .container .container-inner{margin-left:16em}}@media screen and (min-width:62em){.spa-page-home .container .container-inner{margin-left:18em;margin-right:1em}}@media screen and (min-width:75em){.spa-page-home .container .container-inner{margin-left:24em;max-width:52em}}.spa-page-labels .container{top:3em}@media screen and (min-width:48em){.spa-page-labels .container{top:0}}@media screen and (min-width:48em){.spa-page-labels .container .container-inner{margin-left:16em}}@media screen and (min-width:62em){.spa-page-labels .container .container-inner{margin-left:18em;margin-right:1em}}@media screen and (min-width:75em){.spa-page-labels .container .container-inner{margin-left:24em;max-width:52em}}.spa-page-issues header .btn-back{display:block}.spa-page-issues .container{top:3em}@media screen and (min-width:48em){.spa-page-issues .container{top:0}}@media screen and (min-width:48em){.spa-page-issues .container .container-inner{margin-left:16em}}@media screen and (min-width:62em){.spa-page-issues .container .container-inner{margin-left:18em;margin-right:1em}}@media screen and (min-width:75em){.spa-page-issues .container .container-inner{margin-left:24em;max-width:52em}}.spa-page-issues .btn-back{display:none}@media screen and (min-width:48em){.spa-page-issues .btn-back{display:block;position:fixed;top:10px;right:10px;z-index:2;-webkit-opacity:.8;-moz-opacity:.8;opacity:.8}}@media screen and (min-width:75em){.spa-page-issues .btn-back{left:72em;top:20px;right:auto}}.spa-page-issues .btn-menu{display:none}.spa-page-issues .issues{position:relative}.spa-page-issues .issues .desc{text-align:center}.spa-page-issues .issues .title{padding:0 10px;font-weight:400;text-align:center;margin-bottom:.2em}@media screen and (min-width:62em){.spa-page-issues .issues .title{font-size:2.5em}}.spa-page-issues .issues article video{max-width:100%}@media screen and (min-width:37.5em){.spa-page-issues .issues article{font-size:1em}.spa-page-issues .issues article pre{font-size:.8em}}@media screen and (min-width:62em){.spa-page-issues .issues article{font-size:1.2em}}.spa-page-issues .issues article .btn-view{display:block;width:100%;padding:.5em 0;text-align:center;font-weight:200;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box;color:#bdc3c7;background:#ecf0f1;text-decoration:none} \ No newline at end of file diff --git a/dist/main.min.js b/dist/main.min.js new file mode 100644 index 00000000..ee891273 --- /dev/null +++ b/dist/main.min.js @@ -0,0 +1,4 @@ +var Zepto=function(){function a(a){return null==a?String(a):U[V.call(a)]||"object"}function b(b){return"function"==a(b)}function c(a){return null!=a&&a==a.window}function d(a){return null!=a&&a.nodeType==a.DOCUMENT_NODE}function e(b){return"object"==a(b)}function f(a){return e(a)&&!c(a)&&Object.getPrototypeOf(a)==Object.prototype}function g(a){return"number"==typeof a.length}function h(a){return D.call(a,function(a){return null!=a})}function i(a){return a.length>0?x.fn.concat.apply([],a):a}function j(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function k(a){return a in G?G[a]:G[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function l(a,b){return"number"!=typeof b||H[j(a)]?b:b+"px"}function m(a){var b,c;return F[a]||(b=E.createElement(a),E.body.appendChild(b),c=getComputedStyle(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),"none"==c&&(c="block"),F[a]=c),F[a]}function n(a){return"children"in a?C.call(a.children):x.map(a.childNodes,function(a){return 1==a.nodeType?a:void 0})}function o(a,b,c){for(w in b)c&&(f(b[w])||Z(b[w]))?(f(b[w])&&!f(a[w])&&(a[w]={}),Z(b[w])&&!Z(a[w])&&(a[w]=[]),o(a[w],b[w],c)):b[w]!==v&&(a[w]=b[w])}function p(a,b){return null==b?x(a):x(a).filter(b)}function q(a,c,d,e){return b(c)?c.call(a,d,e):c}function r(a,b,c){null==c?a.removeAttribute(b):a.setAttribute(b,c)}function s(a,b){var c=a.className,d=c&&c.baseVal!==v;return b===v?d?c.baseVal:c:void(d?c.baseVal=b:a.className=b)}function t(a){var b;try{return a?"true"==a||("false"==a?!1:"null"==a?null:/^0/.test(a)||isNaN(b=Number(a))?/^[\[\{]/.test(a)?x.parseJSON(a):a:b):a}catch(c){return a}}function u(a,b){b(a);for(var c in a.childNodes)u(a.childNodes[c],b)}var v,w,x,y,z,A,B=[],C=B.slice,D=B.filter,E=window.document,F={},G={},H={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},I=/^\s*<(\w+|!)[^>]*>/,J=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,K=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,L=/^(?:body|html)$/i,M=/([A-Z])/g,N=["val","css","html","text","data","width","height","offset"],O=["after","prepend","before","append"],P=E.createElement("table"),Q=E.createElement("tr"),R={tr:E.createElement("tbody"),tbody:P,thead:P,tfoot:P,td:Q,th:Q,"*":E.createElement("div")},S=/complete|loaded|interactive/,T=/^[\w-]*$/,U={},V=U.toString,W={},X=E.createElement("div"),Y={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Z=Array.isArray||function(a){return a instanceof Array};return W.matches=function(a,b){if(!b||!a||1!==a.nodeType)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=X).appendChild(a),d=~W.qsa(e,b).indexOf(a),f&&X.removeChild(a),d},z=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},A=function(a){return D.call(a,function(b,c){return a.indexOf(b)==c})},W.fragment=function(a,b,c){var d,e,g;return J.test(a)&&(d=x(E.createElement(RegExp.$1))),d||(a.replace&&(a=a.replace(K,"<$1>")),b===v&&(b=I.test(a)&&RegExp.$1),b in R||(b="*"),g=R[b],g.innerHTML=""+a,d=x.each(C.call(g.childNodes),function(){g.removeChild(this)})),f(c)&&(e=x(d),x.each(c,function(a,b){N.indexOf(a)>-1?e[a](b):e.attr(a,b)})),d},W.Z=function(a,b){return a=a||[],a.__proto__=x.fn,a.selector=b||"",a},W.isZ=function(a){return a instanceof W.Z},W.init=function(a,c){var d;if(!a)return W.Z();if("string"==typeof a)if(a=a.trim(),"<"==a[0]&&I.test(a))d=W.fragment(a,RegExp.$1,c),a=null;else{if(c!==v)return x(c).find(a);d=W.qsa(E,a)}else{if(b(a))return x(E).ready(a);if(W.isZ(a))return a;if(Z(a))d=h(a);else if(e(a))d=[a],a=null;else if(I.test(a))d=W.fragment(a.trim(),RegExp.$1,c),a=null;else{if(c!==v)return x(c).find(a);d=W.qsa(E,a)}}return W.Z(d,a)},x=function(a,b){return W.init(a,b)},x.extend=function(a){var b,c=C.call(arguments,1);return"boolean"==typeof a&&(b=a,a=c.shift()),c.forEach(function(c){o(a,c,b)}),a},W.qsa=function(a,b){var c,e="#"==b[0],f=!e&&"."==b[0],g=e||f?b.slice(1):b,h=T.test(g);return d(a)&&h&&e?(c=a.getElementById(g))?[c]:[]:1!==a.nodeType&&9!==a.nodeType?[]:C.call(h&&!e?f?a.getElementsByClassName(g):a.getElementsByTagName(b):a.querySelectorAll(b))},x.contains=function(a,b){return a!==b&&a.contains(b)},x.type=a,x.isFunction=b,x.isWindow=c,x.isArray=Z,x.isPlainObject=f,x.isEmptyObject=function(a){var b;for(b in a)return!1;return!0},x.inArray=function(a,b,c){return B.indexOf.call(b,a,c)},x.camelCase=z,x.trim=function(a){return null==a?"":String.prototype.trim.call(a)},x.uuid=0,x.support={},x.expr={},x.map=function(a,b){var c,d,e,f=[];if(g(a))for(d=0;d=0?a:a+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(a){return B.every.call(this,function(b,c){return a.call(b,c,b)!==!1}),this},filter:function(a){return b(a)?this.not(this.not(a)):x(D.call(this,function(b){return W.matches(b,a)}))},add:function(a,b){return x(A(this.concat(x(a,b))))},is:function(a){return this.length>0&&W.matches(this[0],a)},not:function(a){var c=[];if(b(a)&&a.call!==v)this.each(function(b){a.call(this,b)||c.push(this)});else{var d="string"==typeof a?this.filter(a):g(a)&&b(a.item)?C.call(a):x(a);this.forEach(function(a){d.indexOf(a)<0&&c.push(a)})}return x(c)},has:function(a){return this.filter(function(){return e(a)?x.contains(this,a):x(this).find(a).size()})},eq:function(a){return-1===a?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!e(a)?a:x(a)},last:function(){var a=this[this.length-1];return a&&!e(a)?a:x(a)},find:function(a){var b,c=this;return b="object"==typeof a?x(a).filter(function(){var a=this;return B.some.call(c,function(b){return x.contains(b,a)})}):1==this.length?x(W.qsa(this[0],a)):this.map(function(){return W.qsa(this,a)})},closest:function(a,b){var c=this[0],e=!1;for("object"==typeof a&&(e=x(a));c&&!(e?e.indexOf(c)>=0:W.matches(c,a));)c=c!==b&&!d(c)&&c.parentNode;return x(c)},parents:function(a){for(var b=[],c=this;c.length>0;)c=x.map(c,function(a){return(a=a.parentNode)&&!d(a)&&b.indexOf(a)<0?(b.push(a),a):void 0});return p(b,a)},parent:function(a){return p(A(this.pluck("parentNode")),a)},children:function(a){return p(this.map(function(){return n(this)}),a)},contents:function(){return this.map(function(){return C.call(this.childNodes)})},siblings:function(a){return p(this.map(function(a,b){return D.call(n(b.parentNode),function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return x.map(this,function(b){return b[a]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=m(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var c=b(a);if(this[0]&&!c)var d=x(a).get(0),e=d.parentNode||this.length>1;return this.each(function(b){x(this).wrapAll(c?a.call(this,b):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){x(this[0]).before(a=x(a));for(var b;(b=a.children()).length;)a=b.first();x(a).append(this)}return this},wrapInner:function(a){var c=b(a);return this.each(function(b){var d=x(this),e=d.contents(),f=c?a.call(this,b):a;e.length?e.wrapAll(f):d.append(f)})},unwrap:function(){return this.parent().each(function(){x(this).replaceWith(x(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(a){return this.each(function(){var b=x(this);(a===v?"none"==b.css("display"):a)?b.show():b.hide()})},prev:function(a){return x(this.pluck("previousElementSibling")).filter(a||"*")},next:function(a){return x(this.pluck("nextElementSibling")).filter(a||"*")},html:function(a){return 0===arguments.length?this.length>0?this[0].innerHTML:null:this.each(function(b){var c=this.innerHTML;x(this).empty().append(q(this,a,b,c))})},text:function(a){return 0===arguments.length?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=a===v?"":""+a})},attr:function(a,b){var c;return"string"==typeof a&&b===v?0==this.length||1!==this[0].nodeType?v:"value"==a&&"INPUT"==this[0].nodeName?this.val():!(c=this[0].getAttribute(a))&&a in this[0]?this[0][a]:c:this.each(function(c){if(1===this.nodeType)if(e(a))for(w in a)r(this,w,a[w]);else r(this,a,q(this,b,c,this.getAttribute(a)))})},removeAttr:function(a){return this.each(function(){1===this.nodeType&&r(this,a)})},prop:function(a,b){return a=Y[a]||a,b===v?this[0]&&this[0][a]:this.each(function(c){this[a]=q(this,b,c,this[a])})},data:function(a,b){var c=this.attr("data-"+a.replace(M,"-$1").toLowerCase(),b);return null!==c?t(c):v},val:function(a){return 0===arguments.length?this[0]&&(this[0].multiple?x(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(b){this.value=q(this,a,b,this.value)})},offset:function(a){if(a)return this.each(function(b){var c=x(this),d=q(this,a,b,c.offset()),e=c.offsetParent().offset(),f={top:d.top-e.top,left:d.left-e.left};"static"==c.css("position")&&(f.position="relative"),c.css(f)});if(0==this.length)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(b,c){if(arguments.length<2){var d=this[0],e=getComputedStyle(d,"");if(!d)return;if("string"==typeof b)return d.style[z(b)]||e.getPropertyValue(b);if(Z(b)){var f={};return x.each(Z(b)?b:[b],function(a,b){f[b]=d.style[z(b)]||e.getPropertyValue(b)}),f}}var g="";if("string"==a(b))c||0===c?g=j(b)+":"+l(b,c):this.each(function(){this.style.removeProperty(j(b))});else for(w in b)b[w]||0===b[w]?g+=j(w)+":"+l(w,b[w])+";":this.each(function(){this.style.removeProperty(j(w))});return this.each(function(){this.style.cssText+=";"+g})},index:function(a){return a?this.indexOf(x(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return a?B.some.call(this,function(a){return this.test(s(a))},k(a)):!1},addClass:function(a){return a?this.each(function(b){y=[];var c=s(this),d=q(this,a,b,c);d.split(/\s+/g).forEach(function(a){x(this).hasClass(a)||y.push(a)},this),y.length&&s(this,c+(c?" ":"")+y.join(" "))}):this},removeClass:function(a){return this.each(function(b){return a===v?s(this,""):(y=s(this),q(this,a,b,y).split(/\s+/g).forEach(function(a){y=y.replace(k(a)," ")}),void s(this,y.trim()))})},toggleClass:function(a,b){return a?this.each(function(c){var d=x(this),e=q(this,a,c,s(this));e.split(/\s+/g).forEach(function(a){(b===v?!d.hasClass(a):b)?d.addClass(a):d.removeClass(a)})}):this},scrollTop:function(a){if(this.length){var b="scrollTop"in this[0];return a===v?b?this[0].scrollTop:this[0].pageYOffset:this.each(b?function(){this.scrollTop=a}:function(){this.scrollTo(this.scrollX,a)})}},scrollLeft:function(a){if(this.length){var b="scrollLeft"in this[0];return a===v?b?this[0].scrollLeft:this[0].pageXOffset:this.each(b?function(){this.scrollLeft=a}:function(){this.scrollTo(a,this.scrollY)})}},position:function(){if(this.length){var a=this[0],b=this.offsetParent(),c=this.offset(),d=L.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(x(a).css("margin-top"))||0,c.left-=parseFloat(x(a).css("margin-left"))||0,d.top+=parseFloat(x(b[0]).css("border-top-width"))||0,d.left+=parseFloat(x(b[0]).css("border-left-width"))||0,{top:c.top-d.top,left:c.left-d.left}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||E.body;a&&!L.test(a.nodeName)&&"static"==x(a).css("position");)a=a.offsetParent;return a})}},x.fn.detach=x.fn.remove,["width","height"].forEach(function(a){var b=a.replace(/./,function(a){return a[0].toUpperCase()});x.fn[a]=function(e){var f,g=this[0];return e===v?c(g)?g["inner"+b]:d(g)?g.documentElement["scroll"+b]:(f=this.offset())&&f[a]:this.each(function(b){g=x(this),g.css(a,q(this,e,b,g[a]()))})}}),O.forEach(function(b,c){var d=c%2;x.fn[b]=function(){var b,e,f=x.map(arguments,function(c){return b=a(c),"object"==b||"array"==b||null==c?c:W.fragment(c)}),g=this.length>1;return f.length<1?this:this.each(function(a,b){e=d?b:b.parentNode,b=0==c?b.nextSibling:1==c?b.firstChild:2==c?b:null,f.forEach(function(a){if(g)a=a.cloneNode(!0);else if(!e)return x(a).remove();u(e.insertBefore(a,b),function(a){null==a.nodeName||"SCRIPT"!==a.nodeName.toUpperCase()||a.type&&"text/javascript"!==a.type||a.src||window.eval.call(window,a.innerHTML)})})})},x.fn[d?b+"To":"insert"+(c?"Before":"After")]=function(a){return x(a)[b](this),this}}),W.Z.prototype=x.fn,W.uniq=A,W.deserializeValue=t,x.zepto=W,x}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(a){function b(a){return a._zid||(a._zid=m++)}function c(a,c,f,g){if(c=d(c),c.ns)var h=e(c.ns);return(q[b(a)]||[]).filter(function(a){return!(!a||c.e&&a.e!=c.e||c.ns&&!h.test(a.ns)||f&&b(a.fn)!==b(f)||g&&a.sel!=g)})}function d(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function e(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function f(a,b){return a.del&&!s&&a.e in t||!!b}function g(a){return u[a]||s&&t[a]||a}function h(c,e,h,i,k,m,n){var o=b(c),p=q[o]||(q[o]=[]);e.split(/\s/).forEach(function(b){if("ready"==b)return a(document).ready(h);var e=d(b);e.fn=h,e.sel=k,e.e in u&&(h=function(b){var c=b.relatedTarget;return!c||c!==this&&!a.contains(this,c)?e.fn.apply(this,arguments):void 0}),e.del=m;var o=m||h;e.proxy=function(a){if(a=j(a),!a.isImmediatePropagationStopped()){a.data=i;var b=o.apply(c,a._args==l?[a]:[a].concat(a._args));return b===!1&&(a.preventDefault(),a.stopPropagation()),b}},e.i=p.length,p.push(e),"addEventListener"in c&&c.addEventListener(g(e.e),e.proxy,f(e,n))})}function i(a,d,e,h,i){var j=b(a);(d||"").split(/\s/).forEach(function(b){c(a,b,e,h).forEach(function(b){delete q[j][b.i],"removeEventListener"in a&&a.removeEventListener(g(b.e),b.proxy,f(b,i))})})}function j(b,c){return(c||!b.isDefaultPrevented)&&(c||(c=b),a.each(y,function(a,d){var e=c[a];b[a]=function(){return this[d]=v,e&&e.apply(c,arguments)},b[d]=w}),(c.defaultPrevented!==l?c.defaultPrevented:"returnValue"in c?c.returnValue===!1:c.getPreventDefault&&c.getPreventDefault())&&(b.isDefaultPrevented=v)),b}function k(a){var b,c={originalEvent:a};for(b in a)x.test(b)||a[b]===l||(c[b]=a[b]);return j(c,a)}var l,m=1,n=Array.prototype.slice,o=a.isFunction,p=function(a){return"string"==typeof a},q={},r={},s="onfocusin"in window,t={focus:"focusin",blur:"focusout"},u={mouseenter:"mouseover",mouseleave:"mouseout"};r.click=r.mousedown=r.mouseup=r.mousemove="MouseEvents",a.event={add:h,remove:i},a.proxy=function(c,d){if(o(c)){var e=function(){return c.apply(d,arguments)};return e._zid=b(c),e}if(p(d))return a.proxy(c[d],c);throw new TypeError("expected function")},a.fn.bind=function(a,b,c){return this.on(a,b,c)},a.fn.unbind=function(a,b){return this.off(a,b)},a.fn.one=function(a,b,c,d){return this.on(a,b,c,d,1)};var v=function(){return!0},w=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$)/,y={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(a,b,c){return this.on(b,a,c)},a.fn.undelegate=function(a,b,c){return this.off(b,a,c)},a.fn.live=function(b,c){return a(document.body).delegate(this.selector,b,c),this},a.fn.die=function(b,c){return a(document.body).undelegate(this.selector,b,c),this},a.fn.on=function(b,c,d,e,f){var g,j,m=this;return b&&!p(b)?(a.each(b,function(a,b){m.on(a,c,d,b,f)}),m):(p(c)||o(e)||e===!1||(e=d,d=c,c=l),(o(d)||d===!1)&&(e=d,d=l),e===!1&&(e=w),m.each(function(l,m){f&&(g=function(a){return i(m,a.type,e),e.apply(this,arguments)}),c&&(j=function(b){var d,f=a(b.target).closest(c,m).get(0);return f&&f!==m?(d=a.extend(k(b),{currentTarget:f,liveFired:m}),(g||e).apply(f,[d].concat(n.call(arguments,1)))):void 0}),h(m,b,e,d,c,j||g)}))},a.fn.off=function(b,c,d){var e=this;return b&&!p(b)?(a.each(b,function(a,b){e.off(a,c,b)}),e):(p(c)||o(d)||d===!1||(d=c,c=l),d===!1&&(d=w),e.each(function(){i(this,b,d,c)}))},a.fn.trigger=function(b,c){return b=p(b)||a.isPlainObject(b)?a.Event(b):j(b),b._args=c,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(b):a(this).triggerHandler(b,c)})},a.fn.triggerHandler=function(b,d){var e,f;return this.each(function(g,h){e=k(p(b)?a.Event(b):b),e._args=d,e.target=h,a.each(c(h,b.type||b),function(a,b){return f=b.proxy(e),e.isImmediatePropagationStopped()?!1:void 0})}),f},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.trigger(b)}}),["focus","blur"].forEach(function(b){a.fn[b]=function(a){return a?this.bind(b,a):this.each(function(){try{this[b]()}catch(a){}}),this}}),a.Event=function(a,b){p(a)||(b=a,a=b.type);var c=document.createEvent(r[a]||"Events"),d=!0;if(b)for(var e in b)"bubbles"==e?d=!!b[e]:c[e]=b[e];return c.initEvent(a,d,!0),j(c)}}(Zepto),function(a){function b(b,c,d){var e=a.Event(c);return a(b).trigger(e,d),!e.isDefaultPrevented()}function c(a,c,d,e){return a.global?b(c||s,d,e):void 0}function d(b){b.global&&0===a.active++&&c(b,null,"ajaxStart")}function e(b){b.global&&!--a.active&&c(b,null,"ajaxStop")}function f(a,b){var d=b.context;return b.beforeSend.call(d,a,b)===!1||c(b,d,"ajaxBeforeSend",[a,b])===!1?!1:void c(b,d,"ajaxSend",[a,b])}function g(a,b,d,e){var f=d.context,g="success";d.success.call(f,a,g,b),e&&e.resolveWith(f,[a,g,b]),c(d,f,"ajaxSuccess",[b,d,a]),i(g,b,d)}function h(a,b,d,e,f){var g=e.context;e.error.call(g,d,b,a),f&&f.rejectWith(g,[d,b,a]),c(e,g,"ajaxError",[d,e,a||b]),i(b,d,e)}function i(a,b,d){var f=d.context;d.complete.call(f,b,a),c(d,f,"ajaxComplete",[b,d]),e(d)}function j(){}function k(a){return a&&(a=a.split(";",2)[0]),a&&(a==x?"html":a==w?"json":u.test(a)?"script":v.test(a)&&"xml")||"text"}function l(a,b){return""==b?a:(a+"&"+b).replace(/[&?]{1,2}/,"?")}function m(b){b.processData&&b.data&&"string"!=a.type(b.data)&&(b.data=a.param(b.data,b.traditional)),!b.data||b.type&&"GET"!=b.type.toUpperCase()||(b.url=l(b.url,b.data),b.data=void 0)}function n(b,c,d,e){return a.isFunction(c)&&(e=d,d=c,c=void 0),a.isFunction(d)||(e=d,d=void 0),{url:b,data:c,success:d,dataType:e}}function o(b,c,d,e){var f,g=a.isArray(c),h=a.isPlainObject(c);a.each(c,function(c,i){f=a.type(i),e&&(c=d?e:e+"["+(h||"object"==f||"array"==f?c:"")+"]"),!e&&g?b.add(i.name,i.value):"array"==f||!d&&"object"==f?o(b,i,d,c):b.add(c,i)})}var p,q,r=0,s=window.document,t=/)<[^<]*)*<\/script>/gi,u=/^(?:text|application)\/javascript/i,v=/^(?:text|application)\/xml/i,w="application/json",x="text/html",y=/^\s*$/;a.active=0,a.ajaxJSONP=function(b,c){if(!("type"in b))return a.ajax(b);var d,e,i=b.jsonpCallback,j=(a.isFunction(i)?i():i)||"jsonp"+ ++r,k=s.createElement("script"),l=window[j],m=function(b){a(k).triggerHandler("error",b||"abort")},n={abort:m};return c&&c.promise(n),a(k).on("load error",function(f,i){clearTimeout(e),a(k).off().remove(),"error"!=f.type&&d?g(d[0],n,b,c):h(null,i||"error",n,b,c),window[j]=l,d&&a.isFunction(l)&&l(d[0]),l=d=void 0}),f(n,b)===!1?(m("abort"),n):(window[j]=function(){d=arguments},k.src=b.url.replace(/\?(.+)=\?/,"?$1="+j),s.head.appendChild(k),b.timeout>0&&(e=setTimeout(function(){m("timeout")},b.timeout)),n)},a.ajaxSettings={type:"GET",beforeSend:j,success:j,error:j,complete:j,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:w,xml:"application/xml, text/xml",html:x,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},a.ajax=function(b){var c=a.extend({},b||{}),e=a.Deferred&&a.Deferred();for(p in a.ajaxSettings)void 0===c[p]&&(c[p]=a.ajaxSettings[p]);d(c),c.crossDomain||(c.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(c.url)&&RegExp.$2!=window.location.host),c.url||(c.url=window.location.toString()),m(c),c.cache===!1&&(c.url=l(c.url,"_="+Date.now()));var i=c.dataType,n=/\?.+=\?/.test(c.url);if("jsonp"==i||n)return n||(c.url=l(c.url,c.jsonp?c.jsonp+"=?":c.jsonp===!1?"":"callback=?")),a.ajaxJSONP(c,e);var o,r=c.accepts[i],s={},t=function(a,b){s[a.toLowerCase()]=[a,b]},u=/^([\w-]+:)\/\//.test(c.url)?RegExp.$1:window.location.protocol,v=c.xhr(),w=v.setRequestHeader;if(e&&e.promise(v),c.crossDomain||t("X-Requested-With","XMLHttpRequest"),t("Accept",r||"*/*"),(r=c.mimeType||r)&&(r.indexOf(",")>-1&&(r=r.split(",",2)[0]),v.overrideMimeType&&v.overrideMimeType(r)),(c.contentType||c.contentType!==!1&&c.data&&"GET"!=c.type.toUpperCase())&&t("Content-Type",c.contentType||"application/x-www-form-urlencoded"),c.headers)for(q in c.headers)t(q,c.headers[q]);if(v.setRequestHeader=t,v.onreadystatechange=function(){if(4==v.readyState){v.onreadystatechange=j,clearTimeout(o);var b,d=!1;if(v.status>=200&&v.status<300||304==v.status||0==v.status&&"file:"==u){i=i||k(c.mimeType||v.getResponseHeader("content-type")),b=v.responseText;try{"script"==i?(1,eval)(b):"xml"==i?b=v.responseXML:"json"==i&&(b=y.test(b)?null:a.parseJSON(b))}catch(f){d=f}d?h(d,"parsererror",v,c,e):g(b,v,c,e)}else h(v.statusText||null,v.status?"error":"abort",v,c,e)}},f(v,c)===!1)return v.abort(),h(null,"abort",v,c,e),v;if(c.xhrFields)for(q in c.xhrFields)v[q]=c.xhrFields[q];var x="async"in c?c.async:!0;v.open(c.type,c.url,x,c.username,c.password);for(q in s)w.apply(v,s[q]);return c.timeout>0&&(o=setTimeout(function(){v.onreadystatechange=j,v.abort(),h(null,"timeout",v,c,e)},c.timeout)),v.send(c.data?c.data:null),v},a.get=function(){return a.ajax(n.apply(null,arguments))},a.post=function(){var b=n.apply(null,arguments);return b.type="POST",a.ajax(b)},a.getJSON=function(){var b=n.apply(null,arguments);return b.dataType="json",a.ajax(b)},a.fn.load=function(b,c,d){if(!this.length)return this;var e,f=this,g=b.split(/\s/),h=n(b,c,d),i=h.success;return g.length>1&&(h.url=g[0],e=g[1]),h.success=function(b){f.html(e?a("
").html(b.replace(t,"")).find(e):b),i&&i.apply(f,arguments)},a.ajax(h),this};var z=encodeURIComponent;a.param=function(a,b){var c=[];return c.add=function(a,b){this.push(z(a)+"="+z(b))},o(c,a,b),c.join("&").replace(/%20/g,"+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b,c=[];return a([].slice.call(this.get(0).elements)).each(function(){b=a(this);var d=b.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=d&&"reset"!=d&&"button"!=d&&("radio"!=d&&"checkbox"!=d||this.checked)&&c.push({name:b.attr("name"),value:b.val()})}),c},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(a){"__proto__"in{}||a.extend(a.zepto,{Z:function(b,c){return b=b||[],a.extend(b,a.fn),b.selector=c||"",b.__Z=!0,b},isZ:function(b){return"array"===a.type(b)&&"__Z"in b}});try{getComputedStyle(void 0)}catch(b){var c=getComputedStyle;window.getComputedStyle=function(a){try{return c(a)}catch(b){return null}}}}(Zepto),function(a){function b(a){var b=this.os={},c=this.browser={},d=a.match(/Web[kK]it[\/]{0,1}([\d.]+)/),e=a.match(/(Android);?[\s\/]+([\d.]+)?/),f=!!a.match(/\(Macintosh\; Intel /),g=a.match(/(iPad).*OS\s([\d_]+)/),h=a.match(/(iPod)(.*OS\s([\d_]+))?/),i=!g&&a.match(/(iPhone\sOS)\s([\d_]+)/),j=a.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),k=j&&a.match(/TouchPad/),l=a.match(/Kindle\/([\d.]+)/),m=a.match(/Silk\/([\d._]+)/),n=a.match(/(BlackBerry).*Version\/([\d.]+)/),o=a.match(/(BB10).*Version\/([\d.]+)/),p=a.match(/(RIM\sTablet\sOS)\s([\d.]+)/),q=a.match(/PlayBook/),r=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),s=a.match(/Firefox\/([\d.]+)/),t=a.match(/MSIE\s([\d.]+)/)||a.match(/Trident\/[\d](?=[^\?]+).*rv:([0-9.].)/),u=!r&&a.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/),v=u||a.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/);(c.webkit=!!d)&&(c.version=d[1]),e&&(b.android=!0,b.version=e[2]),i&&!h&&(b.ios=b.iphone=!0,b.version=i[2].replace(/_/g,".")),g&&(b.ios=b.ipad=!0,b.version=g[2].replace(/_/g,".")),h&&(b.ios=b.ipod=!0,b.version=h[3]?h[3].replace(/_/g,"."):null),j&&(b.webos=!0,b.version=j[2]),k&&(b.touchpad=!0),n&&(b.blackberry=!0,b.version=n[2]),o&&(b.bb10=!0,b.version=o[2]),p&&(b.rimtabletos=!0,b.version=p[2]),q&&(c.playbook=!0),l&&(b.kindle=!0,b.version=l[1]),m&&(c.silk=!0,c.version=m[1]),!m&&b.android&&a.match(/Kindle Fire/)&&(c.silk=!0),r&&(c.chrome=!0,c.version=r[1]),s&&(c.firefox=!0,c.version=s[1]),t&&(c.ie=!0,c.version=t[1]),v&&(f||b.ios)&&(c.safari=!0,f&&(c.version=v[1])),u&&(c.webview=!0),b.tablet=!!(g||q||e&&!a.match(/Mobile/)||s&&a.match(/Tablet/)||t&&!a.match(/Phone/)&&a.match(/Touch/)),b.phone=!(b.tablet||b.ipod||!(e||i||j||n||o||r&&a.match(/Android/)||r&&a.match(/CriOS\/([\d.]+)/)||s&&a.match(/Mobile/)||t&&a.match(/Touch/)))}b.call(a,navigator.userAgent),a.__detect=b}(Zepto),function(a){function b(a,b,c,d){return Math.abs(a-b)>=Math.abs(c-d)?a-b>0?"Left":"Right":c-d>0?"Up":"Down"}function c(){k=null,m.last&&(m.el.trigger("longTap"),m={})}function d(){k&&clearTimeout(k),k=null}function e(){h&&clearTimeout(h),i&&clearTimeout(i),j&&clearTimeout(j),k&&clearTimeout(k),h=i=j=k=null,m={}}function f(a){return("touch"==a.pointerType||a.pointerType==a.MSPOINTER_TYPE_TOUCH)&&a.isPrimary}function g(a,b){return a.type=="pointer"+b||a.type.toLowerCase()=="mspointer"+b}var h,i,j,k,l,m={},n=750;a(document).ready(function(){var o,p,q,r,s=0,t=0;"MSGesture"in window&&(l=new MSGesture,l.target=document.body),a(document).bind("MSGestureEnd",function(a){var b=a.velocityX>1?"Right":a.velocityX<-1?"Left":a.velocityY>1?"Down":a.velocityY<-1?"Up":null;b&&(m.el.trigger("swipe"),m.el.trigger("swipe"+b))}).on("touchstart MSPointerDown pointerdown",function(b){(!(r=g(b,"down"))||f(b))&&(q=r?b:b.touches[0],b.touches&&1===b.touches.length&&m.x2&&(m.x2=void 0,m.y2=void 0),o=Date.now(),p=o-(m.last||o),m.el=a("tagName"in q.target?q.target:q.target.parentNode),h&&clearTimeout(h),m.x1=q.pageX,m.y1=q.pageY,p>0&&250>=p&&(m.isDoubleTap=!0),m.last=o,k=setTimeout(c,n),l&&r&&l.addPointer(b.pointerId))}).on("touchmove MSPointerMove pointermove",function(a){(!(r=g(a,"move"))||f(a))&&(q=r?a:a.touches[0],d(),m.x2=q.pageX,m.y2=q.pageY,s+=Math.abs(m.x1-m.x2),t+=Math.abs(m.y1-m.y2))}).on("touchend MSPointerUp pointerup",function(c){(!(r=g(c,"up"))||f(c))&&(d(),m.x2&&Math.abs(m.x1-m.x2)>30||m.y2&&Math.abs(m.y1-m.y2)>30?j=setTimeout(function(){m.el.trigger("swipe"),m.el.trigger("swipe"+b(m.x1,m.x2,m.y1,m.y2)),m={}},0):"last"in m&&(30>s&&30>t?i=setTimeout(function(){var b=a.Event("tap");b.cancelTouch=e,m.el.trigger(b),m.isDoubleTap?(m.el&&m.el.trigger("doubleTap"),m={}):h=setTimeout(function(){h=null,m.el&&m.el.trigger("singleTap"),m={}},250)},0):m={}),s=t=0)}).on("touchcancel MSPointerCancel pointercancel",e),a(window).on("scroll",e)}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(b){a.fn[b]=function(a){return this.on(b,a)}})}(Zepto),function(a){"use strict";function b(a){return a=a||p.href,a.replace(/^[^#]*#?\/?(.*)\/?$/,"$1")}function c(a){return"[object RegExp]"==Object.prototype.toString.call(a)}function d(a){return a=a.replace(M,"\\$&").replace(J,"(?:$1)?").replace(K,function(a,b){return b?a:"([^/]+)"}).replace(L,"(.*?)"),"^"+a+"$"}function e(b,c){var d=b.exec(c).slice(1),e=[];return a.each(d,function(a,b){b&&e.push(decodeURIComponent(b))}),e}function f(a,b){F[a.data("id")],F[b.data("id")];a.css({zIndex:z}),b.css({zIndex:A})}function g(b,c,d,e){var f=a(".spa-page-body",b),g=(a(".spa-page-body",c),{});!O&&(d="defaultInOut"),S[d]||(d="defaultInOut"),u&&(u=!1,d="defaultInOut"),g.opacity=1,!T(d)&&O&&(g[O]="translate(0, 0) scale(1, 1)"),f.css(g),R[d].apply(b,[b,c,e])}function h(){event.stopPropagation(),event.preventDefault()}var i,j,k,l,m,n=a(window),o=a(document),p=window.location,q=window.history,r=navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/),s=!1,t=!1,u=!0,v={},w={},x=[],y=2e3,z=2001,A=2002,B=0,C={},D={},E=[],F={},G="body {position: relative; margin: 0; padding: 0; width: 100%; overflow: hidden;} .spa-fullscreen {position: absolute; left: 0; top: 0; margin: 0; padding: 0; width: 100%; visibility: hidden; overflow: hidden; z-index: -1; } .spa-page {position: absolute; left: 0; top: 0; bottom: 0; right: 0; margin: 0; padding: 0; overflow: hidden; z-index: 2000; -webkit-transform: translateZ(0); -webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d;} .spa-page-bg {position: absolute; left: 0; top: 0; bottom: 0; right: 0; margin: 0; padding: 0; } .spa-page-body {position: absolute; left: 0; top: 0; bottom: 0; right: 0; margin: 0; padding: 0; overflow: hidden; -webkit-transform: translateZ(0); -webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d;} .spa-scroll {overflow: auto;} .spa-scroll-touch {-webkit-overflow-scrolling: touch; } .spa-scroll-x {overflow-y: hidden;} .spa-scroll-y {overflow-x: hidden;} .spa-cover {display: none; position: absolute; left: 0; right: 0; top: 0; bottom: 0; text-align: center; z-index: 5000; } .spa-loader {display: none; position: absolute; left: 0; right: 0; top: 0; bottom: 0; text-align: center; overflow: hidden; z-index: 5001; }",H='
',I=".spa-loader-animate {position: absolute; top: 50%; left: 50%;} .spa-loader-animate .bg {position: absolute; width: 64px; height: 64px; margin: 0 auto; top: -32px; left: -32px; border-radius: 50%; background: #2C3E50; opacity: 0.5;} .spa-loader-animate .ball {display: block; float: left; padding: 8px; margin-top: -8px; margin-left: -10px; -webkit-border-radius: 50%; -moz-border-radius: 50%; -ms-border-radius: 50%; -o-border-radius: 50%; border-radius: 50%;} .spa-loader-animate span:nth-child(2) {background: #16A085; -webkit-animation: move-left 800ms ease-in-out infinite alternate; -moz-animation: move-left 800ms ease-in-out infinite alternate; -ms-animation: move-left 800ms ease-in-out infinite alternate; -animation: move-left 800ms ease-in-out infinite alternate;} .spa-loader-animate .ball:nth-child(3) {background: #E67E22; -webkit-animation: move-right 800ms ease-in-out infinite alternate; -moz-animation: move-right 800ms ease-in-out infinite alternate; -ms-animation: move-right 800ms ease-in-out infinite alternate; animation: move-right 800ms ease-in-out infinite alternate;} @-webkit-keyframes move-left {to {-webkit-transform: translate(20px, 0); transform: translate(20px, 0); background: #e85932;}} @-webkit-keyframes move-right {to {-webkit-transform: translate(-20px, 0); transform: translate(-20px, 0); background: #44bbcc;}}"; +a.spa={},a.spa.getViewData=function(a){return F[a.data("id")]},a.spa.getCurPage=function(){return m},a.spa.version="1.0.4",o.on("spa:addstyle",function(b,c){a("head").append('")}),function(){var b,c,d,e,f=function(){d=Math.max(n.height(),window.innerHeight),e=Math.max(n.width(),window.innerWidth),k.css({height:2*d}),window.scrollTo(0,0),i.data("innerHeight",window.innerHeight),d=Math.max(n.height(),window.innerHeight),k.height()!=d&&(i.css({width:e,height:d}),k.css({width:e,height:d}))};n.on("spa:adjustfullscreen"+(a.os.ios?" orientationchange":""),function(){void 0!==b&&(cancelAnimationFrame(b),b=void 0),b=requestAnimationFrame(f)}),a.os.android&&n.on("orientationchange",function(){clearTimeout(c),c=setTimeout(f,500)}),n.on("resize",function(){clearTimeout(c),c=setTimeout(f,200)})}(),o.on("spa:scroll",function(b,c){var d=a(b.target),e=c&&c.direction||"";d.addClass("spa-scroll"+(e?" spa-scroll-"+e:""))}),o.on("spa:removescroll",function(b){var c=a(b.target);c.removeClass("spa-scroll")}),r&&o.on("touchstart",".spa-scroll, .spa-scroll-x, .spa-scroll-y",function(b){var c=a(b.currentTarget),d=c.prop("scrollTop"),e=c.prop("scrollLeft"),f=c.height(),g=c.width(),h=c.prop("scrollHeight"),i=c.prop("scrollWidth");(c.hasClass("spa-scroll")||c.hasClass("spa-scroll-x"))&&(0>=e&&c.prop("scrollLeft",1),e+g>=i&&c.prop("scrollLeft",i-g-1)),(c.hasClass("spa-scroll")||c.hasClass("spa-scroll-y"))&&(0>=d&&c.prop("scrollTop",1),d+f>=h&&c.prop("scrollTop",d-1))}),n.on("scroll",function(){var a=i&&i.data("innerHeight");a&&a!==window.innerHeight&&n.trigger("spa:adjustfullscreen")}),n.on("popstate",function(a){if(s){if(l&&"block"===l.css("display"))return!1;if(m&&m.hasClass("spa-panel")){var c=m.data("id"),d=F[c],e=d.prevPage;return e.trigger("spa:openpage"),!1}var f=b();if(!x.length||x[x.length-1]!==f){x.push(f);var g=C[f],h=a.state||{};if(j&&(h=j,j=void 0),g){var i=g.data("id"),k=F[i];k.oldpushData=k.pushData,k.pushData=h,g.trigger("spa:openpage")}else o.trigger("spa:createpage",{hash:f,pushData:h})}}});var J=/\((.*?)\)/g,K=/(\(\?)?:\w+/g,L=/\*\w+/g,M=/[\-{}\[\]+?.,\\\^$|#\s]/g,N={route:"",animate:"",classname:"",view:function(){return{title:"",body:""}},init:function(){},beforeopen:function(){},afteropen:function(){},beforeclose:function(){},afterclose:function(){}};o.on("spa:route",function(b,e){var f=Array.prototype.slice.call(arguments,1);if(f.length>1)return a.each(f,function(a,b){o.trigger("spa:route",b)}),!1;var g=e.route||"";c(g)||(g=d(g)),e.animate&&!a.isFunction(e.animate)&&T(e.animate)&&(e.animate=""),v[g]=a.extend({},N,e)});var O,P,Q,R={},S={};!function(){var a,b={"-webkit-transition":["-webkit-transform","webkitTransitionEnd"],"-moz-transition":["-moz-transform","transitionend"],"-ms-transition":["-ms-transform","msTransitionEnd"],"-o-transition":["-o-transform","oTransitionEnd"],transition:["transform","transitionend"]},c=document.createElement("div");for(a in b)if(void 0!==c.style[a]){P=a,O=b[a][0],Q=b[a][1];break}}(),a.fn.transition=function(b,c){var d=a(this);return requestAnimationFrame(function(){d.get(0).offsetWidth,b[P]="0.4s",d.css(b).emulateTransitionEnd(function(){b={},b[P]="",d.css(b),c&&c()})}),d},a.fn.emulateTransitionEnd=function(b,c){var d,e=!1,f=a(this);c=c||500,f.one(Q,function(){e=!0,clearTimeout(d),b.call(f)});var g=function(){e||f.trigger(Q)};return d=setTimeout(g,c),f},R.defaultInOut=function(a,b,c){f(b,a),c()},o.on("spa:addTransitPageAnimates",function(b,c){var d=[];a.each(c,function(a){d.push(a)}),a.each(d,function(a,b){S[b]=a%2===0?d[a+1]:d[a-1]}),a.extend(R,c)}),o.trigger("spa:addTransitPageAnimates",{fadeIn:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),{opacity:0}),h={opacity:1};g.opacity=0,e.css(g),f(c,b),e.transition(h,function(){d()})},fadeOut:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g={opacity:0};e.transition(g,function(){f(c,b),d()})},slideInLeft:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),{}),h={};g[O]="translate(100%, 0)",h[O]="translate(0%, 0)",e.css(g),f(c,b),e.transition(h,function(){d()})},slideOutRight:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g={};g[O]="translate(100%, 0)",e.transition(g,function(){f(c,b),d()})},slideInRight:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),{}),h={};g[O]="translate(-100%, 0)",h[O]="translate(0%, 0)",e.css(g),f(c,b),e.transition(h,function(){d()})},slideOutLeft:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g={};g[O]="translate(-100%, 0)",e.transition(g,function(){f(c,b),d()})},slideInUp:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),{}),h={};g[O]="translate(0, 100%)",h[O]="translate(0, 0%)",e.css(g),f(c,b),e.transition(h,function(){d()})},slideOutDown:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g={};g[O]="translate(0, 100%)",e.transition(g,function(){f(c,b),d()})},slideInDown:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),{}),h={};g[O]="translate(0, -100%)",h[O]="translate(0, 0%)",e.css(g),f(c,b),e.transition(h,function(){d()})},slideOutUp:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g={};g[O]="translate(0, -100%)",e.transition(g,function(){f(c,b),d()})},pushInLeft:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(100%, 0)",j[O]="translate(0%, 0)",k[O]="translate(-100%, 0)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushOutRight:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(-100%, 0)",j[O]="translate(0%, 0)",k[O]="translate(100%, 0)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushInRight:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(-100%, 0)",j[O]="translate(0%, 0)",k[O]="translate(100%, 0)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushOutLeft:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(100%, 0)",j[O]="translate(0%, 0)",k[O]="translate(-100%, 0)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushInUp:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(0, 100%)",j[O]="translate(0%, 0)",k[O]="translate(0, -100%)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushOutDown:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(0, -100%)",j[O]="translate(0%, 0)",k[O]="translate(0, 100%)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushInDown:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(0, -100%)",j[O]="translate(0%, 0)",k[O]="translate(0, 100%)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},pushOutUp:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=0,i={},j={},k={};i[O]="translate(0, 100%)",j[O]="translate(0%, 0)",k[O]="translate(0, -100%)",e.css(i),f(c,b),e.transition(j,function(){2==++h&&d()}),g.transition(k,function(){2==++h&&d()})},zoomIn:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),{}),h={};g[O]="scale(0, 0)",h[O]="scale(1, 1)",e.css(g),f(c,b),e.transition(h,function(){d()})},zoomOut:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g={};g[O]="scale(0, 0)",e.transition(g,function(){f(c,b),d()})},overlayInLeft:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),e.children().width()),h={left:"auto",width:g},i={};i[O]="translate(0px, 0)",e.css(h),g=2*g-e.prop("clientWidth"),h={width:g},h[O]="translate("+g+"px, 0)",e.css(h),f(c,b),e.transition(i,function(){d()})},overlayOutRight:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g=e.width(),h={},i={width:"auto",left:0};h[O]="translate("+g+"px, 0)",e.transition(h,function(){f(c,b),e.css(i),d()})},overlayInRight:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),e.children().width()),h={right:"auto",width:g},i={};i[O]="translate(0px, 0)",e.css(h),g=2*g-e.prop("clientWidth"),h={width:g},h[O]="translate("+(0-g)+"px, 0)",e.css(h),f(c,b),e.transition(i,function(){d()})},overlayOutLeft:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g=e.width(),h={},i={width:"auto",right:0};h[O]="translate("+(0-g)+"px, 0)",e.transition(h,function(){f(c,b),e.css(i),d()})},overlayInUp:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),e.children().height()),h={top:"auto",height:g},i={};i[O]="translate(0, 0px)",e.css(h),g=2*g-e.prop("clientHeight"),h={height:g},h[O]="translate(0, "+g+"px)",e.css(h),f(c,b),e.transition(i,function(){d()})},overlayOutDown:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g=e.height(),h={},i={height:"auto",top:0};h[O]="translate(0, "+g+"px)",e.transition(h,function(){f(c,b),e.css(i),d()})},overlayInDown:function(b,c,d){var e=a(".spa-page-body",b),g=(a(".spa-page-body",c),e.children().height()),h={bottom:"auto",height:g},i={};i[O]="translate(0, 0px)",e.css(h),g=2*g-e.prop("clientHeight"),h={height:g},h[O]="translate(0, "+(0-g)+"px)",e.css(h),f(c,b),e.transition(i,function(){d()})},overlayOutUp:function(b,c,d){var e=(a(".spa-page-body",b),a(".spa-page-body",c)),g=e.height(),h={},i={height:"auto",bottom:0};h[O]="translate(0, "+(0-g)+"px)",e.transition(h,function(){f(c,b),e.css(i),d()})},revealInLeft:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().width(),i={left:"auto",width:h},j={};i[O]="translate(0, 0)",e.css(i),h=2*e.width()-e.prop("clientWidth"),e.css({width:h}),j[O]="translate("+(0-h)+"px, 0)",f(b,c),g.transition(j,function(){f(c,b),d()})},revealOutRight:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=(g.width(),{});h[O]="translate(0px, 0)",f(c,b),e.transition(h,function(){g.css({width:"auto",left:0}),d()})},revealInRight:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().width(),i={right:"auto",width:h},j={};i[O]="translate(0, 0)",e.css(i),h=2*e.width()-e.prop("clientWidth"),e.css({width:h}),j[O]="translate("+h+"px, 0)",f(b,c),g.transition(j,function(){f(c,b),d()})},revealOutLeft:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=(g.width(),{});h[O]="translate(0px, 0)",f(c,b),e.transition(h,function(){g.css({width:"auto",right:0}),d()})},revealInUp:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().height(),i={top:"auto",height:h},j={};i[O]="translate(0, 0)",e.css(i),h=2*e.height()-e.prop("clientHeight"),e.css({height:h}),j[O]="translate(0, "+(0-h)+"px)",f(b,c),g.transition(j,function(){f(c,b),d()})},revealOutDown:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=(g.height(),{});h[O]="translate(0, 0px)",f(c,b),e.transition(h,function(){g.css({height:"auto",top:0}),d()})},revealInDown:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().height(),i={bottom:"auto",height:h},j={};i[O]="translate(0, 0)",e.css(i),h=2*e.height()-e.prop("clientHeight"),e.css({height:h}),j[O]="translate(0, "+h+"px)",f(b,c),g.transition(j,function(){f(c,b),d()})},revealOutUp:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=(g.height(),{});h[O]="translate(0, 0px)",f(c,b),e.transition(h,function(){g.css({height:"auto",bottom:0}),d()})},pushPartInLeft:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().width(),i=0,j={left:"auto",width:h},k={},l={};e.css(j),h=2*e.width()-e.prop("clientWidth"),j={width:h},j[O]="translate("+h+"px, 0)",k[O]="translate(0px, 0)",l[O]="translate("+(0-h)+"px, 0)",e.css(j),f(c,b),e.transition(k,function(){2==++i&&d()}),g.transition(l,function(){2==++i&&d()})},pushPartOutRight:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=g.width(),i=0,j={},k={},l={width:"auto",left:0};j[O]="translate(0px, 0)",k[O]="translate("+h+"px, 0)",f(c,b),e.transition(j,function(){2==++i&&d()}),g.transition(k,function(){g.css(l),2==++i&&d()})},pushPartInRight:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().width(),i=0,j={right:"auto",width:h},k={},l={};e.css(j),h=2*e.width()-e.prop("clientWidth"),j={width:h},j[O]="translate("+(0-h)+"px, 0)",l[O]="translate("+h+"px, 0)",k[O]="translate(0px, 0)",e.css(j),f(c,b),e.transition(k,function(){2==++i&&d()}),g.transition(l,function(){2==++i&&d()})},pushPartOutLeft:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=g.width(),i=0,j={},k={},l={width:"auto",right:0};j[O]="translate(0px, 0)",k[O]="translate("+(0-h)+"px, 0)",f(c,b),e.transition(j,function(){2==++i&&d()}),g.transition(k,function(){g.css(l),2==++i&&d()})},pushPartInUp:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().height(),i=0,j={top:"auto",height:h},k={},l={};e.css(j),h=2*e.height()-e.prop("clientHeight"),j={height:h},j[O]="translate(0, "+h+"px)",k[O]="translate(0, 0px)",l[O]="translate(0, "+(0-h)+"px)",e.css(j),f(c,b),e.transition(k,function(){2==++i&&d()}),g.transition(l,function(){2==++i&&d()})},pushPartOutDown:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=g.height(),i=0,j={},k={},l={height:"auto",top:0};j[O]="translate(0, 0px)",k[O]="translate(0, "+h+"px)",f(c,b),e.transition(j,function(){2==++i&&d()}),g.transition(k,function(){g.css(l),2==++i&&d()})},pushPartInDown:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=e.children().height(),i=0,j={bottom:"auto",height:h},k={},l={};e.css(j),h=2*e.height()-e.prop("clientHeight"),j={height:h},j[O]="translate(0, "+(0-h)+"px)",k[O]="translate(0, 0px)",l[O]="translate(0, "+h+"px)",e.css(j),f(c,b),e.transition(k,function(){2==++i&&d()}),g.transition(l,function(){2==++i&&d()})},pushPartOutUp:function(b,c,d){var e=a(".spa-page-body",b),g=a(".spa-page-body",c),h=g.height(),i=0,j={},k={},l={height:"auto",bottom:0};j[O]="translate(0, 0px)",k[O]="translate(0, "+(0-h)+"px)",f(c,b),e.transition(j,function(){2==++i&&d()}),g.transition(k,function(){g.css(l),2==++i&&d()})}});var T=function(){var a=/^(overlay|reveal|pushPart).*$/;return function(b){return a.test(b)}}(),U=function(){var a=0;return function(){return a++}}();o.on("spa:createpage",function(b,d){o.trigger("spa:openloader");var f,g,h,i=d.hash,j=d.pushData;if(a.each(v,function(a,b){return g=new RegExp(a),g.test(i)?(f=a,h=b,!1):void(g=!1)}),c(g)){var k,l,m=h.classname?" spa-page-"+h.classname:"",n=a('
'),p=U();n.data("id",p),k={id:p,hash:i,pushData:j,requestData:e(g,i),route:f,el:n},F[p]=k,o.trigger("spa:viewcache",{view:n}),l=h.view.call(n,k),a.isPlainObject(l)&&o.trigger("spa:initpage",[n,l])}}),o.on("spa:initpage",function(b,c,d){var e=c.data("id"),f=F[e],g=v[f.route];a.each(["init","beforeopen","afteropen","beforeclose","afterclose"],function(a,b){d[b]&&(g[b]=d[b])}),f.viewData=d,o.trigger("spa:closeloader"),a(".spa-page-body",c).html(d.body),i.append(c),c.trigger("spa:openpage")}),o.on("spa:openpage",".spa-page",function(c,d){var e=a(c.currentTarget),f=e.data("id"),h=F[f],j=v[h.route],k=h.hash,l=h.pushData,p=(h.oldpushData,h.requestData,h.viewData),q=l.title||p.title,r=!1,s=l.animate||j.animate;m||(i.append('
'),m=a(".spa-page-empty"));var u=m.data("id"),x=F[u]||{};if(!l.animate&&x.prevPage&&x.prevPage.data("id")===f){var A=x.prevAnimate;A&&!a.isFunction(A)&&(s=S[A]),r=!0}var B,C;if(m.hasClass("spa-panel")){var D=w[m.data("id")];B=D.beforeclose,C=D.afterclose}else if(x.route){var E=v[x.route];B=E.beforeclose,C=E.afterclose,o.trigger("spa:navigate",{hash:k,title:q,pushData:l,replace:!0})}var G=function(){e.data("spa:init")||(e.data("spa:init",!0),j.init.call(e,h),a.os.ios&&parseInt(a.os.version.slice(0,1))>5&&a(".spa-scroll",e).addClass("spa-scroll-touch")),a.os.ios&&parseInt(a.os.version.slice(0,1))>5&&a(".spa-scroll",m).removeClass("spa-scroll-touch"),C&&C.call(m,x),m.hasClass("spa-panel")?(m.css({zIndex:y}),h.prevPage&&h.prevPage.css({zIndex:z})):r||(h.prevPage=m),j.afteropen.call(e,h),m=e,h.hash!==b()?(t=!1,n.trigger("popstate")):(a.isFunction(d)&&d.call(e),t=!1)};B&&B.call(m,x),j.beforeopen.call(e,h),!r&&(h.prevAnimate=s),a.os.ios&&parseInt(a.os.version.slice(0,1))>5&&a(".spa-scroll",e).addClass("spa-scroll-touch"),r||x.prevPage&&x.prevPage.css({zIndex:y}),a.isFunction(s)?s(e,m,G):g(e,m,s,G),o.trigger("spa:viewcachesort",{view:e})});var V={id:"",animate:"",classname:"",view:function(){return{body:""}},init:function(){},beforeopen:function(){},afteropen:function(){},beforeclose:function(){},afterclose:function(){}};o.on("spa:panel",function(b,c){var d=Array.prototype.slice.call(arguments,1);return d.length>1?(a.each(d,function(a,b){o.trigger("spa:panel",b)}),!1):void(c.id&&!w[c.id]&&(w[c.id]=a.extend({},V,c)))}),o.on("spa:createpanel",function(b,c,d){var e=w[c];if(e){o.trigger("spa:openloader");var f,g,h=e.classname?" spa-panel-"+e.classname:"",i=a('
');i.data("id",c),f={id:c,pushData:d,el:i},F[c]=f,o.trigger("spa:viewcache",{view:i}),g=e.view.call(i,f),a.isPlainObject(g)&&i.trigger("spa:initpanel",[i,g])}}),o.on("spa:initpanel",function(b,c,d){var e=c.data("id"),f=F[e],g=f.pushData,h=w[e];a.each(["init","beforeopen","afteropen","beforeclose","afterclose"],function(a,b){d[b]&&(h[b]=d[b])}),f.viewData=d,a(".spa-page-body",c).html(d.body),i.append(c),o.trigger("spa:closeloader"),c.trigger("spa:openpanel",[e,g])}),o.on("spa:openpanel",function(b,c,d){if(l&&"block"===l.css("display"))return!1;var e=D[c];if(d||(d={}),e){if(t)return!1;t=!0;var f=w[c],h=d.animate||f.animate;if(m.hasClass("spa-panel")){var i=F(m.data("id")).prevPage;return i.trigger("spa:openpage",[function(){o.trigger("spa:openpanel",[c,d])}]),!1}var j=F[c];j.oldpushData=j.pushData,j.pushData=d,f.beforeopen.call(e,j);var k=function(){e.data("spa:init")||(e.data("spa:init",!0),f.init.call(e,j),a.os.ios&&parseInt(a.os.version.slice(0,1))>5&&setTimeout(function(){a(".spa-scroll",e).addClass("spa-scroll-touch")},17)),j.prevPage=m,f.afteropen.call(e,j),m=e,t=!1};j.prevAnimate=h,a.os.ios&&parseInt(a.os.version.slice(0,1))>5&&a(".spa-scroll",e).addClass("spa-scroll-touch");var n=m.data("id"),p=F[n]||{};p.prevPage&&p.prevPage.css({zIndex:y}),a.isFunction(h)?h(e,m,k):g(e,m,h,k),o.trigger("spa:viewcachesort",{view:e})}else o.trigger("spa:createpanel",[c,d])}),o.on("spa:closepanel",function(b,c){var d=a(b.target),e=d.data("id"),f=F[e];if(c&&c.id&&(d=a(".spa-panel-"+c.id)),m.hasClass("spa-panel")&&m.data("id")===e){var g=f.prevPage;g.trigger("spa:openpage")}}),o.on("click touchstart",".spa-panel",function(b){var c=a(b.currentTarget),d=a(b.target);(d.hasClass("spa-page-bg")||d.hasClass("spa-panel"))&&(b.stopPropagation(),b.preventDefault(),c.trigger("spa:closepanel"))}),o.on("spa:viewcachecount",function(a,b){B=b.count}),o.on("spa:viewcache",function(b,c){var d,e,f=c.view,g=f.data("id");if(f.hasClass("spa-panel")?(d="panle",e=g,D[e]=f):(d="page",e=F[g].hash,C[e]=f),E.unshift(d+":"+e),0!==B&&E.length>B){var h,i,j,k,l=E.splice(B);a.each(l,function(b,c){h=c.split(":",2),i=h[0],j=h[1],k="page"==i?C:D,a("img",k[j]).remove(),k[j].html("").remove(),delete k[j]})}}),o.on("spa:viewcachesort",function(a,b){var c,d,e,f,g=b.view,h=g.data("id");g.hasClass("spa-panel")?(c="panle",d=h):(c="page",d=F[h].hash),e=c+":"+d,f=E.indexOf(e),-1!==f&&(E.splice(f,1),E.unshift(e))}),o.on("spa:navigate",function(b,c){var d=c.hash||"",e=c.title||"",f=c.pushData||{},g=c.replace||!1,h=c.url||"";e&&(document.title=e);var k=a('').on("load",function(){setTimeout(function(){k.off("load").remove()},0)}).appendTo(i);if(d=h+"#"+d,g)q.replaceState(f,e,d);else{if(!m.hasClass("spa-panel")&&x.length&&"#"+x[x.length-1]===d)return;if(t)return!1;t=!0,q.pushState(f,e,d),!a.isEmptyObject(f)&&(j=f),n.trigger("popstate")}}),o.on("spa:loader",function(a,b){b.body&&(H=b.body),b.style&&(I=b.style)});var W;o.on("spa:openloader",function(){W=setTimeout(function(){W=void 0,l.show()},300)}),o.on("spa:closeloader",function(){W?(clearTimeout(W),W=void 0):l.hide()}),o.on("spa:boot",function(b,c){i=a("body"),o.trigger("spa:addstyle",G+I),i.append('
'+H+"
"),k=a(".spa-fullscreen"),o.trigger("spa:adjustfullscreen"),l=a(".spa-loader"),l.on("click select mousedown mousemove mouseup touchstart touchmove touchend",h),s=!0,n.trigger("popstate"),c&&c.callback&&c.callback()})}(window.Zepto||window.jQuery||window.$),function(){"use strict";for(var a=0,b=["ms","moz","webkit","o"],c=0;c":">",'"':""","'":"'","&":"&"},d=function(b){return a(b).replace(/&(?![\w#]+;)|[<>"']/g,function(a){return c[a]})},e=Array.isArray||function(a){return"[object Array]"==={}.toString.call(a)},f=function(a,b){if(e(a))for(var c=0,d=a.length;d>c;c++)b.call(a,a[c],c,a);else for(c in a)b.call(a,a[c],c)};return{$include:b.render,$string:a,$escape:d,$each:f}}();b.helper=function(a,b){d[a]=b},b.onerror=function(b){var c="Template Error\n\n";for(var d in b)c+="<"+d+">\n"+b[d]+"\n\n";a.console&&console.error(c)},b.get=function(d){var e;if(c.hasOwnProperty(d))e=c[d];else if("document"in a){var f=document.getElementById(d);if(f){var g=f.value||f.innerHTML;e=b.compile(d,g.replace(/^\s*|\s*$/g,""))}}return e};var e=function(a){return b.onerror(a),function(){return"{Template Error}"}},f=function(){var a=d.$each,c="break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined",e=/\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|[\s\t\n]*\.[\s\t\n]*[$\w\.]+/g,f=/[^\w$]+/g,g=new RegExp(["\\b"+c.replace(/,/g,"\\b|\\b")+"\\b"].join("|"),"g"),h=/^\d[^,]*|,\d[^,]*/g,i=/^,+|,+$/g,j=function(a){return a.replace(e,"").replace(f,",").replace(g,"").replace(h,"").replace(i,"").split(/^$|,+/)};return function(c,e,f){function g(a){return r+=a.split(/\n/).length-1,b.isCompress&&(a=a.replace(/[\n\r\t\s]+/g," ").replace(//g,"")),a&&(a=w[1]+l(a)+w[2]+"\n"),a}function h(a){var c=r;if(o?a=o(a):f&&(a=a.replace(/\n/g,function(){return r++,"$line="+r+";"})),0===a.indexOf("=")){var e=!/^=[=#]/.test(a);if(a=a.replace(/^=[=#]?|[\s;]*$/g,""),e&&b.isEscape){var g=a.replace(/\s*\([^\)]+\)/,"");d.hasOwnProperty(g)||/^(include|print)$/.test(g)||(a="$escape("+a+")")}else a="$string("+a+")";a=w[1]+a+w[2]}return f&&(a="$line="+c+";"+a),i(a),a+"\n"}function i(b){b=j(b),a(b,function(a){a&&!s.hasOwnProperty(a)&&(k(a),s[a]=!0)})}function k(a){var b;"print"===a?b=y:"include"===a?(t.$include=d.$include,b=z):(b="$data."+a,d.hasOwnProperty(a)&&(t[a]=d[a],b=0===a.indexOf("$")?"$helpers."+a:b+"===undefined?$helpers."+a+":"+b)),u+=a+"="+b+","}function l(a){return"'"+a.replace(/('|\\)/g,"\\$1").replace(/\r/g,"\\r").replace(/\n/g,"\\n")+"'"}var m=b.openTag,n=b.closeTag,o=b.parser,p=e,q="",r=1,s={$data:1,$id:1,$helpers:1,$out:1,$line:1},t={},u="var $helpers=this,"+(f?"$line=0,":""),v="".trim,w=v?["$out='';","$out+=",";","$out"]:["$out=[];","$out.push(",");","$out.join('')"],x=v?"$out+=$text;return $text;":"$out.push($text);",y="function($text){"+x+"}",z="function(id,data){data=data||$data;var $text=$helpers.$include(id,data,$id);"+x+"}";a(p.split(m),function(a){a=a.split(n);var b=a[0],c=a[1];1===a.length?q+=g(b):(q+=h(b),c&&(q+=g(c)))}),p=q,f&&(p="try{"+p+"}catch(e){throw {id:$id,name:'Render Error',message:e.message,line:$line,source:"+l(e)+".split(/\\n/)[$line-1].replace(/^[\\s\\t]+/,'')};}"),p=u+w[0]+p+"return new String("+w[3]+");";try{var A=new Function("$data","$id",p);return A.prototype=t,A}catch(B){throw B.temp="function anonymous($data,$id) {"+p+"}",B}}}();"function"==typeof define?define(function(){return b}):"undefined"!=typeof exports&&(module.exports=b),a.template=b}(this),function(){function a(a){this.tokens=[],this.tokens.links={},this.options=a||j.defaults,this.rules=k.normal,this.options.gfm&&(this.rules=this.options.tables?k.tables:k.gfm)}function b(a,b){if(this.options=b||j.defaults,this.links=a,this.rules=l.normal,this.renderer=this.options.renderer||new c,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.rules=this.options.breaks?l.breaks:l.gfm:this.options.pedantic&&(this.rules=l.pedantic)}function c(a){this.options=a||{}}function d(a){this.tokens=[],this.token=null,this.options=a||j.defaults,this.options.renderer=this.options.renderer||new c,this.renderer=this.options.renderer,this.renderer.options=this.options}function e(a,b){return a.replace(b?/&/g:/&(?!#?\w+;)/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function f(a){return a.replace(/&([#\w]+);/g,function(a,b){return b=b.toLowerCase(),"colon"===b?":":"#"===b.charAt(0)?String.fromCharCode("x"===b.charAt(1)?parseInt(b.substring(2),16):+b.substring(1)):""})}function g(a,b){return a=a.source,b=b||"",function c(d,e){return d?(e=e.source||e,e=e.replace(/(^|[^\[])\^/g,"$1"),a=a.replace(d,e),c):new RegExp(a,b)}}function h(){}function i(a){for(var b,c,d=1;dAn error occured:

"+e(m.message+"",!0)+"
";throw m}}var k={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:h,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:h,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:h,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};k.bullet=/(?:[*+-]|\d+\.)/,k.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,k.item=g(k.item,"gm")(/bull/g,k.bullet)(),k.list=g(k.list)(/bull/g,k.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+k.def.source+")")(),k.blockquote=g(k.blockquote)("def",k.def)(),k._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",k.html=g(k.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,k._tag)(),k.paragraph=g(k.paragraph)("hr",k.hr)("heading",k.heading)("lheading",k.lheading)("blockquote",k.blockquote)("tag","<"+k._tag)("def",k.def)(),k.normal=i({},k),k.gfm=i({},k.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/}),k.gfm.paragraph=g(k.paragraph)("(?!","(?!"+k.gfm.fences.source.replace("\\1","\\2")+"|"+k.list.source.replace("\\1","\\3")+"|")(),k.tables=i({},k.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),a.rules=k,a.lex=function(b,c){var d=new a(c);return d.lex(b)},a.prototype.lex=function(a){return a=a.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(a,!0)},a.prototype.token=function(a,b,c){for(var d,e,f,g,h,i,j,l,m,a=a.replace(/^ +$/gm,"");a;)if((f=this.rules.newline.exec(a))&&(a=a.substring(f[0].length),f[0].length>1&&this.tokens.push({type:"space"})),f=this.rules.code.exec(a))a=a.substring(f[0].length),f=f[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?f:f.replace(/\n+$/,"")});else if(f=this.rules.fences.exec(a))a=a.substring(f[0].length),this.tokens.push({type:"code",lang:f[2],text:f[3]});else if(f=this.rules.heading.exec(a))a=a.substring(f[0].length),this.tokens.push({type:"heading",depth:f[1].length,text:f[2]});else if(b&&(f=this.rules.nptable.exec(a))){for(a=a.substring(f[0].length),i={type:"table",header:f[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:f[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:f[3].replace(/\n$/,"").split("\n")},l=0;l ?/gm,""),this.token(f,b,!0),this.tokens.push({type:"blockquote_end"});else if(f=this.rules.list.exec(a)){for(a=a.substring(f[0].length),g=f[2],this.tokens.push({type:"list_start",ordered:g.length>1}),f=f[0].match(this.rules.item),d=!1,m=f.length,l=0;m>l;l++)i=f[l],j=i.length,i=i.replace(/^ *([*+-]|\d+\.) +/,""),~i.indexOf("\n ")&&(j-=i.length,i=this.options.pedantic?i.replace(/^ {1,4}/gm,""):i.replace(new RegExp("^ {1,"+j+"}","gm"),"")),this.options.smartLists&&l!==m-1&&(h=k.bullet.exec(f[l+1])[0],g===h||g.length>1&&h.length>1||(a=f.slice(l+1).join("\n")+a,l=m-1)),e=d||/\n\n(?!\s*$)/.test(i),l!==m-1&&(d="\n"===i.charAt(i.length-1),e||(e=d)),this.tokens.push({type:e?"loose_item_start":"list_item_start"}),this.token(i,!1,c),this.tokens.push({type:"list_item_end"}); +this.tokens.push({type:"list_end"})}else if(f=this.rules.html.exec(a))a=a.substring(f[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:"pre"===f[1]||"script"===f[1]||"style"===f[1],text:f[0]});else if(!c&&b&&(f=this.rules.def.exec(a)))a=a.substring(f[0].length),this.tokens.links[f[1].toLowerCase()]={href:f[2],title:f[3]};else if(b&&(f=this.rules.table.exec(a))){for(a=a.substring(f[0].length),i={type:"table",header:f[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:f[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:f[3].replace(/(?: *\| *)?\n$/,"").split("\n")},l=0;l])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:h,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:h,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,l.link=g(l.link)("inside",l._inside)("href",l._href)(),l.reflink=g(l.reflink)("inside",l._inside)(),l.normal=i({},l),l.pedantic=i({},l.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),l.gfm=i({},l.normal,{escape:g(l.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:g(l.text)("]|","~]|")("|","|https?://|")()}),l.breaks=i({},l.gfm,{br:g(l.br)("{2,}","*")(),text:g(l.gfm.text)("{2,}","*")()}),b.rules=l,b.output=function(a,c,d){var e=new b(c,d);return e.output(a)},b.prototype.output=function(a){for(var b,c,d,f,g="";a;)if(f=this.rules.escape.exec(a))a=a.substring(f[0].length),g+=f[1];else if(f=this.rules.autolink.exec(a))a=a.substring(f[0].length),"@"===f[2]?(c=this.mangle(":"===f[1].charAt(6)?f[1].substring(7):f[1]),d=this.mangle("mailto:")+c):(c=e(f[1]),d=c),g+=this.renderer.link(d,null,c);else if(this.inLink||!(f=this.rules.url.exec(a))){if(f=this.rules.tag.exec(a))!this.inLink&&/^/i.test(f[0])&&(this.inLink=!1),a=a.substring(f[0].length),g+=this.options.sanitize?e(f[0]):f[0];else if(f=this.rules.link.exec(a))a=a.substring(f[0].length),this.inLink=!0,g+=this.outputLink(f,{href:f[2],title:f[3]}),this.inLink=!1;else if((f=this.rules.reflink.exec(a))||(f=this.rules.nolink.exec(a))){if(a=a.substring(f[0].length),b=(f[2]||f[1]).replace(/\s+/g," "),b=this.links[b.toLowerCase()],!b||!b.href){g+=f[0].charAt(0),a=f[0].substring(1)+a;continue}this.inLink=!0,g+=this.outputLink(f,b),this.inLink=!1}else if(f=this.rules.strong.exec(a))a=a.substring(f[0].length),g+=this.renderer.strong(this.output(f[2]||f[1]));else if(f=this.rules.em.exec(a))a=a.substring(f[0].length),g+=this.renderer.em(this.output(f[2]||f[1]));else if(f=this.rules.code.exec(a))a=a.substring(f[0].length),g+=this.renderer.codespan(e(f[2],!0));else if(f=this.rules.br.exec(a))a=a.substring(f[0].length),g+=this.renderer.br();else if(f=this.rules.del.exec(a))a=a.substring(f[0].length),g+=this.renderer.del(this.output(f[1]));else if(f=this.rules.text.exec(a))a=a.substring(f[0].length),g+=e(this.smartypants(f[0]));else if(a)throw new Error("Infinite loop on byte: "+a.charCodeAt(0))}else a=a.substring(f[0].length),c=e(f[1]),d=c,g+=this.renderer.link(d,null,c);return g},b.prototype.outputLink=function(a,b){var c=e(b.href),d=b.title?e(b.title):null;return"!"!==a[0].charAt(0)?this.renderer.link(c,d,this.output(a[1])):this.renderer.image(c,d,e(a[1]))},b.prototype.smartypants=function(a){return this.options.smartypants?a.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):a},b.prototype.mangle=function(a){for(var b,c="",d=a.length,e=0;d>e;e++)b=a.charCodeAt(e),Math.random()>.5&&(b="x"+b.toString(16)),c+="&#"+b+";";return c},c.prototype.code=function(a,b,c){if(this.options.highlight){var d=this.options.highlight(a,b);null!=d&&d!==a&&(c=!0,a=d)}return b?'
'+(c?a:e(a,!0))+"\n
\n":"
"+(c?a:e(a,!0))+"\n
"},c.prototype.blockquote=function(a){return"
\n"+a+"
\n"},c.prototype.html=function(a){return a},c.prototype.heading=function(a,b,c){return"'+a+"\n"},c.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},c.prototype.list=function(a,b){var c=b?"ol":"ul";return"<"+c+">\n"+a+"\n"},c.prototype.listitem=function(a){return"
  • "+a+"
  • \n"},c.prototype.paragraph=function(a){return"

    "+a+"

    \n"},c.prototype.table=function(a,b){return"\n\n"+a+"\n\n"+b+"\n
    \n"},c.prototype.tablerow=function(a){return"\n"+a+"\n"},c.prototype.tablecell=function(a,b){var c=b.header?"th":"td",d=b.align?"<"+c+' style="text-align:'+b.align+'">':"<"+c+">";return d+a+"\n"},c.prototype.strong=function(a){return""+a+""},c.prototype.em=function(a){return""+a+""},c.prototype.codespan=function(a){return""+a+""},c.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},c.prototype.del=function(a){return""+a+""},c.prototype.link=function(a,b,c){if(this.options.sanitize){try{var d=decodeURIComponent(f(a)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0===d.indexOf("javascript:"))return""}var g='
    "},c.prototype.image=function(a,b,c){var d=''+c+'":">"},d.parse=function(a,b,c){var e=new d(b,c);return e.parse(a)},d.prototype.parse=function(a){this.inline=new b(a.links,this.options,this.renderer),this.tokens=a.reverse();for(var c="";this.next();)c+=this.tok();return c},d.prototype.next=function(){return this.token=this.tokens.pop()},d.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},d.prototype.parseText=function(){for(var a=this.token.text;"text"===this.peek().type;)a+="\n"+this.next().text;return this.inline.output(a)},d.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var a,b,c,d,e,f="",g="";for(c="",a=0;a/gm,">")}function b(a){return a.nodeName.toLowerCase()}function c(a,b){var c=a&&a.exec(b);return c&&0==c.index}function d(a){return Array.prototype.map.call(a.childNodes,function(a){return 3==a.nodeType?s.useBR?a.nodeValue.replace(/\n/g,""):a.nodeValue:"br"==b(a)?"\n":d(a)}).join("")}function e(a){var b=(a.className+" "+(a.parentNode?a.parentNode.className:"")).split(/\s+/);return b=b.map(function(a){return a.replace(/^language-/,"")}),b.filter(function(a){return r(a)||"no-highlight"==a})[0]}function f(a,b){var c={};for(var d in a)c[d]=a[d];if(b)for(var d in b)c[d]=b[d];return c}function g(a){var c=[];return function d(a,e){for(var f=a.firstChild;f;f=f.nextSibling)3==f.nodeType?e+=f.nodeValue.length:"br"==b(f)?e+=1:1==f.nodeType&&(c.push({event:"start",offset:e,node:f}),e=d(f,e),c.push({event:"stop",offset:e,node:f}));return e}(a,0),c}function h(c,d,e){function f(){return c.length&&d.length?c[0].offset!=d[0].offset?c[0].offset"}function h(a){k+=""}function i(a){("start"==a.event?g:h)(a.node)}for(var j=0,k="",l=[];c.length||d.length;){var m=f();if(k+=a(e.substr(j,m[0].offset-j)),j=m[0].offset,m==c){l.reverse().forEach(h);do i(m.splice(0,1)[0]),m=f();while(m==c&&m.length&&m[0].offset==j);l.reverse().forEach(g)}else"start"==m[0].event?l.push(m[0].node):l.pop(),i(m.splice(0,1)[0])}return k+a(e.substr(j))}function i(a){function b(a){return a&&a.source||a}function c(c,d){return RegExp(b(c),"m"+(a.cI?"i":"")+(d?"g":""))}function d(e,g){function h(b,c){a.cI&&(c=c.toLowerCase()),c.split(" ").forEach(function(a){var c=a.split("|");i[c[0]]=[b,c[1]?Number(c[1]):1]})}if(!e.compiled){if(e.compiled=!0,e.k=e.k||e.bK,e.k){var i={};"string"==typeof e.k?h("keyword",e.k):Object.keys(e.k).forEach(function(a){h(a,e.k[a])}),e.k=i}e.lR=c(e.l||/\b[A-Za-z0-9_]+\b/,!0),g&&(e.bK&&(e.b=e.bK.split(" ").join("|")),e.b||(e.b=/\B|\b/),e.bR=c(e.b),e.e||e.eW||(e.e=/\B|\b/),e.e&&(e.eR=c(e.e)),e.tE=b(e.e)||"",e.eW&&g.tE&&(e.tE+=(e.e?"|":"")+g.tE)),e.i&&(e.iR=c(e.i)),void 0===e.r&&(e.r=1),e.c||(e.c=[]);var j=[];e.c.forEach(function(a){a.v?a.v.forEach(function(b){j.push(f(a,b))}):j.push("self"==a?e:a)}),e.c=j,e.c.forEach(function(a){d(a,e)}),e.starts&&d(e.starts,g);var k=e.c.map(function(a){return a.bK?"\\.?\\b("+a.b+")\\b\\.?":a.b}).concat([e.tE]).concat([e.i]).map(b).filter(Boolean);e.t=k.length?c(k.join("|"),!0):{exec:function(){return null}},e.continuation={}}}d(a)}function j(b,d,e,f){function g(a,b){for(var d=0;d";return f+=a+'">',f+b+g}function o(){var b=a(A);if(!x.k)return b;var c="",d=0;x.lR.lastIndex=0;for(var e=x.lR.exec(b);e;){c+=b.substr(d,e.index-d);var f=m(x,e);f?(B+=f[1],c+=n(f[0],e[0])):c+=e[0],d=x.lR.lastIndex,e=x.lR.exec(b)}return c+b.substr(d)}function p(){if(x.sL&&!t[x.sL])return a(A);var b=x.sL?j(x.sL,A,!0,x.continuation.top):k(A);return x.r>0&&(B+=b.r),"continuous"==x.subLanguageMode&&(x.continuation.top=b.top),n(b.language,b.value,!1,!0)}function q(){return void 0!==x.sL?p():o()}function u(b,c){var d=b.cN?n(b.cN,"",!0):"";b.rB?(y+=d,A=""):b.eB?(y+=a(c)+d,A=""):(y+=d,A=c),x=Object.create(b,{parent:{value:x}})}function v(b,c){if(A+=b,void 0===c)return y+=q(),0;var d=g(c,x);if(d)return y+=q(),u(d,c),d.rB?0:c.length;var e=h(x,c);if(e){var f=x;f.rE||f.eE||(A+=c),y+=q();do x.cN&&(y+=""),B+=x.r,x=x.parent;while(x!=e.parent);return f.eE&&(y+=a(c)),A="",e.starts&&u(e.starts,""),f.rE?0:c.length}if(l(c,x))throw new Error('Illegal lexeme "'+c+'" for mode "'+(x.cN||"")+'"');return A+=c,c.length||1}var w=r(b);if(!w)throw new Error('Unknown language: "'+b+'"');i(w);for(var x=f||w,y="",z=x;z!=w;z=z.parent)z.cN&&(y=n(z.cN,y,!0));var A="",B=0;try{for(var C,D,E=0;;){if(x.t.lastIndex=E,C=x.t.exec(d),!C)break;D=v(d.substr(E,C.index-E),C[0]),E=C.index+D}v(d.substr(E));for(var z=x;z.parent;z=z.parent)z.cN&&(y+="");return{r:B,value:y,language:b,top:x}}catch(F){if(-1!=F.message.indexOf("Illegal"))return{r:0,value:a(d)};throw F}}function k(b,c){c=c||s.languages||Object.keys(t);var d={r:0,value:a(b)},e=d;return c.forEach(function(a){if(r(a)){var c=j(a,b,!1);c.language=a,c.r>e.r&&(e=c),c.r>d.r&&(e=d,d=c)}}),e.language&&(d.second_best=e),d}function l(a){return s.tabReplace&&(a=a.replace(/^((<[^>]+>|\t)+)/gm,function(a,b){return b.replace(/\t/g,s.tabReplace)})),s.useBR&&(a=a.replace(/\n/g,"
    ")),a}function m(a){var b=d(a),c=e(a);if("no-highlight"!=c){var f=c?j(c,b,!0):k(b),i=g(a);if(i.length){var m=document.createElementNS("http://www.w3.org/1999/xhtml","pre");m.innerHTML=f.value,f.value=h(i,g(m),b)}f.value=l(f.value),a.innerHTML=f.value,a.className+=" hljs "+(!c&&f.language||""),a.result={language:f.language,re:f.r},f.second_best&&(a.second_best={language:f.second_best.language,re:f.second_best.r})}}function n(a){s=f(s,a)}function o(){if(!o.called){o.called=!0;var a=document.querySelectorAll("pre code");Array.prototype.forEach.call(a,m)}}function p(){addEventListener("DOMContentLoaded",o,!1),addEventListener("load",o,!1)}function q(a,b){var c=t[a]=b(this);c.aliases&&c.aliases.forEach(function(b){u[b]=a})}function r(a){return t[a]||t[u[a]]}var s={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},t={},u={};this.highlight=j,this.highlightAuto=k,this.fixMarkup=l,this.highlightBlock=m,this.configure=n,this.initHighlighting=o,this.initHighlightingOnLoad=p,this.registerLanguage=q,this.getLanguage=r,this.inherit=f,this.IR="[a-zA-Z][a-zA-Z0-9_]*",this.UIR="[a-zA-Z_][a-zA-Z0-9_]*",this.NR="\\b\\d+(\\.\\d+)?",this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",this.BNR="\\b(0b[01]+)",this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",this.BE={b:"\\\\[\\s\\S]",r:0},this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]},this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]},this.CLCM={cN:"comment",b:"//",e:"$"},this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"},this.HCM={cN:"comment",b:"#",e:"$"},this.NM={cN:"number",b:this.NR,r:0},this.CNM={cN:"number",b:this.CNR,r:0},this.BNM={cN:"number",b:this.BNR,r:0},this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]},this.TM={cN:"title",b:this.IR,r:0},this.UTM={cN:"title",b:this.UIR,r:0}};hljs.registerLanguage("bash",function(a){var b={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]},c={cN:"string",b:/"/,e:/"/,c:[a.BE,b,{cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]}]},d={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[a.inherit(a.TM,{b:/\w[\w\d_]*/})],r:0},a.HCM,a.NM,c,d,b]}}),hljs.registerLanguage("cs",function(a){var b="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:b,c:[{cN:"comment",b:"///",e:"$",rB:!0,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM,{bK:"protected public private internal",e:/[{;=]/,k:b,c:[{bK:"class namespace interface",starts:{c:[a.TM]}},{b:a.IR+"\\s*\\(",rB:!0,c:[a.TM]}]}]}}),hljs.registerLanguage("ruby",function(a){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",c="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",d={cN:"yardoctag",b:"@[A-Za-z]+"},e={cN:"comment",v:[{b:"#",e:"$",c:[d]},{b:"^\\=begin",e:"^\\=end",c:[d],r:10},{b:"^__END__",e:"\\n$"}]},f={cN:"subst",b:"#\\{",e:"}",k:c},g={cN:"string",c:[a.BE,f],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},h={cN:"params",b:"\\(",e:"\\)",k:c},i=[g,e,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[a.inherit(a.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+a.IR+"::)?"+a.IR}]},e]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[a.inherit(a.TM,{b:b}),h,e]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[g,{b:b}],r:0},{cN:"symbol",b:a.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+a.RSR+")\\s*",c:[e,{cN:"regexp",c:[a.BE,f],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];return f.c=i,h.c=i,{k:c,c:i}}),hljs.registerLanguage("diff",function(){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}),hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}}),hljs.registerLanguage("xml",function(){var a="[A-Za-z0-9\\._:-]+",b={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"},c={eW:!0,i:/]+/}]}]}]};return{aliases:["html"],cI:!0,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[c],starts:{e:"",rE:!0,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[c],starts:{e:"",rE:!0,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},b,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:"[^ /><]+",r:0},c]}]}}),hljs.registerLanguage("markdown",function(){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:!0,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:"^\\[.+\\]:",e:"$",rB:!0,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:!0,eE:!0},{cN:"link_url",b:"\\s",e:"$"}]}]}}),hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*",c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:!0,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{cN:"value",eW:!0,eE:!0,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}),hljs.registerLanguage("http",function(){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:!0}}]}}),hljs.registerLanguage("java",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:b,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{bK:"protected public private",e:/[{;=]/,k:b,c:[{cN:"class",bK:"class interface",eW:!0,i:/[:"<>]/,c:[{bK:"extends implements",r:10},a.UTM]},{b:a.UIR+"\\s*\\(",rB:!0,c:[a.UTM]}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}),hljs.registerLanguage("php",function(a){var b={cN:"variable",b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},c={cN:"preprocessor",b:/<\?(php)?|\?>/},d={cN:"string",c:[a.BE,c],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null})]},e={v:[a.BNM,a.CNM]};return{cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},c]},{cN:"comment",b:"__halt_compiler.+?;",eW:!0,k:"__halt_compiler",l:a.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},c,b,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[a.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",b,a.CBLCLM,d,e]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},a.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[a.UTM]},{bK:"use",e:";",c:[a.UTM]},{b:"=>"},d,e]}}),hljs.registerLanguage("python",function(a){var b={cN:"prompt",b:/^(>>>|\.\.\.) /},c={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[b],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[b],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},a.ASM,a.QSM]},d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]},e={cN:"params",b:/\(/,e:/\)/,c:["self",b,d,c]},f={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[b,d,c,a.HCM,a.inherit(f,{cN:"function",bK:"def",r:10}),a.inherit(f,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}}),hljs.registerLanguage("sql",function(a){return{cI:!0,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:!0,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}),hljs.registerLanguage("ini",function(a){return{cI:!0,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:!0,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}}),hljs.registerLanguage("perl",function(a){var b="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",c={cN:"subst",b:"[$@]\\{",e:"\\}",k:b},d={b:"->{",e:"}"},e={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]},f={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},g=[a.BE,c,e],h=[e,a.HCM,f,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:!0},d,{cN:"string",c:g,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[a.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[a.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+a.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[a.HCM,f,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[a.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];return c.c=h,d.c=h,{k:b,c:h}}),hljs.registerLanguage("objectivec",function(a){var b={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},c=/[a-zA-Z@][a-zA-Z0-9_]*/,d="@interface @class @protocol @implementation"; +return{k:b,l:c,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+d.split(" ").join("|")+")\\b",e:"({|$)",k:d,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}}),hljs.registerLanguage("coffeescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"},c="[A-Za-z$_][0-9A-Za-z$_]*",d=a.inherit(a.TM,{b:c}),e={cN:"subst",b:/#\{/,e:/}/,k:b},f=[a.BNM,a.inherit(a.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[a.BE]},{b:/'/,e:/'/,c:[a.BE]},{b:/"""/,e:/"""/,c:[a.BE,e]},{b:/"/,e:/"/,c:[a.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,a.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+c},{b:"`",e:"`",eB:!0,eE:!0,sL:"javascript"}];return e.c=f,{k:b,c:f.concat([{cN:"comment",b:"###",e:"###"},a.HCM,{cN:"function",b:"("+c+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:!0,c:[d,{cN:"params",b:"\\(",rB:!0,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(f)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[d]},d]},{cN:"attribute",b:c+":",e:":",rB:!0,eE:!0,r:0}])}}),hljs.registerLanguage("nginx",function(a){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+a.UIR}]},c={eW:!0,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[a.HCM,{cN:"string",c:[a.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0},{cN:"regexp",c:[a.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{c:[a.HCM,{b:a.UIR+"\\s",e:";|{",rB:!0,c:[a.inherit(a.UTM,{starts:c})],r:0}],i:"[^\\s\\}]"}}),hljs.registerLanguage("json",function(a){var b={literal:"true false null"},c=[a.QSM,a.CNM],d={cN:"value",e:",",eW:!0,eE:!0,c:c,k:b},e={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:!0,eE:!0,c:[a.BE],i:"\\n",starts:d}],i:"\\S"},f={b:"\\[",e:"\\]",c:[a.inherit(d,{cN:null})],i:"\\S"};return c.splice(c.length,0,e,f),{c:c,k:b,i:"\\S"}}),hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:!0,c:[a.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}}),hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:b,i:"",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}),hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{c:[a.HCM,{b:/^\w+\s*\W*=/,rB:!0,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:!0,starts:{e:/$/,r:0,c:[b]}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}),function(a,b,c){"use strict";var d=a(c),e={},f=b.applicationCache;f&&f.addEventListener("updateready",function(){f.status===f.UPDATEREADY&&(f.swapCache(),location.reload())},!1),e.config={title:"Spring",desc:"A blog engine written by GitHub Issues [Fork me on GitHub](https://github.com/zhaoda/spring)",owner:"zhaoda",creator:"",repo:"spring",pages:[],api:"https://api.github.com",per_page:10},e.data={labels:[],issues:{}},e.fn={},e.fn.request=function(b,c,d){var f=e.config.api+b+"?callback=?";a.getJSON(f,c,function(a){if(!a.meta||!a.data||200!==a.meta.status)try{console.log(a)}catch(b){}d.call(e,a)})},e.fn.getLabels=function(a){e.fn.request("/repos/"+e.config.owner+"/"+e.config.repo+"/labels",{},function(b){e.data.labels=b.data||[],a()})},e.fn.getHash=function(a){return a=a||location.href,a.replace(/^[^#]*#?\/?(.*)\/?$/,"$1")},e.fn.encodeHtml=function(a){return(a+"").replace(/&/g,"&").replace(//g,">").replace(/\x60/g,"`").replace(/\x27/g,"'").replace(/\x22/g,""")},e.fn.getDate=function(a){return(new Date(a)+"").split(" ").slice(1,4).join(" ")},marked.setOptions({highlight:function(a){return hljs.highlightAuto(a).value}}),template.helper("marked",marked),template.helper("encodeURIComponent",encodeURIComponent),template.helper("$",a);var g=function(){return"createTouch"in document?"tap":"click"}();e.config.tapEvent=g,d.on("click","a.preventlink, a.taplink",function(a){a.preventDefault(),a.stopPropagation()}),d.on(g,".taplink",function(b){var c=a(b.currentTarget),d=a(b.target),f=c.attr("data-href")||c.attr("href");d.closest(".stoptaplink").length||c.trigger("spa:navigate",{hash:e.fn.getHash(f)})}),"tap"==g&&(d.on("touchstart","a",function(b){var c=a(b.currentTarget);c.data("taptime",+new Date)}),d.on("click","a",function(b){var c=a(b.currentTarget),d=c.data("taptime");(!d||+new Date-d>500)&&(b.preventDefault(),b.stopPropagation())})),b.spring=a.spring=e,d.on(g,".btn-back",function(){var c=a.spa.getViewData(a.spa.getCurPage()).prevPage;c.hasClass("spa-page-empty")?d.trigger("spa:navigate",{hash:""}):b.history.back()}),a(function(){d.trigger("spa:boot",{callback:function(){d.trigger("side:create"),e.fn.getLabels(function(){d.trigger("menu:render"),d.trigger("side:render")})}})})}(Zepto,window,document),function(a,b){"use strict";{var c=a(document);b.spring}c.on("pull2refresh:init",function(b,c){var d=a(b.target),e=d.children(),f=a(".pulldown",d),g=a(".pullup",d),h=f.height(),i=0,j=0,k=0,l=c.pulldownDefaultContent||"Pull down to refresh",m=c.pulldownReadyContent||"Release to refresh",n=c.pulldownLoadingContent||'',o="default",p=c.pullupDefaultContent||"Pull up to refresh",q=c.pullupLoadingContent||'',r="default";d.on("touchstart",function(a){j=d.prop("scrollTop"),a.touches.length&&(k=a.touches[0].pageY)}),d.on("touchend",function(){if("default"==o&&f.length){var a={};a[common.transformName]="translate3d(0, 0px, 0)",e.css(a)}else"ready"==o&&d.trigger("pull2refresh:pulldown")});var s,t=function(){g.length&&"none"!=g.css("display")&&d.prop("scrollTop")+d.height()>=d.prop("scrollHeight")-200&&d.trigger("pull2refresh:pullup")};d.on("scroll",function(){s&&clearTimeout(s),s=setTimeout(t,100)}),d.on("touchmove",function(a){if(a.touches.length&&!(j>5)&&f.length&&"none"!=f.css("display")&&"loading"!=o){var b=a.touches[0].pageY;if(!(k>b)){a.preventDefault(),i=.4*(b-k),0!==j&&d.prop("scrollTop",0);var c={};c[common.transformName]="translate3d(0, "+i+"px, 0)",e.css(c),i>=h&&"default"==o?(o="ready",f.html(m)):h>i&&"ready"==o&&(o="default",f.html(l))}}}),d.on("pull2refresh:pulldown",function(){if("loading"!=o){var a={};a[common.transformName]="translate3d(0, "+h+"px, 0)",e.css(a),o="loading",f.html(n),c.pulldown&&c.pulldown.call(d)}}),d.on("pull2refresh:pulldownFinish",function(){var a={};a[common.transformName]="translate3d(0, 0px, 0)",e.css(a),o="default",f.html(l),c.pulldownFinish&&c.pulldownFinish.call(d)}),d.on("pull2refresh:pullup",function(){"loading"!=r&&(r="loading",g.html(q),c.pullup&&c.pullup.call(d))}),d.on("pull2refresh:pullupFinish",function(){r="default",g.html(p),c.pullupFinish&&c.pullupFinish.call(d)})})}(Zepto,window,document),function(a,b,c){"use strict";function d(b){var c=!1;return b&&a.each(b,function(a,b){"next"===b[1].rel&&(c=!0)}),c}var e=a(c),f=b.spring,g=' <%$.each(blogs, function(i, blog) {%>
    <%})%>',h=template.compile(g);e.on("issuelist:render",function(b,c){var e=a(b.target),f=c.data,g=!1,i="",j=0;f.meta&&f.data&&(g=d(f.meta.Link),i=h({blogs:f.data}),e.append(i).trigger("pull2refresh:pullupFinish")),g||(a(".pullup",e).hide().remove(),j=a("article",e).length,e.append('
    '+j+(j>1?" blogs":" blog")+"
    "))}),e.on("issuelist:getdata",function(b){var c=a(b.target),d="/repos/"+f.config.owner+"/"+f.config.repo+"/issues",e={per_page:f.config.per_page},g=(a("article",c),c.attr("data-labels")||""),h=c.attr("data-page")||1;f.config.creator&&(e.creator=f.config.creator),g&&(e.labels=g),e.page=h,f.fn.request(d,e,function(b){a.each(b.data,function(a,b){f.data.issues[b.number]=b}),c.trigger("issuelist:render",{data:b}),c.attr("data-page",+h+1)})})}(Zepto,window,document),function(a,b,c){"use strict";var d=a(c),e=(b.spring,'

    <%=$.spring.config.title%>

    <%=#marked($.spring.config.desc)%>