├── .gitignore ├── dist ├── assets │ ├── css │ │ ├── flat-ui.min.css │ │ ├── font-awesome.min.css │ │ ├── main.css │ │ └── vendor │ │ │ └── bootstrap.min.css │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── img │ │ ├── avatar.png │ │ ├── baohanqing.jpg │ │ ├── bc.png │ │ ├── bg.jpg │ │ ├── bg_bw.jpg │ │ ├── chris.jpg │ │ ├── chris.png │ │ ├── favicon.ico │ │ ├── furuoyu.jpg │ │ ├── greg.png │ │ ├── handshake.jpg │ │ ├── intro1.png │ │ ├── intro1_red.png │ │ ├── intro2.png │ │ ├── intro2_silver.png │ │ ├── intro3.png │ │ ├── lijiexin.jpg │ │ ├── logo.png │ │ ├── medias │ │ │ ├── 36kr.jpg │ │ │ ├── 36kr.png │ │ │ ├── cocoachina.png │ │ │ ├── csdn.png │ │ │ ├── g2s.png │ │ │ ├── infoq.png │ │ │ ├── jkxy.png │ │ │ ├── manong.png │ │ │ ├── next.png │ │ │ ├── oschina.png │ │ │ ├── phpz.png │ │ │ ├── pw.png │ │ │ ├── sf.png │ │ │ ├── testerhome.png │ │ │ ├── tuicool.jpg │ │ │ └── xitu.jpg │ │ ├── pubu.png │ │ ├── sam.jpg │ │ ├── sam.png │ │ ├── sponsor │ │ │ ├── 100offer.png │ │ │ ├── apus.png │ │ │ ├── bearychat.png │ │ │ ├── bowen.png │ │ │ ├── catch.png │ │ │ ├── charles.png │ │ │ ├── dash.png │ │ │ ├── elastic.png │ │ │ ├── fir.jpg │ │ │ ├── geekbang.png │ │ │ ├── in66.png │ │ │ ├── liulishuo.png │ │ │ ├── mooc.png │ │ │ ├── pubu.png │ │ │ ├── qingcloud.png │ │ │ ├── qiniu.png │ │ │ ├── sketch.png │ │ │ ├── toutiao.png │ │ │ └── turing.png │ │ ├── tangqiao.png │ │ ├── wangwei.jpg │ │ ├── wangwei.png │ │ ├── wechatLogo.png │ │ ├── wengyang.jpg │ │ └── zhoukaiwen.jpg │ └── js │ │ ├── flat-ui.min.js │ │ ├── main.js │ │ ├── subscribe.js │ │ ├── vendor │ │ ├── html5shiv.js │ │ ├── jquery.min.js │ │ ├── jquery.min.map │ │ ├── respond.min.js │ │ ├── video-js.swf │ │ └── video.js │ │ └── zepto.min.js ├── index-en.html ├── index.html └── ticket.html ├── gulpfile.js ├── jade ├── index-en.jade ├── index.jade └── ticket.jade ├── package.json ├── src └── img │ ├── avatar.png │ ├── bg.jpg │ ├── bg_bw.jpg │ ├── chris.jpg │ ├── chris.png │ ├── favicon.ico │ ├── greg.png │ ├── intro1.png │ ├── intro1_red.png │ ├── intro2.png │ ├── intro2_silver.png │ ├── intro3.png │ ├── lijiexin.jpg │ ├── logo.png │ ├── medias │ ├── 36kr.jpg │ ├── 36kr.png │ ├── cocoachina.png │ ├── csdn.png │ ├── g2s.png │ ├── infoq.jpg │ ├── jkxy.png │ ├── next.png │ ├── phpz.png │ ├── pw.png │ ├── sf.png │ ├── testerhome.png │ └── xitu.jpg │ ├── sam.jpg │ ├── sam.png │ ├── sponsor │ └── sketch.png │ ├── tangqiao.png │ ├── wangwei.jpg │ ├── wangwei.png │ └── wechatLogo.png ├── stylus └── main.styl └── 页面框架.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Thumbs.db 3 | db.json 4 | *.log 5 | node_modules/ 6 | public/ 7 | .deploy*/ -------------------------------------------------------------------------------- /dist/assets/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - https://fontawesome.io - @fontawesome 3 | * License - https://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} -------------------------------------------------------------------------------- /dist/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /dist/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /dist/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /dist/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /dist/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /dist/assets/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/avatar.png -------------------------------------------------------------------------------- /dist/assets/img/baohanqing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/baohanqing.jpg -------------------------------------------------------------------------------- /dist/assets/img/bc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/bc.png -------------------------------------------------------------------------------- /dist/assets/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/bg.jpg -------------------------------------------------------------------------------- /dist/assets/img/bg_bw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/bg_bw.jpg -------------------------------------------------------------------------------- /dist/assets/img/chris.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/chris.jpg -------------------------------------------------------------------------------- /dist/assets/img/chris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/chris.png -------------------------------------------------------------------------------- /dist/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/favicon.ico -------------------------------------------------------------------------------- /dist/assets/img/furuoyu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/furuoyu.jpg -------------------------------------------------------------------------------- /dist/assets/img/greg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/greg.png -------------------------------------------------------------------------------- /dist/assets/img/handshake.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/handshake.jpg -------------------------------------------------------------------------------- /dist/assets/img/intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/intro1.png -------------------------------------------------------------------------------- /dist/assets/img/intro1_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/intro1_red.png -------------------------------------------------------------------------------- /dist/assets/img/intro2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/intro2.png -------------------------------------------------------------------------------- /dist/assets/img/intro2_silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/intro2_silver.png -------------------------------------------------------------------------------- /dist/assets/img/intro3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/intro3.png -------------------------------------------------------------------------------- /dist/assets/img/lijiexin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/lijiexin.jpg -------------------------------------------------------------------------------- /dist/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/logo.png -------------------------------------------------------------------------------- /dist/assets/img/medias/36kr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/36kr.jpg -------------------------------------------------------------------------------- /dist/assets/img/medias/36kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/36kr.png -------------------------------------------------------------------------------- /dist/assets/img/medias/cocoachina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/cocoachina.png -------------------------------------------------------------------------------- /dist/assets/img/medias/csdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/csdn.png -------------------------------------------------------------------------------- /dist/assets/img/medias/g2s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/g2s.png -------------------------------------------------------------------------------- /dist/assets/img/medias/infoq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/infoq.png -------------------------------------------------------------------------------- /dist/assets/img/medias/jkxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/jkxy.png -------------------------------------------------------------------------------- /dist/assets/img/medias/manong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/manong.png -------------------------------------------------------------------------------- /dist/assets/img/medias/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/next.png -------------------------------------------------------------------------------- /dist/assets/img/medias/oschina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/oschina.png -------------------------------------------------------------------------------- /dist/assets/img/medias/phpz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/phpz.png -------------------------------------------------------------------------------- /dist/assets/img/medias/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/pw.png -------------------------------------------------------------------------------- /dist/assets/img/medias/sf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/sf.png -------------------------------------------------------------------------------- /dist/assets/img/medias/testerhome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/testerhome.png -------------------------------------------------------------------------------- /dist/assets/img/medias/tuicool.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/tuicool.jpg -------------------------------------------------------------------------------- /dist/assets/img/medias/xitu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/medias/xitu.jpg -------------------------------------------------------------------------------- /dist/assets/img/pubu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/pubu.png -------------------------------------------------------------------------------- /dist/assets/img/sam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sam.jpg -------------------------------------------------------------------------------- /dist/assets/img/sam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sam.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/100offer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/100offer.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/apus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/apus.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/bearychat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/bearychat.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/bowen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/bowen.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/catch.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/charles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/charles.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/dash.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/elastic.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/fir.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/fir.jpg -------------------------------------------------------------------------------- /dist/assets/img/sponsor/geekbang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/geekbang.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/in66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/in66.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/liulishuo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/liulishuo.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/mooc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/mooc.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/pubu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/pubu.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/qingcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/qingcloud.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/qiniu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/qiniu.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/sketch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/sketch.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/toutiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/toutiao.png -------------------------------------------------------------------------------- /dist/assets/img/sponsor/turing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/sponsor/turing.png -------------------------------------------------------------------------------- /dist/assets/img/tangqiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/tangqiao.png -------------------------------------------------------------------------------- /dist/assets/img/wangwei.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/wangwei.jpg -------------------------------------------------------------------------------- /dist/assets/img/wangwei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/wangwei.png -------------------------------------------------------------------------------- /dist/assets/img/wechatLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/wechatLogo.png -------------------------------------------------------------------------------- /dist/assets/img/wengyang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/wengyang.jpg -------------------------------------------------------------------------------- /dist/assets/img/zhoukaiwen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/dist/assets/img/zhoukaiwen.jpg -------------------------------------------------------------------------------- /dist/assets/js/main.js: -------------------------------------------------------------------------------- 1 | Zepto(function($) { 2 | 3 | $.get('https://ticket.atswift2016.swiftgg.team/number', function(number) { 4 | $('.number').text(number) 5 | }) 6 | function adjustBg() { 7 | 8 | $(".speaker__card img, .speaker__chairman img") 9 | .width(Math.round($(".speaker__card .speaker__content").width() * 0.5)) 10 | .height(Math.round($(".speaker__card .speaker__content").width() * 0.5)) 11 | .css({ 12 | borderRadius: Math.round($(".speaker__content").width() * 0.25) 13 | }) 14 | $(".info").height($(window).height()) 15 | var height = $(window).height() 16 | var width = $(window).width() 17 | if (width / height >= 1.95) { 18 | $(".info").css("background-size", (width) + "px " + (width / 1.95) + "px") 19 | } else { 20 | $(".info").css("background-size", (height * 1.95) + "px " + (height) + "px") 21 | } 22 | if (screen.width > 320) { 23 | var max = 0 24 | $(".speaker__content").map(function() { 25 | if ($(this).height() > max) { 26 | max = $(this).height() 27 | } 28 | }) 29 | $(".speaker__content").height(max) 30 | } 31 | } 32 | $(window).resize(adjustBg) 33 | adjustBg() 34 | $(".sm_nav").click(function() { 35 | if ($(".sm_btns").css('display') !== 'none') { 36 | $(".sm_btns").slideDown(500) 37 | } 38 | else { 39 | $(".sm_btns").slideUp(500) 40 | } 41 | }) 42 | $(".sm_btns a").click(function() { 43 | $(".sm_nav").click() 44 | }) 45 | 46 | var map = new AMap.Map('map__container',{ 47 | zoom: 14, 48 | center: [116.352379, 39.981041] 49 | }); 50 | var marker = new AMap.Marker({ 51 | position: [116.352379, 39.981041], 52 | map:map 53 | }); 54 | AMap.plugin(['AMap.ToolBar','AMap.Scale'],function(){ 55 | var toolBar = new AMap.ToolBar(); 56 | var scale = new AMap.Scale(); 57 | map.addControl(toolBar); 58 | map.addControl(scale); 59 | }) 60 | }); 61 | (function ($) { 62 | $.fn.slideUp = function (duration) { 63 | // get old position to restore it then 64 | var position = this.css('position'); 65 | 66 | // show element if it is hidden (it is needed if display is none) 67 | this.show(); 68 | 69 | 70 | // set initial css for animation 71 | this.css({ 72 | position: position, 73 | visibility: 'visible', 74 | overflow: 'hidden', 75 | height: 0 76 | }); 77 | 78 | // animate to gotten height 79 | this.animate({ 80 | height: "21rem", 81 | bottom: "6rem" 82 | }, duration); 83 | }; 84 | $.fn.slideDown = function (duration) { 85 | // get old position to restore it then 86 | var position = this.css('position'); 87 | 88 | // show element if it is hidden (it is needed if display is none) 89 | this.show(); 90 | 91 | // place it so it displays as usually but hidden 92 | this.css({ 93 | position: 'absolute', 94 | visibility: 'hidden' 95 | }); 96 | 97 | 98 | // set initial css for animation 99 | this.css({ 100 | position: position, 101 | visibility: 'visible', 102 | overflow: 'hidden', 103 | }); 104 | 105 | // animate to gotten height 106 | that = this 107 | this.animate({ 108 | height: 0 109 | }, duration, function() { 110 | that.hide() 111 | }); 112 | }; 113 | })(Zepto); 114 | 115 | ;(function($, undefined){ 116 | var prefix = '', eventPrefix, 117 | vendors = { Webkit: 'webkit', Moz: '', O: 'o' }, 118 | testEl = document.createElement('div'), 119 | supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i, 120 | transform, 121 | transitionProperty, transitionDuration, transitionTiming, transitionDelay, 122 | animationName, animationDuration, animationTiming, animationDelay, 123 | cssReset = {} 124 | 125 | function dasherize(str) { return str.replace(/([a-z])([A-Z])/, '$1-$2').toLowerCase() } 126 | function normalizeEvent(name) { return eventPrefix ? eventPrefix + name : name.toLowerCase() } 127 | 128 | $.each(vendors, function(vendor, event){ 129 | if (testEl.style[vendor + 'TransitionProperty'] !== undefined) { 130 | prefix = '-' + vendor.toLowerCase() + '-' 131 | eventPrefix = event 132 | return false 133 | } 134 | }) 135 | 136 | transform = prefix + 'transform' 137 | cssReset[transitionProperty = prefix + 'transition-property'] = 138 | cssReset[transitionDuration = prefix + 'transition-duration'] = 139 | cssReset[transitionDelay = prefix + 'transition-delay'] = 140 | cssReset[transitionTiming = prefix + 'transition-timing-function'] = 141 | cssReset[animationName = prefix + 'animation-name'] = 142 | cssReset[animationDuration = prefix + 'animation-duration'] = 143 | cssReset[animationDelay = prefix + 'animation-delay'] = 144 | cssReset[animationTiming = prefix + 'animation-timing-function'] = '' 145 | 146 | $.fx = { 147 | off: (eventPrefix === undefined && testEl.style.transitionProperty === undefined), 148 | speeds: { _default: 400, fast: 200, slow: 600 }, 149 | cssPrefix: prefix, 150 | transitionEnd: normalizeEvent('TransitionEnd'), 151 | animationEnd: normalizeEvent('AnimationEnd') 152 | } 153 | 154 | $.fn.animate = function(properties, duration, ease, callback, delay){ 155 | if ($.isFunction(duration)) 156 | callback = duration, ease = undefined, duration = undefined 157 | if ($.isFunction(ease)) 158 | callback = ease, ease = undefined 159 | if ($.isPlainObject(duration)) 160 | ease = duration.easing, callback = duration.complete, delay = duration.delay, duration = duration.duration 161 | if (duration) duration = (typeof duration == 'number' ? duration : 162 | ($.fx.speeds[duration] || $.fx.speeds._default)) / 1000 163 | if (delay) delay = parseFloat(delay) / 1000 164 | return this.anim(properties, duration, ease, callback, delay) 165 | } 166 | 167 | $.fn.anim = function(properties, duration, ease, callback, delay){ 168 | var key, cssValues = {}, cssProperties, transforms = '', 169 | that = this, wrappedCallback, endEvent = $.fx.transitionEnd, 170 | fired = false 171 | 172 | if (duration === undefined) duration = $.fx.speeds._default / 1000 173 | if (delay === undefined) delay = 0 174 | if ($.fx.off) duration = 0 175 | 176 | if (typeof properties == 'string') { 177 | // keyframe animation 178 | cssValues[animationName] = properties 179 | cssValues[animationDuration] = duration + 's' 180 | cssValues[animationDelay] = delay + 's' 181 | cssValues[animationTiming] = (ease || 'linear') 182 | endEvent = $.fx.animationEnd 183 | } else { 184 | cssProperties = [] 185 | // CSS transitions 186 | for (key in properties) 187 | if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') ' 188 | else cssValues[key] = properties[key], cssProperties.push(dasherize(key)) 189 | 190 | if (transforms) cssValues[transform] = transforms, cssProperties.push(transform) 191 | if (duration > 0 && typeof properties === 'object') { 192 | cssValues[transitionProperty] = cssProperties.join(', ') 193 | cssValues[transitionDuration] = duration + 's' 194 | cssValues[transitionDelay] = delay + 's' 195 | cssValues[transitionTiming] = (ease || 'linear') 196 | } 197 | } 198 | 199 | wrappedCallback = function(event){ 200 | if (typeof event !== 'undefined') { 201 | if (event.target !== event.currentTarget) return // makes sure the event didn't bubble from "below" 202 | $(event.target).unbind(endEvent, wrappedCallback) 203 | } else 204 | $(this).unbind(endEvent, wrappedCallback) // triggered by setTimeout 205 | 206 | fired = true 207 | $(this).css(cssReset) 208 | callback && callback.call(this) 209 | } 210 | if (duration > 0){ 211 | this.bind(endEvent, wrappedCallback) 212 | // transitionEnd is not always firing on older Android phones 213 | // so make sure it gets fired 214 | setTimeout(function(){ 215 | if (fired) return 216 | wrappedCallback.call(that) 217 | }, ((duration + delay) * 1000) + 25) 218 | } 219 | 220 | // trigger page reflow so new elements can animate 221 | this.size() && this.get(0).clientLeft 222 | 223 | this.css(cssValues) 224 | 225 | if (duration <= 0) setTimeout(function() { 226 | that.each(function(){ wrappedCallback.call(this) }) 227 | }, 0) 228 | 229 | return this 230 | } 231 | 232 | testEl = null 233 | })(Zepto) -------------------------------------------------------------------------------- /dist/assets/js/subscribe.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | var checker = localStorage.getItem("atswiftsubscribed") 3 | if (checker) { 4 | $('.subscribe').hide() 5 | return 6 | } else { 7 | function checkemail(val) { 8 | if (!val.trim()) { 9 | return false 10 | } 11 | var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i 12 | return re.test(val) 13 | } 14 | $(".subscribe__btn").click(function() { 15 | $("#swiftweekly #content").submit() 16 | }) 17 | $(".emailform").submit(function(e) { 18 | e.preventDefault() 19 | if (!checkemail($(".subscribe__email").val())) { 20 | setTimeout('$(".subscribe__email").focus()', 100) 21 | return 22 | } 23 | $(".subscribe__email").addClass("disabled") 24 | $(".subscribe__btn").addClass("disabled").text("稍等") 25 | $.getJSON("https://ggchecker.githuber.info/atswiftaddemail/" + $(".subscribe__email").val().trim(), function(data) { 26 | if (data["success"] == "success") { 27 | localStorage.setItem("atswiftsubscribed", true) 28 | $(".subscribe__btn").text("成功!") 29 | setTimeout("$('.subscribe').hide()", 1000); 30 | } 31 | }) 32 | }) 33 | } 34 | }) -------------------------------------------------------------------------------- /dist/assets/js/vendor/html5shiv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | ;(function(window, document) { 5 | /*jshint evil:true */ 6 | /** version */ 7 | var version = '3.7.2'; 8 | 9 | /** Preset options */ 10 | var options = window.html5 || {}; 11 | 12 | /** Used to skip problem elements */ 13 | var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i; 14 | 15 | /** Not all elements can be cloned in IE **/ 16 | var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i; 17 | 18 | /** Detect whether the browser supports default html5 styles */ 19 | var supportsHtml5Styles; 20 | 21 | /** Name of the expando, to work with multiple documents or to re-shiv one document */ 22 | var expando = '_html5shiv'; 23 | 24 | /** The id for the the documents expando */ 25 | var expanID = 0; 26 | 27 | /** Cached data for each document */ 28 | var expandoData = {}; 29 | 30 | /** Detect whether the browser supports unknown elements */ 31 | var supportsUnknownElements; 32 | 33 | (function() { 34 | try { 35 | var a = document.createElement('a'); 36 | a.innerHTML = ''; 37 | //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles 38 | supportsHtml5Styles = ('hidden' in a); 39 | 40 | supportsUnknownElements = a.childNodes.length == 1 || (function() { 41 | // assign a false positive if unable to shiv 42 | (document.createElement)('a'); 43 | var frag = document.createDocumentFragment(); 44 | return ( 45 | typeof frag.cloneNode == 'undefined' || 46 | typeof frag.createDocumentFragment == 'undefined' || 47 | typeof frag.createElement == 'undefined' 48 | ); 49 | }()); 50 | } catch(e) { 51 | // assign a false positive if detection fails => unable to shiv 52 | supportsHtml5Styles = true; 53 | supportsUnknownElements = true; 54 | } 55 | 56 | }()); 57 | 58 | /*--------------------------------------------------------------------------*/ 59 | 60 | /** 61 | * Creates a style sheet with the given CSS text and adds it to the document. 62 | * @private 63 | * @param {Document} ownerDocument The document. 64 | * @param {String} cssText The CSS text. 65 | * @returns {StyleSheet} The style element. 66 | */ 67 | function addStyleSheet(ownerDocument, cssText) { 68 | var p = ownerDocument.createElement('p'), 69 | parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement; 70 | 71 | p.innerHTML = 'x'; 72 | return parent.insertBefore(p.lastChild, parent.firstChild); 73 | } 74 | 75 | /** 76 | * Returns the value of `html5.elements` as an array. 77 | * @private 78 | * @returns {Array} An array of shived element node names. 79 | */ 80 | function getElements() { 81 | var elements = html5.elements; 82 | return typeof elements == 'string' ? elements.split(' ') : elements; 83 | } 84 | 85 | /** 86 | * Extends the built-in list of html5 elements 87 | * @memberOf html5 88 | * @param {String|Array} newElements whitespace separated list or array of new element names to shiv 89 | * @param {Document} ownerDocument The context document. 90 | */ 91 | function addElements(newElements, ownerDocument) { 92 | var elements = html5.elements; 93 | if(typeof elements != 'string'){ 94 | elements = elements.join(' '); 95 | } 96 | if(typeof newElements != 'string'){ 97 | newElements = newElements.join(' '); 98 | } 99 | html5.elements = elements +' '+ newElements; 100 | shivDocument(ownerDocument); 101 | } 102 | 103 | /** 104 | * Returns the data associated to the given document 105 | * @private 106 | * @param {Document} ownerDocument The document. 107 | * @returns {Object} An object of data. 108 | */ 109 | function getExpandoData(ownerDocument) { 110 | var data = expandoData[ownerDocument[expando]]; 111 | if (!data) { 112 | data = {}; 113 | expanID++; 114 | ownerDocument[expando] = expanID; 115 | expandoData[expanID] = data; 116 | } 117 | return data; 118 | } 119 | 120 | /** 121 | * returns a shived element for the given nodeName and document 122 | * @memberOf html5 123 | * @param {String} nodeName name of the element 124 | * @param {Document} ownerDocument The context document. 125 | * @returns {Object} The shived element. 126 | */ 127 | function createElement(nodeName, ownerDocument, data){ 128 | if (!ownerDocument) { 129 | ownerDocument = document; 130 | } 131 | if(supportsUnknownElements){ 132 | return ownerDocument.createElement(nodeName); 133 | } 134 | if (!data) { 135 | data = getExpandoData(ownerDocument); 136 | } 137 | var node; 138 | 139 | if (data.cache[nodeName]) { 140 | node = data.cache[nodeName].cloneNode(); 141 | } else if (saveClones.test(nodeName)) { 142 | node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode(); 143 | } else { 144 | node = data.createElem(nodeName); 145 | } 146 | 147 | // Avoid adding some elements to fragments in IE < 9 because 148 | // * Attributes like `name` or `type` cannot be set/changed once an element 149 | // is inserted into a document/fragment 150 | // * Link elements with `src` attributes that are inaccessible, as with 151 | // a 403 response, will cause the tab/window to crash 152 | // * Script elements appended to fragments will execute when their `src` 153 | // or `text` property is set 154 | return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node; 155 | } 156 | 157 | /** 158 | * returns a shived DocumentFragment for the given document 159 | * @memberOf html5 160 | * @param {Document} ownerDocument The context document. 161 | * @returns {Object} The shived DocumentFragment. 162 | */ 163 | function createDocumentFragment(ownerDocument, data){ 164 | if (!ownerDocument) { 165 | ownerDocument = document; 166 | } 167 | if(supportsUnknownElements){ 168 | return ownerDocument.createDocumentFragment(); 169 | } 170 | data = data || getExpandoData(ownerDocument); 171 | var clone = data.frag.cloneNode(), 172 | i = 0, 173 | elems = getElements(), 174 | l = elems.length; 175 | for(;i #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b0?n.fn.concat.apply([],t):t}function F(t){return t.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 q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function B(n,i,r){for(e in i)r&&(M(i[e])||A(i[e]))?(M(i[e])&&!M(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),B(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function U(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className||"",r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){try{return t?"true"==t||("false"==t?!1:"null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?n.parseJSON(t):t):t}catch(e){return t}}function G(t,e){e(t);for(var n=0,i=t.childNodes.length;i>n;n++)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},S=j.toString,T={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return T.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~T.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},T.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),M(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},T.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},T.isZ=function(t){return t instanceof T.Z},T.init=function(e,i){var r;if(!e)return T.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=T.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=T.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(T.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=T.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=T.qsa(a,e)}}return T.Z(r,e)},n=function(t,e){return T.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){B(t,n,e)}),t},T.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return $(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=a.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},n.type=L,n.isFunction=Z,n.isWindow=_,n.isArray=A,n.isPlainObject=M,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(R(t))for(r=0;r=0?e:e+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(t){return r.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return Z(t)?this.not(this.not(t)):n(s.call(this,function(e){return T.matches(e,t)}))},add:function(t,e){return n(N(this.concat(n(t,e))))},is:function(t){return this.length>0&&T.matches(this[0],t)},not:function(e){var i=[];if(Z(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):R(e)&&Z(e.item)?o.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return D(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!D(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!D(t)?t:n(t)},find:function(t){var e,i=this;return e=t?"object"==typeof t?n(t).filter(function(){var t=this;return r.some.call(i,function(e){return n.contains(e,t)})}):1==this.length?n(T.qsa(this[0],t)):this.map(function(){return T.qsa(this,t)}):n()},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:T.matches(i,t));)i=i!==e&&!$(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){return(t=t.parentNode)&&!$(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return U(e,t)},parent:function(t){return U(N(this.pluck("parentNode")),t)},children:function(t){return U(this.map(function(){return V(this)}),t)},contents:function(){return this.map(function(){return o.call(this.childNodes)})},siblings:function(t){return U(this.map(function(t,e){return s.call(V(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=I(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=Z(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){n(this[0]).before(t=n(t));for(var e;(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=Z(t);return this.each(function(i){var r=n(this),o=r.contents(),s=e?t.call(this,i):t;o.length?o.wrapAll(s):r.append(s)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var i=this.innerHTML;n(this).empty().append(J(this,t,e,i))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=J(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this[0].textContent:null},attr:function(n,i){var r;return"string"!=typeof n||1 in arguments?this.each(function(t){if(1===this.nodeType)if(D(n))for(e in n)X(this,e,n[e]);else X(this,n,J(this,i,t,this.getAttribute(n)))}):this.length&&1===this[0].nodeType?!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:t},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){X(this,t)},this)})},prop:function(t,e){return t=P[t]||t,1 in arguments?this.each(function(n){this[t]=J(this,e,n,this[t])}):this[0]&&this[0][t]},data:function(e,n){var i="data-"+e.replace(m,"-$1").toLowerCase(),r=1 in arguments?this.attr(i,n):this.attr(i);return null!==r?Y(r):t},val:function(t){return 0 in arguments?this.each(function(e){this.value=J(this,t,e,this.value)}):this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=J(this,t,e,i.offset()),o=i.offsetParent().offset(),s={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(s.position="relative"),i.css(s)});if(!this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var r,o=this[0];if(!o)return;if(r=getComputedStyle(o,""),"string"==typeof t)return o.style[C(t)]||r.getPropertyValue(t);if(A(t)){var s={};return n.each(t,function(t,e){s[e]=o.style[C(e)]||r.getPropertyValue(e)}),s}}var a="";if("string"==L(t))i||0===i?a=F(t)+":"+H(t,i):this.each(function(){this.style.removeProperty(F(t))});else for(e in t)t[e]||0===t[e]?a+=F(e)+":"+H(e,t[e])+";":this.each(function(){this.style.removeProperty(F(e))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?r.some.call(this,function(t){return this.test(W(t))},q(t)):!1},addClass:function(t){return t?this.each(function(e){if("className"in this){i=[];var r=W(this),o=J(this,t,e,r);o.split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}}):this},removeClass:function(e){return this.each(function(n){if("className"in this){if(e===t)return W(this,"");i=W(this),J(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),W(this,i.trim())}})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this),s=J(this,e,r,W(this));s.split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=d.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||a.body;t&&!d.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,s=this[0];return r===t?_(s)?s["inner"+i]:$(s)?s.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){s=n(this),s.css(e,J(this,r,t,s[e]()))})}}),v.forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,o,r=n.map(arguments,function(e){return t=L(e),"object"==t||"array"==t||null==e?e:T.fragment(e)}),s=this.length>1;return r.length<1?this:this.each(function(t,u){o=i?u:u.parentNode,u=0==e?u.nextSibling:1==e?u.firstChild:2==e?u:null;var f=n.contains(a.documentElement,o);r.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!o)return n(t).remove();o.insertBefore(t,u),f&&G(t,function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},n.fn[i?t+"To":"insert"+(e?"Before":"After")]=function(e){return n(e)[t](this),this}}),T.Z.prototype=n.fn,T.uniq=N,T.deserializeValue=Y,n.zepto=T,n}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function l(t){return t._zid||(t._zid=e++)}function h(t,e,n,i){if(e=p(e),e.ns)var r=d(e.ns);return(s[l(t)]||[]).filter(function(t){return!(!t||e.e&&t.e!=e.e||e.ns&&!r.test(t.ns)||n&&l(t.fn)!==l(n)||i&&t.sel!=i)})}function p(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function d(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!u&&t.e in f||!!e}function g(t){return c[t]||u&&f[t]||t}function v(e,i,r,o,a,u,f){var h=l(e),d=s[h]||(s[h]=[]);i.split(/\s/).forEach(function(i){if("ready"==i)return t(document).ready(r);var s=p(i);s.fn=r,s.sel=a,s.e in c&&(r=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?s.fn.apply(this,arguments):void 0}),s.del=u;var l=u||r;s.proxy=function(t){if(t=j(t),!t.isImmediatePropagationStopped()){t.data=o;var i=l.apply(e,t._args==n?[t]:[t].concat(t._args));return i===!1&&(t.preventDefault(),t.stopPropagation()),i}},s.i=d.length,d.push(s),"addEventListener"in e&&e.addEventListener(g(s.e),s.proxy,m(s,f))})}function y(t,e,n,i,r){var o=l(t);(e||"").split(/\s/).forEach(function(e){h(t,e,n,i).forEach(function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,m(e,r))})})}function j(e,i){return(i||!e.isDefaultPrevented)&&(i||(i=e),t.each(E,function(t,n){var r=i[t];e[t]=function(){return this[n]=x,r&&r.apply(i,arguments)},e[n]=b}),(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?i.returnValue===!1:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function S(t){var e,i={originalEvent:t};for(e in t)w.test(e)||t[e]===n||(i[e]=t[e]);return j(i,t)}var n,e=1,i=Array.prototype.slice,r=t.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in window,f={focus:"focusin",blur:"focusout"},c={mouseenter:"mouseover",mouseleave:"mouseout"};a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:v,remove:y},t.proxy=function(e,n){var s=2 in arguments&&i.call(arguments,2);if(r(e)){var a=function(){return e.apply(n,s?s.concat(i.call(arguments)):arguments)};return a._zid=l(e),a}if(o(n))return s?(s.unshift(e[n],e),t.proxy.apply(null,s)):t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var x=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,E={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,s,a,u,f){var c,l,h=this;return e&&!o(e)?(t.each(e,function(t,e){h.on(t,s,a,e,f)}),h):(o(s)||r(u)||u===!1||(u=a,a=s,s=n),(r(a)||a===!1)&&(u=a,a=n),u===!1&&(u=b),h.each(function(n,r){f&&(c=function(t){return y(r,t.type,u),u.apply(this,arguments)}),s&&(l=function(e){var n,o=t(e.target).closest(s,r).get(0);return o&&o!==r?(n=t.extend(S(e),{currentTarget:o,liveFired:r}),(c||u).apply(o,[n].concat(i.call(arguments,1)))):void 0}),v(r,e,u,a,s,l||c)}))},t.fn.off=function(e,i,s){var a=this;return e&&!o(e)?(t.each(e,function(t,e){a.off(t,i,e)}),a):(o(i)||r(s)||s===!1||(s=i,i=n),s===!1&&(s=b),a.each(function(){y(this,e,s,i)}))},t.fn.trigger=function(e,n){return e=o(e)||t.isPlainObject(e)?t.Event(e):j(e),e._args=n,this.each(function(){e.type in f&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,n){var i,r;return this.each(function(s,a){i=S(o(e)?t.Event(e):e),i._args=n,i.target=a,t.each(h(a,e.type||e),function(t,e){return r=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),r},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){o(t)||(e=t,t=e.type);var n=document.createEvent(a[t]||"Events"),i=!0;if(e)for(var r in e)"bubbles"==r?i=!!e[r]:n[r]=e[r];return n.initEvent(t,i,!0),j(n)}}(Zepto),function(t){function h(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}function p(t,e,i,r){return t.global?h(e||n,i,r):void 0}function d(e){e.global&&0===t.active++&&p(e,null,"ajaxStart")}function m(e){e.global&&!--t.active&&p(e,null,"ajaxStop")}function g(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||p(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void p(e,n,"ajaxSend",[t,e])}function v(t,e,n,i){var r=n.context,o="success";n.success.call(r,t,o,e),i&&i.resolveWith(r,[t,o,e]),p(n,r,"ajaxSuccess",[e,n,t]),x(o,e,n)}function y(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),p(i,o,"ajaxError",[n,i,t||e]),x(e,n,i)}function x(t,e,n){var i=n.context;n.complete.call(i,e,t),p(n,i,"ajaxComplete",[e,n]),m(n)}function b(){}function w(t){return t&&(t=t.split(";",2)[0]),t&&(t==f?"html":t==u?"json":s.test(t)?"script":a.test(t)&&"xml")||"text"}function E(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function j(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=E(e.url,e.data),e.data=void 0)}function S(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}function C(e,n,i,r){var o,s=t.isArray(n),a=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),r&&(n=i?r:r+"["+(a||"object"==o||"array"==o?n:"")+"]"),!r&&s?e.add(u.name,u.value):"array"==o||!i&&"object"==o?C(e,u,i,n):e.add(n,u)})}var i,r,e=0,n=window.document,o=/)<[^<]*)*<\/script>/gi,s=/^(?:text|application)\/javascript/i,a=/^(?:text|application)\/xml/i,u="application/json",f="text/html",c=/^\s*$/,l=n.createElement("a");l.href=window.location.href,t.active=0,t.ajaxJSONP=function(i,r){if(!("type"in i))return t.ajax(i);var f,h,o=i.jsonpCallback,s=(t.isFunction(o)?o():o)||"jsonp"+ ++e,a=n.createElement("script"),u=window[s],c=function(e){t(a).triggerHandler("error",e||"abort")},l={abort:c};return r&&r.promise(l),t(a).on("load error",function(e,n){clearTimeout(h),t(a).off().remove(),"error"!=e.type&&f?v(f[0],l,i,r):y(null,n||"error",l,i,r),window[s]=u,f&&t.isFunction(u)&&u(f[0]),u=f=void 0}),g(l,i)===!1?(c("abort"),l):(window[s]=function(){f=arguments},a.src=i.url.replace(/\?(.+)=\?/,"?$1="+s),n.head.appendChild(a),i.timeout>0&&(h=setTimeout(function(){c("timeout")},i.timeout)),l)},t.ajaxSettings={type:"GET",beforeSend:b,success:b,error:b,complete:b,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:u,xml:"application/xml, text/xml",html:f,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var a,o=t.extend({},e||{}),s=t.Deferred&&t.Deferred();for(i in t.ajaxSettings)void 0===o[i]&&(o[i]=t.ajaxSettings[i]);d(o),o.crossDomain||(a=n.createElement("a"),a.href=o.url,a.href=a.href,o.crossDomain=l.protocol+"//"+l.host!=a.protocol+"//"+a.host),o.url||(o.url=window.location.toString()),j(o);var u=o.dataType,f=/\?.+=\?/.test(o.url);if(f&&(u="jsonp"),o.cache!==!1&&(e&&e.cache===!0||"script"!=u&&"jsonp"!=u)||(o.url=E(o.url,"_="+Date.now())),"jsonp"==u)return f||(o.url=E(o.url,o.jsonp?o.jsonp+"=?":o.jsonp===!1?"":"callback=?")),t.ajaxJSONP(o,s);var C,h=o.accepts[u],p={},m=function(t,e){p[t.toLowerCase()]=[t,e]},x=/^([\w-]+:)\/\//.test(o.url)?RegExp.$1:window.location.protocol,S=o.xhr(),T=S.setRequestHeader;if(s&&s.promise(S),o.crossDomain||m("X-Requested-With","XMLHttpRequest"),m("Accept",h||"*/*"),(h=o.mimeType||h)&&(h.indexOf(",")>-1&&(h=h.split(",",2)[0]),S.overrideMimeType&&S.overrideMimeType(h)),(o.contentType||o.contentType!==!1&&o.data&&"GET"!=o.type.toUpperCase())&&m("Content-Type",o.contentType||"application/x-www-form-urlencoded"),o.headers)for(r in o.headers)m(r,o.headers[r]);if(S.setRequestHeader=m,S.onreadystatechange=function(){if(4==S.readyState){S.onreadystatechange=b,clearTimeout(C);var e,n=!1;if(S.status>=200&&S.status<300||304==S.status||0==S.status&&"file:"==x){u=u||w(o.mimeType||S.getResponseHeader("content-type")),e=S.responseText;try{"script"==u?(1,eval)(e):"xml"==u?e=S.responseXML:"json"==u&&(e=c.test(e)?null:t.parseJSON(e))}catch(i){n=i}n?y(n,"parsererror",S,o,s):v(e,S,o,s)}else y(S.statusText||null,S.status?"error":"abort",S,o,s)}},g(S,o)===!1)return S.abort(),y(null,"abort",S,o,s),S;if(o.xhrFields)for(r in o.xhrFields)S[r]=o.xhrFields[r];var N="async"in o?o.async:!0;S.open(o.type,o.url,N,o.username,o.password);for(r in p)T.apply(S,p[r]);return o.timeout>0&&(C=setTimeout(function(){S.onreadystatechange=b,S.abort(),y(null,"timeout",S,o,s)},o.timeout)),S.send(o.data?o.data:null),S},t.get=function(){return t.ajax(S.apply(null,arguments))},t.post=function(){var e=S.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=S.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var a,r=this,s=e.split(/\s/),u=S(e,n,i),f=u.success;return s.length>1&&(u.url=s[0],a=s[1]),u.success=function(e){r.html(a?t("
").html(e.replace(o,"")).find(a):e),f&&f.apply(r,arguments)},t.ajax(u),this};var T=encodeURIComponent;t.param=function(e,n){var i=[];return i.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(T(e)+"="+T(n))},C(i,e,n),i.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var e,n,i=[],r=function(t){return t.forEach?t.forEach(r):void i.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(i,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&r(t(o).val())}),i},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;window.getComputedStyle=function(t){try{return n(t)}catch(e){return null}}}}(Zepto); -------------------------------------------------------------------------------- /dist/index-en.html: -------------------------------------------------------------------------------- 1 | @Swift | First Swift Developer Conference in China

The First Swift Developer Conference in China

10th Jan 2016·Beijing Conference Center·New Main Building in BUAA

ABOUT THE CONFERENCE

Non Profit

@Swift is a non profit conference organized by @Conf team. All incomes will be used for the conference itself, including space expenses, travel fee for speakers and participants' benefits.

DEV to DEV

@Swift is a tech feast made by developers for developers. We are developers just like you, what you are looking for is also our main goal.

High Quality

All of our speakers and subjects are strictly chosen in order to make sure you get the best experience.

CHAIRMAN

QIAO TANG

A blogger, InfoQ editor and senior iOS developer. He had worked in netease and developped netease email, netease microblog and youdao note. Now he works in a startup company named yuantiku.com and he is the product owner of xiaoyuansouti app.

He likes writing and sharing, he published a book named <Pro iOS>, he hosts his technique blog for more than 3 years. He also creates a wechat public accout named iOSDevTips.

SPEAKERS

Hank Bao

Head of client products developent for pubu.im. Former iOS Leader of PPTV Qudian, created PPTV for Mac as the sole developer. You can reach him on GitHub and Twitter as @hankbao.

CHRIS EIDHOF

Chris is a Dutch software developer living in Berlin (Germany). He spends most of his time building iOS and Mac apps, such as Deckset and Scenery. He started UIKonf, objc.io, wrote a book about Functional Programming in Swift and is currently writing a book on Advanced Swift.

RUOYU FU

A Mobile Developer works at ThoughtWorks. He is also known as the author of SwiftyJSON. Beside programming, he is a well known drunk among he’s friends and is said to never wake up before 2:00 PM on a Saturday morning.

Greg Heo

Greg is a freelance iOS developer from Toronto, Canada. Aside from client and personal projects, he writes blog posts, films video tutorials for raywenderlich.com, and enjoys being a guest on tech-related podcasts.

JIEXIN LI

Former iOS developer at News Application of NetEase. He was the founder of the very first Swift online community in China - swiftist.org. Starting to use Swift in productive environment in October 2014, he developed the English learning application Listen+.

WEI WANG

@onevcat, also know as '喵神(Cat God)', is an iOS and Unity3D developer. Wang lives in Japan and work for Line now. He is the author of Swifter - 100 Swift necessary tips.

MAKEE

Senior iOS Develop Engineer, former leading developer and architeture of CTrip Skysea Cruise, rich experiece of front and backend developing. Also wel-know as Brewmaster, used to drinking while coding.

Kevin Zhou

Founder of Catch, Author of “Producter”,Traveling, Coding, Designing.

AGENDA

*tentative, updating

  • Sign
  • Open

    Jie Liang

  • Programming with Structs

    Chris Eidhof

  • Across the gap between OC and Swift

    Ruoyu Fu

  • Swift Style

    Greg Heo

  • Lunch
  • Protocol-Oriented Programming in Swift

    Jason Li

  • How to Make a Pleasant Framework

    Wei Wang

  • Swift Functional Programming Practice

    Hank Bao

  • Break
  • Swift, Improve the Design of Existing Code

    MAKEE

  • Faster App,Use Swift Write a Smooth App

    Kevin Zhou

  • End

PARTNERS

CONFERENCE VENUE

Conference Center·New Main Building in BUAA

-------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | @Swift | 中国首届 Swift 开发者大会

中国首届Swift开发者大会

2016年1月10日·北京 北航新主楼·会议中心

大会介绍

非营利

@Swift 是由 @Conf 团队组织的一场非营利的技术大会,所有收入全部用于大会本身支出,包括会场租赁、嘉宾差旅、参会者福利等等。

开发者 to 开发者

@Swift 是一场由开发者做给开发者的技术盛宴,我们和你一样是开发者,你喜欢的你想要的也同样是我们所追求的。

高质量

所有的演讲嘉宾和演讲内容都会经过严格筛选,保证大家听到的是纯技术干货。

大会主席

唐巧

唐巧,Blogger,InfoQ 编辑,资深 iOS 开发者。曾在网易参与过网易邮箱、网易微博以及有道云笔记的开发。目前在猿题库创业,是小猿搜题的产品技术负责人。

他喜欢写作与分享,独立撰写了《iOS开发进阶》,长期维护着自己的 技术博客 和微信公共帐号 iOSDevTips。

演讲嘉宾

包涵卿

瀑布 IM 客户端技术负责人。前 PPTV 趣点项目 iOS 负责人,曾经独自开发 PPTV Mac 版。在 GitHub 和 Twitter 上的 ID 是 @hankbao.

CHRIS EIDHOF

Chris, 生活在德国柏林的荷兰开发者。他把大部分时间都花在开发 iOS 和 Mac 应用上,作品包括 DecksetScenery. Chris 还创办了 UIKonfobjc.io. 此外,他还是一位作者,著有 Functional Programming in Swift, 目前正在编写 Advanced Swift.

傅若愚

移动开发者,ThoughtWorks 高级咨询师/Tech Lead,SwiftyJSON 作者。业余喜读书,文史哲无所禁忌,爱美食与啤酒,凡酒约,从不拒绝,爱睡懒觉,周末从不在下午 2 点前起床。总之,是个充满缺点与怪癖的家伙。

Greg Heo

Greg 是加拿大多伦多的一位 iOS 自由职业者。除了做项目他还在为 raywenderlich.com 撰写博客并录制视频教程,此外他还是科技类 podcast 的常客。

李洁信

前网易新闻客户端 iOS 开发,创办了国内最早的 Swift 社区 swiftist.org, 2014 年 10 月开始在生产环境使用 Swift, 开发了英语学习 App Listen+.

王巍

@onevcat, 江湖人称“喵神”。iOS 和 Unity3D 开发者,旅居日本,目前供职于 LINE. 著有《Swifter - 100 个 Swift 必备 tips》。

翁阳

沪江 iOS 资深工程师,前携程天海邮轮 APP 主力开发和架构,拥有丰富的前后端开发经验。爱咖啡,爱喝酒,人送外号“酒仙”,常独自边喝酒边 Coding 的怪人。

周楷雯

Catch 创始人,著有 《Producter》,喜欢一边旅行,一边做点东西。

大会议程

*暂定,后续会不断更新

  • 签到
  • 开场

    梁杰

  • Programming with Structs

    Chris Eidhof

  • 越过 OC 与 Swift 间的鸿沟

    傅若愚

  • Swift Style

    Greg Heo

  • 午餐
  • Swift 中的面向协议编程

    李洁信

  • 如何打造一个让人愉快的框架

    王巍

  • Swift 函数式编程实践

    包涵卿

  • 茶歇
  • Swift,改善既有代码的设计

    翁阳

  • Faster App,用 Swift 打造一款流畅的 App

    周楷雯

  • 结束

合作伙伴

会场位置

北航新主楼·会议中心

-------------------------------------------------------------------------------- /dist/ticket.html: -------------------------------------------------------------------------------- 1 | 欢迎购票

参会门票

请于签到时出示此二维码

-------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var stylus = require('gulp-stylus'); 3 | var jade = require('gulp-jade'); 4 | var jeet = require('jeet'); 5 | var rupture = require('rupture'); 6 | var imagemin = require('gulp-imagemin'); 7 | var imageminJpegRecompress = require('imagemin-jpeg-recompress'); 8 | 9 | 10 | var paths = { 11 | stylus: ['./stylus/**/*.styl'], 12 | jade: ['./jade/**/*.jade'], 13 | img: ['./src/img/**/*.*'], 14 | }; 15 | 16 | gulp.task('images-opt', function () { 17 | gulp.src(paths.img) 18 | .pipe(imagemin({ 19 | use: [imageminJpegRecompress({loops: 4, quality: "low"})] 20 | })) 21 | .pipe(gulp.dest('./dist/assets/img/')); 22 | }); 23 | 24 | 25 | gulp.task('stylus', function (done) { 26 | gulp.src(paths.stylus) 27 | .pipe(stylus({use: [jeet(), rupture()]})) 28 | .pipe(gulp.dest('./dist/assets/css/')) 29 | .on('end', done); 30 | }); 31 | 32 | gulp.task('jade', function (done) { 33 | gulp.src(paths.jade) 34 | .pipe(jade()) 35 | .pipe(gulp.dest('./dist/')) 36 | .on('end', done); 37 | }); 38 | 39 | gulp.task('watch', function() { 40 | gulp.watch(paths.stylus, ['stylus']); 41 | gulp.watch(paths.jade, ['jade']); 42 | }); 43 | 44 | gulp.task('default', ['stylus', 'jade']); 45 | -------------------------------------------------------------------------------- /jade/index-en.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | 3 | html(lang="zh-CN") 4 | 5 | head 6 | meta(charset="UTF-8")/ 7 | meta(name="viewport" content="width=device-width, initial-scale=1")/ 8 | meta(http-equiv="Cache-Control" content="no-transform")/ 9 | title @Swift | First Swift Developer Conference in China 10 | link(rel="shortcut icon" type="image/x-icon" href="./assets/img/favicon.ico") 11 | link(rel="apple-touch-icon image_sr" type="image/x-icon" href="./assets/img/favicon.ico") 12 | link(rel="stylesheet" type="text/css" href="./assets/css/vendor/bootstrap.min.css")/ 13 | link(rel="stylesheet" type="text/css" href="./assets/css/font-awesome.min.css") 14 | link(rel="stylesheet" type="text/css" href="./assets/css/main.css") 15 | script(type="text/javascript" src="./assets/js/zepto.min.js") 16 | script(type="text/javascript" src="./assets/js/main.js") 17 | script(type="text/javascript" src="./assets/js/subscribe.js") 18 | body 19 | img(src="./assets/img/wechatLogo.png" style="position: fixed; top: -9999px;") 20 | section.info 21 | div.info__content.en 22 | img(src="./assets/img/logo.png").info__logo 23 | p.info__subtitle The First Swift Developer Conference in China 24 | p.info__date 10th Jan 2016·Beijing Conference Center·New Main Building in BUAA 25 | div.info__btn 26 | a(href="https://github.com/atConf" target="_blank") Informations 27 | header.header 28 | div.sm_nav 29 | div.header__btn 30 | a 31 | i.fa.fa-bars 32 | ul.sm_btns 33 | li 34 | a(href="#intro") ABOUT 35 | li 36 | a(href="#speaker") SPEAKERS 37 | li 38 | a(href="#agenda") AGENDA 39 | li 40 | a(href="#sponsor") SPONSORS 41 | li 42 | a(href="#medias") PARTNERS 43 | div.header__nav 44 | div.header__btn 45 | a(href="#intro") ABOUT 46 | div.header__btn 47 | a(href="#speaker") SPEAKERS 48 | div.header__btn 49 | a(href="#agenda") AGENDA 50 | div.header__btn 51 | a(href="#sponsor") SPONSORS 52 | div.header__btn 53 | a(href="#medias") PARTNERS 54 | //- div.header__btn.highlight 55 | //- a 购票 56 | div.header__social 57 | div.header__social__btn 58 | a(href="./index.html") CN 59 | div.header__social__btn 60 | a(href="https://swiftchina.bearychat.com/" target="_blank") 61 | img(src="./assets/img/bc.png") 62 | div.header__social__btn 63 | a(href="https://swift.pubu.im/reg/91gwgg7zwmbwix" target="_blank") 64 | img(src="./assets/img/pubu.png") 65 | div.header__social__btn 66 | a(href="https://weibo.com/atswift" target="_blank") 67 | i.fa.fa-weibo 68 | div.header__social__btn 69 | a(href="https://github.com/atConf/atswift" target="_blank") 70 | i.fa.fa-github 71 | div.header__social__btn 72 | a(href="https://twitter.com/atSwiftConf" target="_blank") 73 | i.fa.fa-twitter 74 | section.intro(id="intro") 75 | div.intro__content 76 | h1 ABOUT THE CONFERENCE 77 | div.intro__card 78 | img(src="./assets/img/intro1_red.png") 79 | h3.intro__reason Non Profit 80 | p.intro__detail @Swift is a non profit conference organized by @Conf team. All incomes will be used for the conference itself, including space expenses, travel fee for speakers and participants' benefits. 81 | div.intro__card 82 | img(src="./assets/img/intro2.png") 83 | h3.intro__reason DEV to DEV 84 | p.intro__detail @Swift is a tech feast made by developers for developers. We are developers just like you, what you are looking for is also our main goal. 85 | div.intro__card 86 | img(src="./assets/img/intro3.png") 87 | h3.intro__reason High Quality 88 | p.intro__detail All of our speakers and subjects are strictly chosen in order to make sure you get the best experience. 89 | section.speaker(id="speaker") 90 | h1 CHAIRMAN 91 | div.speaker__chairman 92 | div.speaker__content 93 | h4.name QIAO TANG 94 | a(href="https://devtang.com" target="_blank") 95 | img(src="./assets/img/tangqiao.png") 96 | p.detail A blogger, InfoQ editor and senior iOS developer. He had worked in netease and developped netease email, netease microblog and youdao note. Now he works in a startup company named yuantiku.com and he is the product owner of xiaoyuansouti app. 97 | p.detail He likes writing and sharing, he published a book named <Pro iOS>, he hosts his #[a(href="https://blog.devtang.com" target="_blank") technique blog] for more than 3 years. He also creates a wechat public accout named iOSDevTips. 98 | h1 SPEAKERS 99 | div.speaker__card.r.b 100 | div.speaker__content 101 | h4.name Hank Bao 102 | a(href="https://twitter.com/hankbao" target="_blank") 103 | img(src="./assets/img/baohanqing.jpg") 104 | p.detail Head of client products developent for pubu.im. Former iOS Leader of PPTV Qudian, created PPTV for Mac as the sole developer. You can reach him on GitHub and Twitter as @hankbao. 105 | div.speaker__card.b 106 | div.speaker__content 107 | h4.name CHRIS EIDHOF 108 | a(href="https://www.eidhof.nl/" target="_blank") 109 | img(src="./assets/img/chris.jpg") 110 | p.detail Chris is a Dutch software developer living in Berlin (Germany). He spends most of his time building iOS and Mac apps, such as #[a(href="https://decksetapp.com" target="_blank") Deckset] and #[a(href="https://www.getscenery.com" target="_blank") Scenery]. He started #[a(href="https://www.uikonf.com" target="_blank") UIKonf], #[a(href="https://www.objc.io" target="_blank") objc.io], wrote a book about #[a(href="https://www.objc.io/books/fpinswift" target="_blank") Functional Programming in Swift] and is currently writing a book on #[a(href="https://www.objc.io/books/" target="_blank") Advanced Swift]. 111 | div.speaker__card.b.l 112 | div.speaker__content 113 | h4.name RUOYU FU 114 | a(href="https://github.com/lingoer" target="_blank") 115 | img(src="./assets/img/furuoyu.jpg") 116 | p.detail A Mobile Developer works at ThoughtWorks. He is also known as the author of SwiftyJSON. Beside programming, he is a well known drunk among he’s friends and is said to never wake up before 2:00 PM on a Saturday morning. 117 | 118 | div.speaker__card.b.r 119 | div.speaker__content 120 | h4.name Greg Heo 121 | a(href="https://gregheo.com/" target="_blank") 122 | img(src="./assets/img/greg.png") 123 | p.detail Greg is a freelance iOS developer from Toronto, Canada. Aside from client and personal projects, he writes blog posts, films video tutorials for raywenderlich.com, and enjoys being a guest on tech-related podcasts. 124 | 125 | div.speaker__card.b 126 | div.speaker__content 127 | h4.name JIEXIN LI 128 | a(href="https://xitu.io/85" target="_blank") 129 | img(src="./assets/img/lijiexin.jpg") 130 | p.detail Former iOS developer at News Application of NetEase. He was the founder of the very first Swift online community in China - #[a(href="https://swiftist.org" target="_blank") swiftist.org]. Starting to use Swift in productive environment in October 2014, he developed the English learning application Listen+. 131 | 132 | 133 | div.speaker__card.b.l 134 | div.speaker__content 135 | h4.name WEI WANG 136 | a(href="https://onev.cat/" target="_blank") 137 | img(src="./assets/img/wangwei.png") 138 | p.detail @onevcat, also know as '喵神(Cat God)', is an iOS and Unity3D developer. Wang lives in Japan and work for Line now. He is the author of Swifter - 100 Swift necessary tips. 139 | div.speaker__card.r 140 | div.speaker__content 141 | h4.name MAKEE 142 | a(href="https://blog.makeex.com/" target="_blank") 143 | img(src="./assets/img/wengyang.jpg") 144 | p.detail Senior iOS Develop Engineer, former leading developer and architeture of CTrip Skysea Cruise, rich experiece of front and backend developing. Also wel-know as Brewmaster, used to drinking while coding. 145 | div.speaker__card 146 | div.speaker__content 147 | h4.name Kevin Zhou 148 | a(href="https://zhowkev.in" target="_blank") 149 | img(src="./assets/img/zhoukaiwen.jpg") 150 | p.detail Founder of Catch, Author of “Producter”,Traveling, Coding, Designing. 151 | section.agenda(id="agenda") 152 | div.agenda__content 153 | h1 AGENDA 154 | h4 *tentative, updating 155 | ul.agenda__list 156 | li 157 | time 08:30 158 | div 159 | span Sign 160 | li 161 | time 09:20 162 | div 163 | span Open 164 | p Jie Liang 165 | li 166 | time 09:30 167 | div 168 | span Programming with Structs 169 | p Chris Eidhof 170 | li 171 | time 10:20 172 | div 173 | span Across the gap between OC and Swift 174 | p Ruoyu Fu 175 | li 176 | time 11:10 177 | div 178 | span Swift Style 179 | p Greg Heo 180 | li.lunch 181 | time 12:00 182 | div 183 | span Lunch 184 | li 185 | time 13:20 186 | div 187 | span Protocol-Oriented Programming in Swift 188 | p Jason Li 189 | li 190 | time 14:00 191 | div 192 | span How to Make a Pleasant Framework 193 | p Wei Wang 194 | li 195 | time 14:40 196 | div 197 | span Swift Functional Programming Practice 198 | p Hank Bao 199 | li 200 | time 15:20 201 | div 202 | span Break 203 | li 204 | time 15:50 205 | div 206 | span Swift, Improve the Design of Existing Code 207 | p MAKEE 208 | li 209 | time 16:30 210 | div 211 | span Faster App,Use Swift Write a Smooth App 212 | p Kevin Zhou 213 | li 214 | time 17:30 215 | div 216 | span End 217 | //- section.ticket(id="ticket") 218 | //- h1 TICKET 219 | //- p Holding a high-quality conference not only requires energy but also needs money Everything will not be able to run without enough financial support, so we are raising money through various ways. 220 | //- p.blank For @Swift, tickets is our main income, we really need your support! 221 | //- h1 Why should I pay for @Swift? 222 | //- ul.blank 223 | //- li This is the VERY FIRST Swift conference in China 224 | //- li You can communicate with best speakers from all over the world 225 | //- li We will release the video after the conference, but without the Q&A part - you must come to listen and ask 226 | //- li Meeting with hundreds of developers who REALLY LOVE Swift 227 | //- li All of our incomes will be used for supporting the conference, you are the real host of this conference! 228 | //- p So, will you support us? 229 | //- div.hand 230 | //- img(src="./assets/img/handshake.jpg") 231 | //- div.ticket__btn 232 | //- a(href="https://wap.koudaitong.com/v2/goods/1yjxzdhp7932u?scan=1&activity=none&from=kdt" target="_blank") YES! 233 | section.sponsor(id="sponsor") 234 | div.sponsor__content 235 | h1 SPONSORSf 236 | h4 DIAMOND SPONSORS 237 | div.sponsor__logo 238 | a.sponsor__card.center(href="https://fir.im/" target="_blank") 239 | img(src="./assets/img/sponsor/fir.jpg") 240 | hr 241 | h4 GOLD SPONSORS 242 | div.sponsor__logo 243 | a.sponsor__card(href="https://100offer.com/" target="_blank") 244 | img(src="./assets/img/sponsor/100offer.png") 245 | a.sponsor__card(href="https://bearychat.com/" target="_blank") 246 | img(src="./assets/img/sponsor/bearychat.png") 247 | a.sponsor__card(href="https://www.geekbang.org/" target="_blank") 248 | img(src="./assets/img/sponsor/geekbang.png") 249 | a.sponsor__card(href="https://pubu.im" target="_blank") 250 | img(src="./assets/img/sponsor/pubu.png") 251 | a.sponsor__card(href="https://www.qingcloud.com" target="_blank") 252 | img(src="./assets/img/sponsor/qingcloud.png") 253 | //- a.sponsor__card(href="https://www.qiniu.com" target="_blank") 254 | //- img(src="./assets/img/sponsor/qiniu.png") 255 | hr 256 | h4 SILVER SPONSORS 257 | div.sponsor__logo 258 | a.sponsor__card(href="https://www.apusapps.com/" target="_blank") 259 | img(src="./assets/img/sponsor/apus.png") 260 | a.sponsor__card(href="https://www.broadview.com.cn/" target="_blank") 261 | img(src="./assets/img/sponsor/bowen.png") 262 | a.sponsor__card(href="https://www.catchchat.me/" target="_blank") 263 | img(src="./assets/img/sponsor/catch.png") 264 | a.sponsor__card(href="https://www.elastic.co/" target="_blank") 265 | img(src="./assets/img/sponsor/elastic.png") 266 | a.sponsor__card(href="https://www.in66.com/?_ig=swift" target="_blank") 267 | img(src="./assets/img/sponsor/in66.png") 268 | a.sponsor__card(href="https://www.liulishuo.com/" target="_blank") 269 | img(src="./assets/img/sponsor/liulishuo.png") 270 | a.sponsor__card(href="https://www.imooc.com/" target="_blank") 271 | img(src="./assets/img/sponsor/mooc.png") 272 | a.sponsor__card(href="https://toutiao.io" target="_blank") 273 | img(src="./assets/img/sponsor/toutiao.png") 274 | a.sponsor__card(href="https://www.ituring.com.cn/" target="_blank") 275 | img(src="./assets/img/sponsor/turing.png") 276 | hr 277 | h4 TOOL SPONSORS 278 | div.sponsor__logo 279 | a.sponsor__card(href="https://www.charlesproxy.com/" target="_blank") 280 | img(src="./assets/img/sponsor/charles.png") 281 | a.sponsor__card(href="https://kapeli.com/dash" target="_blank") 282 | img(src="./assets/img/sponsor/dash.png") 283 | a.sponsor__card(href="https://www.sketchapp.com/" target="_blank") 284 | img(src="./assets/img/sponsor/sketch.png") 285 | section.medias(id="medias") 286 | h1 PARTNERS 287 | div.medias__logo 288 | a.medias__card(href="https://www.36kr.com" target="_blank") 289 | img(src="./assets/img/medias/36kr.png") 290 | a.medias__card(href="https://www.cocoachina.com/" target="_blank") 291 | img(src="./assets/img/medias/cocoachina.png") 292 | a.medias__card(href="https://www.csdn.net" target="_blank") 293 | img(src="./assets/img/medias/csdn.png") 294 | a.medias__card(href="https://geek2startup.com/" target="_blank") 295 | img(src="./assets/img/medias/g2s.png") 296 | a.medias__card(href="https://www.infoq.com/cn/" target="_blank") 297 | img(src="./assets/img/medias/infoq.png") 298 | a.medias__card(href="https://www.jikexueyuan.com" target="_blank") 299 | img(src="./assets/img/medias/jkxy.png") 300 | a.medias__card(href="https://manong.io" target="_blank") 301 | img(src="./assets/img/medias/manong.png") 302 | a.medias__card(href="https://next.36kr.com/posts" target="_blank") 303 | img(src="./assets/img/medias/next.png") 304 | a.medias__card(href="https://www.oschina.net/" target="_blank") 305 | img(src="./assets/img/medias/oschina.png") 306 | a.medias__card(href="https://www.php-z.com/" target="_blank") 307 | img(src="./assets/img/medias/phpz.png") 308 | a.medias__card(href="https://www.pingwest.com" target="_blank") 309 | img(src="./assets/img/medias/pw.png") 310 | a.medias__card(href="https://segmentfault.com" target="_blank") 311 | img(src="./assets/img/medias/sf.png") 312 | a.medias__card(href="https://testerhome.com/" target="_blank") 313 | img(src="./assets/img/medias/testerhome.png") 314 | a.medias__card(href="https://www.tuicool.com/" target="_blank") 315 | img(src="./assets/img/medias/tuicool.jpg") 316 | a.medias__card(href="https://xitu.io" target="_blank") 317 | img(src="./assets/img/medias/xitu.jpg") 318 | 319 | section.map 320 | div.map__content 321 | h1 CONFERENCE VENUE 322 | h4 Conference Center·New Main Building in BUAA 323 | div(id="map__container") 324 | section.subscribe 325 | div.part0 326 | h2 Subscribe our newsletter 327 | div.subscribe__main 328 | form.emailform 329 | div.part1 330 | input.subscribe__email(type="email" placeholder="EMAIL") 331 | div.part2 332 | a.subscribe__btn SUBMIT 333 | footer 334 | div.main 335 | div 336 | span Build by #[a(href="https://github.com/atConf" target="_blank") @Conf] 337 | div.long 338 | span Design by #[a(href="https://github.com/erqiudao" target="_blank") @erqiuda] & #[a(href="https://github.com/z4rd" target="_blank") @z4rd] 339 | div 340 | a(href="mailto:lj925184928@gmail.com") Contact us 341 | div 342 | a(href="https://www.miitbeian.gov.cn") 粤ICP备15116144号 343 | script. 344 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 345 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 346 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 347 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 348 | 349 | ga('create', 'UA-67871901-1', 'auto'); 350 | ga('send', 'pageview'); 351 | 352 | -------------------------------------------------------------------------------- /jade/index.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | 3 | html(lang="zh-CN") 4 | 5 | head 6 | meta(charset="UTF-8")/ 7 | meta(name="viewport" content="width=device-width, initial-scale=1")/ 8 | meta(http-equiv="Cache-Control" content="no-transform")/ 9 | title @Swift | 中国首届 Swift 开发者大会 10 | link(rel="shortcut icon" type="image/x-icon" href="./assets/img/favicon.ico") 11 | link(rel="apple-touch-icon image_sr" type="image/x-icon" href="./assets/img/favicon.ico") 12 | link(rel="stylesheet" type="text/css" href="./assets/css/vendor/bootstrap.min.css")/ 13 | link(rel="stylesheet" type="text/css" href="./assets/css/font-awesome.min.css") 14 | link(rel="stylesheet" type="text/css" href="./assets/css/main.css") 15 | script(type="text/javascript" src="./assets/js/zepto.min.js") 16 | script(type="text/javascript" src="./assets/js/main.js") 17 | script(type="text/javascript" src="./assets/js/subscribe.js") 18 | script(type="text/javascript" src="https://webapi.amap.com/maps?v=1.3&key=7e8eb3422e3f2a609d1a32a76fd4981a") 19 | body 20 | img(src="./assets/img/wechatLogo.png" style="position: fixed; top: -9999px;") 21 | section.info 22 | div.info__content 23 | img(src="./assets/img/logo.png").info__logo 24 | p.info__subtitle 中国首届#[span.info__down Swift]开发者大会 25 | p.info__date 2016年1月10日·北京 北航新主楼·会议中心 26 | div.info__btn 27 | a(href="https://github.com/atConf" target="_blank") 资源下载 28 | div.info__btn 29 | a(href="https://www.bilibili.com/video/av4212609/" target="_blank") 观看演讲视频 30 | header.header 31 | div.sm_nav 32 | div.header__btn 33 | a 34 | i.fa.fa-bars 35 | ul.sm_btns 36 | li 37 | a(href="#intro") 大会介绍 38 | li 39 | a(href="#speaker") 演讲嘉宾 40 | li 41 | a(href="#agenda") 大会议程 42 | li 43 | a(href="#sponsor") 赞助商 44 | li 45 | a(href="#medias") 合作媒体 46 | div.header__nav 47 | div.header__btn 48 | a(href="#intro") 大会介绍 49 | div.header__btn 50 | a(href="#speaker") 演讲嘉宾 51 | div.header__btn 52 | a(href="#agenda") 大会议程 53 | div.header__btn 54 | a(href="#sponsor") 赞助商 55 | div.header__btn 56 | a(href="#medias") 合作媒体 57 | //- div.header__btn.highlight 58 | //- a 购票 59 | div.header__social 60 | div.header__social__btn 61 | a(href="./index-en.html") EN 62 | div.header__social__btn 63 | a(href="https://swiftchina.bearychat.com/" target="_blank") 64 | img(src="./assets/img/bc.png") 65 | div.header__social__btn 66 | a(href="https://swift.pubu.im/reg/91gwgg7zwmbwix" target="_blank") 67 | img(src="./assets/img/pubu.png") 68 | div.header__social__btn 69 | a(href="https://weibo.com/atswift" target="_blank") 70 | i.fa.fa-weibo 71 | div.header__social__btn 72 | a(href="https://github.com/atConf/atswift" target="_blank") 73 | i.fa.fa-github 74 | div.header__social__btn 75 | a(href="https://twitter.com/atSwiftConf" target="_blank") 76 | i.fa.fa-twitter 77 | section.intro(id="intro") 78 | div.intro__content 79 | h1 大会介绍 80 | div.intro__card 81 | img(src="./assets/img/intro1_red.png") 82 | h3.intro__reason 非营利 83 | p.intro__detail @Swift 是由 @Conf 团队组织的一场非营利的技术大会,所有收入全部用于大会本身支出,包括会场租赁、嘉宾差旅、参会者福利等等。 84 | div.intro__card 85 | img(src="./assets/img/intro2.png") 86 | h3.intro__reason 开发者 to 开发者 87 | p.intro__detail @Swift 是一场由开发者做给开发者的技术盛宴,我们和你一样是开发者,你喜欢的你想要的也同样是我们所追求的。 88 | div.intro__card 89 | img(src="./assets/img/intro3.png") 90 | h3.intro__reason 高质量 91 | p.intro__detail 所有的演讲嘉宾和演讲内容都会经过严格筛选,保证大家听到的是纯技术干货。 92 | section.speaker(id="speaker") 93 | h1 大会主席 94 | div.speaker__chairman 95 | div.speaker__content 96 | h4.name 唐巧 97 | a(href="https://devtang.com" target="_blank") 98 | img(src="./assets/img/tangqiao.png") 99 | p.detail 唐巧,Blogger,InfoQ 编辑,资深 iOS 开发者。曾在网易参与过网易邮箱、网易微博以及有道云笔记的开发。目前在猿题库创业,是小猿搜题的产品技术负责人。 100 | p.detail 他喜欢写作与分享,独立撰写了《iOS开发进阶》,长期维护着自己的 #[a(href="https://blog.devtang.com" target="_blank") 技术博客] 和微信公共帐号 iOSDevTips。 101 | 102 | h1 演讲嘉宾 103 | div.speaker__card.r.b 104 | div.speaker__content 105 | h4.name 包涵卿 106 | a(href="https://twitter.com/hankbao" target="_blank") 107 | img(src="./assets/img/baohanqing.jpg") 108 | p.detail 瀑布 IM 客户端技术负责人。前 PPTV 趣点项目 iOS 负责人,曾经独自开发 PPTV Mac 版。在 GitHub 和 Twitter 上的 ID 是 @hankbao. 109 | div.speaker__card.b 110 | div.speaker__content 111 | h4.name CHRIS EIDHOF 112 | a(href="https://www.eidhof.nl/" target="_blank") 113 | img(src="./assets/img/chris.jpg") 114 | p.detail Chris, 生活在德国柏林的荷兰开发者。他把大部分时间都花在开发 iOS 和 Mac 应用上,作品包括 #[a(href="https://decksetapp.com" target="_blank") Deckset] 和 #[a(href="https://www.getscenery.com" target="_blank") Scenery]. Chris 还创办了 #[a(href="https://www.uikonf.com" target="_blank") UIKonf] 和 #[a(href="https://www.objc.io" target="_blank") objc.io]. 此外,他还是一位作者,著有 #[a(href="https://www.objc.io/books/fpinswift" target="_blank") Functional Programming in Swift], 目前正在编写 #[a(href="https://www.objc.io/books/" target="_blank") Advanced Swift]. 115 | 116 | div.speaker__card.b.l 117 | div.speaker__content 118 | h4.name 傅若愚 119 | a(href="https://github.com/lingoer" target="_blank") 120 | img(src="./assets/img/furuoyu.jpg") 121 | p.detail 移动开发者,ThoughtWorks 高级咨询师/Tech Lead,SwiftyJSON 作者。业余喜读书,文史哲无所禁忌,爱美食与啤酒,凡酒约,从不拒绝,爱睡懒觉,周末从不在下午 2 点前起床。总之,是个充满缺点与怪癖的家伙。 122 | 123 | div.speaker__card.b.r 124 | div.speaker__content 125 | h4.name Greg Heo 126 | a(href="https://gregheo.com/" target="_blank") 127 | img(src="./assets/img/greg.png") 128 | p.detail Greg 是加拿大多伦多的一位 iOS 自由职业者。除了做项目他还在为 raywenderlich.com 撰写博客并录制视频教程,此外他还是科技类 podcast 的常客。 129 | 130 | div.speaker__card.b 131 | div.speaker__content 132 | h4.name 李洁信 133 | a(href="https://xitu.io/85" target="_blank") 134 | img(src="./assets/img/lijiexin.jpg") 135 | p.detail 前网易新闻客户端 iOS 开发,创办了国内最早的 Swift 社区 #[a(href="https://swiftist.org" target="_blank") swiftist.org], 2014 年 10 月开始在生产环境使用 Swift, 开发了英语学习 App Listen+. 136 | 137 | 138 | div.speaker__card.b.l 139 | div.speaker__content 140 | h4.name 王巍 141 | a(href="https://onev.cat/" target="_blank") 142 | img(src="./assets/img/wangwei.png") 143 | p.detail @onevcat, 江湖人称“喵神”。iOS 和 Unity3D 开发者,旅居日本,目前供职于 LINE. 著有《Swifter - 100 个 Swift 必备 tips》。 144 | div.speaker__card.r 145 | div.speaker__content 146 | h4.name 翁阳 147 | a(href="https://blog.makeex.com/" target="_blank") 148 | img(src="./assets/img/wengyang.jpg") 149 | p.detail 沪江 iOS 资深工程师,前携程天海邮轮 APP 主力开发和架构,拥有丰富的前后端开发经验。爱咖啡,爱喝酒,人送外号“酒仙”,常独自边喝酒边 Coding 的怪人。 150 | div.speaker__card 151 | div.speaker__content 152 | h4.name 周楷雯 153 | a(href="https://zhowkev.in" target="_blank") 154 | img(src="./assets/img/zhoukaiwen.jpg") 155 | p.detail Catch 创始人,著有 《Producter》,喜欢一边旅行,一边做点东西。 156 | section.agenda(id="agenda") 157 | div.agenda__content 158 | h1 大会议程 159 | h4 *暂定,后续会不断更新 160 | ul.agenda__list 161 | li 162 | time 08:30 163 | div 164 | span 签到 165 | li 166 | time 09:20 167 | div 168 | span 开场 169 | p 梁杰 170 | li 171 | time 09:30 172 | div 173 | span Programming with Structs 174 | p Chris Eidhof 175 | li 176 | time 10:20 177 | div 178 | span 越过 OC 与 Swift 间的鸿沟 179 | p 傅若愚 180 | li 181 | time 11:10 182 | div 183 | span Swift Style 184 | p Greg Heo 185 | li.lunch 186 | time 12:00 187 | div 188 | span 午餐 189 | li 190 | time 13:20 191 | div 192 | span Swift 中的面向协议编程 193 | p 李洁信 194 | li 195 | time 14:00 196 | div 197 | span 如何打造一个让人愉快的框架 198 | p 王巍 199 | li 200 | time 14:40 201 | div 202 | span Swift 函数式编程实践 203 | p 包涵卿 204 | li 205 | time 15:20 206 | div 207 | span 茶歇 208 | li 209 | time 15:50 210 | div 211 | span Swift,改善既有代码的设计 212 | p 翁阳 213 | li 214 | time 16:30 215 | div 216 | span Faster App,用 Swift 打造一款流畅的 App 217 | p 周楷雯 218 | li 219 | time 17:30 220 | div 221 | span 结束 222 | 223 | //- section.ticket(id="ticket") 224 | //- h1 门票 225 | //- //- h4 226 | //- //- span 已售#[span.number 150] 227 | //- p 举办一场高质量的大会不仅需要人也需要钱。会场预订、嘉宾差旅、参会者福利都需要资金支持,因此我们需要通过多种途径筹集资金。 228 | //- p.blank 对于 @Swift 来说,门票是我们最大的资金来源,大会需要你的支持! 229 | //- h1 给我一个买票的理由 230 | //- ul.blank 231 | //- li 这是国内第一场 Swift 大会 232 | //- li 身处现场,和国内外一线 Swift 专家交流 233 | //- li 会后我们会放出视频,但是不包含提问环节——只有在现场才能参与提问 234 | //- li 和几百位对 Swift 真正感兴趣的开发者交流 235 | //- li 所有收入全部用于大会支出,你们才是这场大会真正的主人! 236 | //- p 那么,你是否愿意和我们一起,办一场真正属于我们自己的大会? 237 | //- div.hand 238 | //- img(src="./assets/img/handshake.jpg") 239 | //- div.ticket__btn 240 | //- a(href="https://wap.koudaitong.com/v2/goods/1yjxzdhp7932u?scan=1&activity=none&from=kdt" target="_blank") 我愿意! 241 | section.sponsor(id="sponsor") 242 | div.sponsor__content 243 | h1 赞助商 244 | h4 钻石赞助商 245 | div.sponsor__logo 246 | a.sponsor__card.center(href="https://fir.im/" target="_blank") 247 | img(src="./assets/img/sponsor/fir.jpg") 248 | hr 249 | h4 黄金赞助商 250 | div.sponsor__logo 251 | a.sponsor__card(href="https://100offer.com/" target="_blank") 252 | img(src="./assets/img/sponsor/100offer.png") 253 | a.sponsor__card(href="https://bearychat.com/" target="_blank") 254 | img(src="./assets/img/sponsor/bearychat.png") 255 | a.sponsor__card(href="https://www.geekbang.org/" target="_blank") 256 | img(src="./assets/img/sponsor/geekbang.png") 257 | a.sponsor__card(href="https://pubu.im" target="_blank") 258 | img(src="./assets/img/sponsor/pubu.png") 259 | a.sponsor__card(href="https://www.qingcloud.com" target="_blank") 260 | img(src="./assets/img/sponsor/qingcloud.png") 261 | //- a.sponsor__card(href="https://www.qiniu.com" target="_blank") 262 | //- img(src="./assets/img/sponsor/qiniu.png") 263 | hr 264 | h4 白银赞助商 265 | div.sponsor__logo 266 | a.sponsor__card(href="https://www.apusapps.com/" target="_blank") 267 | img(src="./assets/img/sponsor/apus.png") 268 | a.sponsor__card(href="https://www.broadview.com.cn/" target="_blank") 269 | img(src="./assets/img/sponsor/bowen.png") 270 | a.sponsor__card(href="https://www.catchchat.me/" target="_blank") 271 | img(src="./assets/img/sponsor/catch.png") 272 | a.sponsor__card(href="https://www.elastic.co/" target="_blank") 273 | img(src="./assets/img/sponsor/elastic.png") 274 | a.sponsor__card(href="https://www.in66.com/?_ig=swift" target="_blank") 275 | img(src="./assets/img/sponsor/in66.png") 276 | a.sponsor__card(href="https://www.liulishuo.com/" target="_blank") 277 | img(src="./assets/img/sponsor/liulishuo.png") 278 | a.sponsor__card(href="https://www.imooc.com/" target="_blank") 279 | img(src="./assets/img/sponsor/mooc.png") 280 | a.sponsor__card(href="https://toutiao.io" target="_blank") 281 | img(src="./assets/img/sponsor/toutiao.png") 282 | a.sponsor__card(href="https://www.ituring.com.cn/" target="_blank") 283 | img(src="./assets/img/sponsor/turing.png") 284 | hr 285 | h4 工具赞助商 286 | div.sponsor__logo 287 | a.sponsor__card(href="https://www.charlesproxy.com/" target="_blank") 288 | img(src="./assets/img/sponsor/charles.png") 289 | a.sponsor__card(href="https://kapeli.com/dash" target="_blank") 290 | img(src="./assets/img/sponsor/dash.png") 291 | a.sponsor__card(href="https://www.sketchapp.com/" target="_blank") 292 | img(src="./assets/img/sponsor/sketch.png") 293 | section.medias(id="medias") 294 | h1 合作伙伴 295 | div.medias__logo 296 | a.medias__card(href="https://www.36kr.com" target="_blank") 297 | img(src="./assets/img/medias/36kr.png") 298 | a.medias__card(href="https://www.cocoachina.com/" target="_blank") 299 | img(src="./assets/img/medias/cocoachina.png") 300 | a.medias__card(href="https://www.csdn.net" target="_blank") 301 | img(src="./assets/img/medias/csdn.png") 302 | a.medias__card(href="https://geek2startup.com/" target="_blank") 303 | img(src="./assets/img/medias/g2s.png") 304 | a.medias__card(href="https://www.infoq.com/cn/" target="_blank") 305 | img(src="./assets/img/medias/infoq.png") 306 | a.medias__card(href="https://www.jikexueyuan.com" target="_blank") 307 | img(src="./assets/img/medias/jkxy.png") 308 | a.medias__card(href="https://manong.io" target="_blank") 309 | img(src="./assets/img/medias/manong.png") 310 | a.medias__card(href="https://next.36kr.com/posts" target="_blank") 311 | img(src="./assets/img/medias/next.png") 312 | a.medias__card(href="https://www.php-z.com/" target="_blank") 313 | img(src="./assets/img/medias/phpz.png") 314 | a.medias__card(href="https://www.oschina.net/" target="_blank") 315 | img(src="./assets/img/medias/oschina.png") 316 | a.medias__card(href="https://www.pingwest.com" target="_blank") 317 | img(src="./assets/img/medias/pw.png") 318 | a.medias__card(href="https://segmentfault.com" target="_blank") 319 | img(src="./assets/img/medias/sf.png") 320 | a.medias__card(href="https://testerhome.com/" target="_blank") 321 | img(src="./assets/img/medias/testerhome.png") 322 | a.medias__card(href="https://www.tuicool.com/" target="_blank") 323 | img(src="./assets/img/medias/tuicool.jpg") 324 | a.medias__card(href="https://xitu.io" target="_blank") 325 | img(src="./assets/img/medias/xitu.jpg") 326 | 327 | section.map 328 | div.map__content 329 | h1 会场位置 330 | h4 北航新主楼·会议中心 331 | div(id="map__container") 332 | section.subscribe 333 | div.part0 334 | h2 订阅最新消息 335 | div.subscribe__main 336 | form.emailform 337 | div.part1 338 | input.subscribe__email(type="email" placeholder="邮箱地址") 339 | div.part2 340 | a.subscribe__btn 订阅 341 | footer 342 | div.main 343 | div 344 | span Build by #[a(href="https://github.com/atConf" target="_blank") @Conf] 345 | div.long 346 | span Design by #[a(href="https://github.com/erqiudao" target="_blank") @erqiuda] & #[a(href="https://github.com/z4rd" target="_blank") @z4rd] 347 | div 348 | a(href="mailto:lj925184928@gmail.com") 联系我们 349 | div 350 | a(href="https://www.miitbeian.gov.cn") 粤ICP备15116144号 351 | script. 352 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 353 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 354 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 355 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 356 | 357 | ga('create', 'UA-67871901-1', 'auto'); 358 | ga('send', 'pageview'); 359 | 360 | -------------------------------------------------------------------------------- /jade/ticket.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | 3 | html(lang="zh-CN") 4 | 5 | head 6 | meta(charset="UTF-8")/ 7 | meta(name="viewport" content="width=device-width, initial-scale=1")/ 8 | title 欢迎购票 9 | link(rel="shortcut icon" type="image/x-icon" href="./assets/img/favicon.ico") 10 | link(rel="apple-touch-icon image_sr" type="image/x-icon" href="./assets/img/favicon.ico") 11 | link(rel="stylesheet" type="text/css" href="./assets/css/vendor/bootstrap.min.css")/ 12 | link(rel="stylesheet" type="text/css" href="./assets/css/font-awesome.min.css") 13 | link(rel="stylesheet" type="text/css" href="./assets/css/main.css") 14 | script(type="text/javascript" src="./assets/js/zepto.min.js") 15 | script(type="text/javascript" src="./assets/js/main.js") 16 | script(type="text/javascript" src="./assets/js/subscribe.js") 17 | body 18 | section.info 19 | div.info__content__qr 20 | img(src="./assets/img/logo.png").info__logo 21 | p.info__subtitle 参会门票 22 | p.info__date 请于签到时出示此二维码 23 | img(src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data={{hereisdata}}").qrcode -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "doswift", 3 | "version": "1.0.0", 4 | "description": "Chinese first Swift conf, organized by DO.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "numbbbbb", 10 | "license": "ISC", 11 | "dependencies": { 12 | "gulp": "^3.9.0", 13 | "gulp-imagemin": "^2.3.0", 14 | "gulp-jade": "^1.1.0", 15 | "gulp-stylus": "^2.0.6", 16 | "imagemin-jpeg-recompress": "^4.3.0", 17 | "jeet": "^6.1.2", 18 | "rupture": "^0.6.1" 19 | }, 20 | "engines": { 21 | "node": "10.24.1" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/avatar.png -------------------------------------------------------------------------------- /src/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/bg.jpg -------------------------------------------------------------------------------- /src/img/bg_bw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/bg_bw.jpg -------------------------------------------------------------------------------- /src/img/chris.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/chris.jpg -------------------------------------------------------------------------------- /src/img/chris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/chris.png -------------------------------------------------------------------------------- /src/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/favicon.ico -------------------------------------------------------------------------------- /src/img/greg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/greg.png -------------------------------------------------------------------------------- /src/img/intro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/intro1.png -------------------------------------------------------------------------------- /src/img/intro1_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/intro1_red.png -------------------------------------------------------------------------------- /src/img/intro2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/intro2.png -------------------------------------------------------------------------------- /src/img/intro2_silver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/intro2_silver.png -------------------------------------------------------------------------------- /src/img/intro3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/intro3.png -------------------------------------------------------------------------------- /src/img/lijiexin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/lijiexin.jpg -------------------------------------------------------------------------------- /src/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/logo.png -------------------------------------------------------------------------------- /src/img/medias/36kr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/36kr.jpg -------------------------------------------------------------------------------- /src/img/medias/36kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/36kr.png -------------------------------------------------------------------------------- /src/img/medias/cocoachina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/cocoachina.png -------------------------------------------------------------------------------- /src/img/medias/csdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/csdn.png -------------------------------------------------------------------------------- /src/img/medias/g2s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/g2s.png -------------------------------------------------------------------------------- /src/img/medias/infoq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/infoq.jpg -------------------------------------------------------------------------------- /src/img/medias/jkxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/jkxy.png -------------------------------------------------------------------------------- /src/img/medias/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/next.png -------------------------------------------------------------------------------- /src/img/medias/phpz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/phpz.png -------------------------------------------------------------------------------- /src/img/medias/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/pw.png -------------------------------------------------------------------------------- /src/img/medias/sf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/sf.png -------------------------------------------------------------------------------- /src/img/medias/testerhome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/testerhome.png -------------------------------------------------------------------------------- /src/img/medias/xitu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/medias/xitu.jpg -------------------------------------------------------------------------------- /src/img/sam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/sam.jpg -------------------------------------------------------------------------------- /src/img/sam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/sam.png -------------------------------------------------------------------------------- /src/img/sponsor/sketch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/sponsor/sketch.png -------------------------------------------------------------------------------- /src/img/tangqiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/tangqiao.png -------------------------------------------------------------------------------- /src/img/wangwei.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/wangwei.jpg -------------------------------------------------------------------------------- /src/img/wangwei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/wangwei.png -------------------------------------------------------------------------------- /src/img/wechatLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atConf/atswift2016/c1974a700e5ceb597ece9210f625060130279ce4/src/img/wechatLogo.png -------------------------------------------------------------------------------- /stylus/main.styl: -------------------------------------------------------------------------------- 1 | @import 'jeet' 2 | 3 | $font-main = "lato", 'Microsoft YaHei', "微软雅黑", "STXihei", "华文细黑", "sans-serif"; 4 | 5 | * 6 | font-family $font-main 7 | -webkit-text-size-adjust none 8 | -webkit-transform-origin-x 0 9 | 10 | html 11 | font-size 62.5% 12 | text-align center 13 | 14 | .r 15 | border-right solid 1px #E7E7E7 16 | .b 17 | border-bottom 1px solid #E7E7E7 18 | .t 19 | border-top 1px solid #E7E7E7 20 | .l 21 | border-left 1px solid #E7E7E7 22 | +below(768px) 23 | .r,.b,.t,.l 24 | border none 25 | div.null 26 | display none 27 | 28 | body 29 | layout1() 30 | span(0.7, offset:0.15) 31 | layout1_sm() 32 | span(0.9, offset:0.05) 33 | layout2() 34 | span(0.5, offset:0.25) 35 | layout2_md() 36 | span(0.7, offset:0.15) 37 | layout2_sm() 38 | span(0.9, offset:0.05) 39 | font-size 1.6rem 40 | .info 41 | span(1) 42 | 43 | letter-spacing 3px 44 | background-image url(../img/bg_bw.jpg) 45 | background-attachment fixed 46 | background-position 0 0 47 | text-align center 48 | font-size 2rem 49 | +below(500px) 50 | font-size 1rem 51 | color white 52 | .info__content 53 | width 60rem 54 | +below(500px) 55 | width 30rem 56 | margin-left -15rem 57 | margin-top -10rem 58 | height 30rem 59 | position absolute 60 | top 50% 61 | left 50% 62 | margin-left -30rem 63 | margin-top -15rem 64 | .en 65 | width 90rem 66 | margin-left -45rem 67 | +below(500px) 68 | width 26rem 69 | margin-left -13rem 70 | margin-top -10rem 71 | .info__content__qr 72 | width 60rem 73 | +below(500px) 74 | width 26rem 75 | margin-left -13rem 76 | margin-top -15rem 77 | height 35rem 78 | overflow auto 79 | position absolute 80 | top 50% 81 | left 50% 82 | margin-left -30rem 83 | margin-top -20rem 84 | .info__logo 85 | +below(500px) 86 | height (6.5*0.618)rem 87 | width (24*0.618)rem 88 | height 6.5rem 89 | width 24rem 90 | 91 | text-align center 92 | margin-bottom 2rem 93 | img.qrcode 94 | center(20rem) 95 | margin-top 1rem 96 | margin-bottom 4rem 97 | img.vip 98 | border 10px groove gold 99 | .info__subtitle 100 | letter-spacing 2px 101 | font-size 5rem 102 | +below(500px) 103 | font-size 2rem 104 | .info__down 105 | font-family arial 106 | font-weight normal 107 | .info__btn 108 | padding-top 1rem 109 | margin-bottom 1rem 110 | a 111 | cursor pointer 112 | text-decoration none 113 | background-color #5399fc 114 | color white 115 | display inline-block 116 | line-height 6rem 117 | vertical-align middle 118 | width 36rem 119 | +below(500px) 120 | width 20rem 121 | height 6rem 122 | border-radius 25rem 123 | font-size 3rem 124 | &:hover 125 | color white 126 | background-color #64a3fc 127 | 128 | .header 129 | span(1) 130 | background-color white 131 | position absolute 132 | bottom 0 133 | box-shadow 0px 0px 0.5rem rgba(0, 0, 0, 0.3) 134 | padding 1rem 135 | height 6rem 136 | 137 | .sm_nav 138 | span(0.2, offset: 0.1) 139 | display none 140 | +below(500px) 141 | display inline-block 142 | height 4rem 143 | vertical-align middle 144 | .header__btn 145 | span(1/6) 146 | padding-top 0.9rem 147 | text-align center 148 | a 149 | cursor pointer 150 | text-decoration none 151 | color #4d4d4d 152 | font-size 2rem 153 | &:hover 154 | color #5399fc 155 | text-decoration none 156 | ul 157 | span(1) 158 | display none 159 | box-sizing border-box 160 | text-align left 161 | position absolute 162 | bottom 6rem 163 | left 0 164 | list-style-type none 165 | margin 0 166 | padding-left 4rem 167 | padding-top 0.5rem 168 | padding-bottom 0.5rem 169 | height 21rem 170 | background white 171 | border-bottom solid 1px #ccc 172 | border-top solid 1px #ccc 173 | li 174 | span(0.8) 175 | padding-top 0.5rem 176 | padding-bottom 0.5rem 177 | line-height 3rem 178 | vertical-align middle 179 | height 4rem 180 | a 181 | font-size 1.6rem 182 | 183 | .header__nav 184 | span(0.42, offset:0.29) 185 | +below(1024px) 186 | span(0.6, offset:0.1) 187 | +below(500px) 188 | display none 189 | height 4rem 190 | .header__btn 191 | span(1/5) 192 | padding-top 0.8rem 193 | text-align center 194 | a 195 | cursor pointer 196 | text-decoration none 197 | color #4d4d4d 198 | font-size 1.6rem 199 | &:hover 200 | color #5399fc 201 | text-decoration none 202 | .highlight 203 | padding-top 0.5rem 204 | a 205 | background-color #5399fc 206 | color white 207 | display inline-block 208 | padding 0.5rem 209 | width 14rem 210 | border-radius 1.6rem 211 | &:hover 212 | color white 213 | background-color #64a3fc 214 | 215 | .header__social 216 | span(0.22, offset: 0.07) 217 | +below(1024px) 218 | span(0.3) 219 | +below(500px) 220 | span(0.6) 221 | height 4rem 222 | .header__social__btn 223 | col(1/5) 224 | padding 1rem 225 | width 3rem 226 | text-align center 227 | a 228 | cursor pointer 229 | text-decoration none 230 | color #4d4d4d 231 | font-size 1.9rem 232 | &:hover 233 | color #5399fc 234 | text-decoration none 235 | i 236 | font-size 2rem 237 | img 238 | width 2rem 239 | 240 | 241 | 242 | .speaker 243 | layout1() 244 | +below(1200px) 245 | layout1_sm() 246 | color #34495e 247 | h1 248 | center(30rem) 249 | margin-top 6rem 250 | margin-bottom 3rem 251 | font-weight bold 252 | text-align center 253 | .speaker__card 254 | span(1/3) 255 | +below(768px) 256 | span(1/2) 257 | +below(500px) 258 | span(1) 259 | padding 1rem 260 | .speaker__content 261 | span(1) 262 | +below(500px) 263 | padding 1rem 264 | padding 4rem 265 | padding-top 1rem 266 | h4.name 267 | font-weight 700 268 | margin-bottom 2rem 269 | p.detail 270 | text-align left 271 | line-height 2.2rem 272 | margin-top 2rem 273 | .speaker__chairman 274 | span(1/2, offset: 1/4) 275 | +below(768px) 276 | span(1/2) 277 | +below(500px) 278 | span(1) 279 | padding 1rem 280 | .speaker__content 281 | span(1) 282 | +below(500px) 283 | padding 1rem 284 | padding 4rem 285 | padding-top 1rem 286 | h4.name 287 | font-weight 700 288 | margin-bottom 2rem 289 | p.detail 290 | margin-top 2rem 291 | text-align left 292 | line-height 2.2rem 293 | 294 | 295 | .intro 296 | span(1) 297 | color #34495e 298 | background-color #f8f8f8 299 | div.intro__content 300 | layout1() 301 | +below(1200px) 302 | layout1_sm() 303 | h1 304 | center(40rem) 305 | margin-top 6rem 306 | margin-bottom 3rem 307 | font-weight bold 308 | text-align center 309 | .intro__card 310 | span(1/3) 311 | +below(500px) 312 | span(1) 313 | padding 2rem 314 | img 315 | width 40% 316 | h3.intro__reason 317 | margin-bottom 2rem 318 | p.intro__detail 319 | margin-top 2rem 320 | .agenda 321 | span(1) 322 | color #34495e 323 | background-color #f8f8f8 324 | padding-bottom 5rem 325 | div.agenda__content 326 | layout2() 327 | +below(1200px) 328 | layout2_sm() 329 | h1 330 | center(30rem) 331 | margin-top 6rem 332 | margin-bottom 3rem 333 | font-weight bold 334 | text-align center 335 | .agenda__list 336 | center(50rem) 337 | +below(768px) 338 | center(30rem) 339 | list-style none 340 | display block 341 | background-color white 342 | li.lottery 343 | div 344 | span 345 | color red 346 | li.lunch 347 | div 348 | span 349 | color #2C6700 350 | li 351 | span(1) 352 | height 10rem 353 | border-bottom 2px solid #f8f8f8 354 | text-align left 355 | padding-left 5rem 356 | +below(768px) 357 | padding-left 1rem 358 | time 359 | display inline-block 360 | color: #111; 361 | line-height 10rem 362 | font-weight: bold; 363 | font-size: 3.2rem; 364 | vertical-align: middle; 365 | width 30% 366 | +below(768px) 367 | font-size 2rem 368 | width 20% 369 | div 370 | display inline-block 371 | width 65% 372 | +below(768px) 373 | width 75% 374 | text-align right 375 | vertical-align middle 376 | span 377 | color black 378 | line-height 2rem 379 | font-size 2rem 380 | +below(1200px) 381 | font-size 1.8rem 382 | p 383 | color #999 384 | line-height 2rem 385 | font-size 1.8rem 386 | .ticket 387 | layout2() 388 | +below(1200px) 389 | layout2_sm() 390 | color #34495e 391 | text-align left 392 | letter-spacing 1px 393 | h1 394 | center(50rem) 395 | margin-top 6rem 396 | margin-bottom 2rem 397 | font-weight bold 398 | text-align center 399 | h4 400 | center(10rem) 401 | border solid 1px #FB7B4E 402 | border-radius 4px 403 | font-size 1.5rem 404 | text-align center 405 | margin-bottom 1rem 406 | color #FB7B4E 407 | .number 408 | font-weight 700 409 | color #FB7B4E 410 | font-family "Constantia" "Georgia" 411 | font-size 22px 412 | font-style italic 413 | 414 | p 415 | span(0.6, offset:0.2) 416 | // FIXME the jeet doesn't offer a way to change right offset 417 | margin-right: 20% 418 | +below(500px) 419 | span(1) 420 | .blank 421 | margin-bottom 3rem 422 | .hand 423 | center(10rem) 424 | img 425 | width 100% 426 | ul 427 | span(0.6, offset:0.2) 428 | +below(500px) 429 | span(1) 430 | text-align left 431 | line-height 2rem 432 | font-size 1.6rem 433 | text-align left 434 | .ticket__btn 435 | span(1) 436 | text-align center 437 | margin-top 1rem 438 | margin-bottom 5rem 439 | a 440 | cursor pointer 441 | text-decoration none 442 | background-color #5399fc 443 | color white 444 | display inline-block 445 | vertical-align middle 446 | line-height 6rem 447 | width 36rem 448 | +below(500px) 449 | width 25rem 450 | height 6rem 451 | border-radius 25rem 452 | text-align center 453 | font-size 3rem 454 | &:hover 455 | color white 456 | background-color #64a3fc 457 | .sponsor 458 | span(1) 459 | color #34495e 460 | background-color #f8f8f8 461 | padding-bottom 6rem 462 | div.sponsor__content 463 | layout2() 464 | +below(1200px) 465 | layout2_md() 466 | +below(500px) 467 | layout2_sm() 468 | h1 469 | center(30rem) 470 | margin-top 6rem 471 | margin-bottom 3rem 472 | font-weight bold 473 | text-align center 474 | hr 475 | span(1) 476 | width 100% 477 | h4 478 | span(1) 479 | margin-top 6rem 480 | margin-bottom 3rem 481 | text-align center 482 | .sponsor__card 483 | span(1/3) 484 | +below(500px) 485 | span(1/2) 486 | display inline-block 487 | padding 1rem 488 | height 10rem 489 | margin-bottom 3rem 490 | img 491 | width 100% 492 | .sponsor__card.center 493 | span(1/3, offset: 1/3) 494 | +below(500px) 495 | span(1/2, offset: 1/4) 496 | span 497 | color #999 498 | .medias 499 | layout2() 500 | +below(1200px) 501 | layout2_md() 502 | +below(500px) 503 | layout2_sm() 504 | color #34495e 505 | padding-bottom 6rem 506 | h1 507 | center(30rem) 508 | margin-top 6rem 509 | margin-bottom 3rem 510 | font-weight bold 511 | text-align center 512 | .medias__card 513 | span(1/3) 514 | +below(500px) 515 | span(1/2) 516 | display inline-block 517 | padding 1rem 518 | height 10rem 519 | margin-bottom 3rem 520 | img 521 | width 100% 522 | .map 523 | span(1) 524 | color #34495e 525 | background-color #f8f8f8 526 | padding-bottom 6rem 527 | div.map__content 528 | layout2() 529 | +below(1200px) 530 | layout2_sm() 531 | div#map__container 532 | center(120rem) 533 | height 40rem 534 | h1 535 | center(40rem) 536 | margin-top 6rem 537 | margin-bottom 3rem 538 | font-weight bold 539 | text-align center 540 | .subscribe 541 | span(1) 542 | height 6rem 543 | +below(500px) 544 | height 10rem 545 | background-color #2770E7 546 | padding 1rem 547 | vertical-align middle 548 | .part0 549 | span(0.2, offset:0.2) 550 | +below(1024px) 551 | span(0.3, offset:0.1) 552 | +below(500px) 553 | span(1) 554 | height 40% 555 | line-height 4rem 556 | height 100% 557 | h2 558 | margin-top 0 559 | margin-bottom 0 560 | letter-spacing 2px 561 | line-height 4rem 562 | vertical-align middle 563 | color white 564 | div.subscribe__main 565 | span(0.5) 566 | +below(500px) 567 | span(1) 568 | margin-top 1rem 569 | div.part1 570 | span(0.618) 571 | input.subscribe__email 572 | text-align center 573 | background: #FFF; 574 | border-radius: 2rem 0 0 2rem 575 | border none 576 | color: #4d4d4d; 577 | width 100% 578 | height 4rem 579 | line-height: 200%; 580 | vertical-align: middle; 581 | div.part2 582 | span(0.382) 583 | a.subscribe__btn 584 | cursor pointer 585 | border none 586 | display inline-block 587 | text-align center 588 | vertical-align middle 589 | background-color #5399fc 590 | color white 591 | width 100% 592 | height 4rem 593 | border-radius: 0 2rem 2rem 0 594 | line-height 4rem 595 | font-size 2rem 596 | text-decoration none 597 | footer 598 | span(1) 599 | background-color black 600 | color white 601 | padding 2rem 602 | vertical-align middle 603 | div.main 604 | span(0.6, offset:0.2) 605 | +below(1200px) 606 | span(0.8, offset:0.1) 607 | +below(500px) 608 | span(1) 609 | div 610 | span(1/5) 611 | a 612 | color #aaa 613 | text-decoration none 614 | div.long 615 | span(2/5) 616 | .disabled { 617 | cursor: not-allowed; 618 | opacity: .65; 619 | } 620 | 621 | 622 | 623 | -------------------------------------------------------------------------------- /页面框架.md: -------------------------------------------------------------------------------- 1 | # 页面结构 2 | 3 | 页面一共有 7 个部分组成,每个部分简介如下。 4 | 5 | 我画了一张示意图,主要目的是说清楚页面上有哪些内容,具体展示形式由设计师决定。画工不好请见谅。 6 | 7 | ![](https://i3.tietuku.com/e1a44f79b98c8cc2.jpg) 8 | 9 | ## 欢迎部分 10 | 11 | 这是首屏展示的内容,主要展示信息是大会logo、大会标题、时间、地点以及购票按钮。 12 | 13 | 大会标题:@Swift 14 | 15 | 副标题:Swift中国开发者大会 16 | 17 | 时间:2016年1月10日 18 | 19 | 地点:中国北京 20 | 21 | ## 大会介绍 22 | 23 | 这里会写3~4段话,介绍大会本身以及为什么要参加大会。 24 | 25 | 下面是具体的内容。 26 | 27 | ### @Conf团队主办 28 | 29 | 本次大会由@Conf团队主办。@Swift是我们组织的第一次大会,除了每年的@Swift大会,我们还会增加其他语言的技术大会,敬请期待。 30 | 31 | ### 开发者给开发者办的大会 32 | 33 | @Swift是由一群开发者组织的大会,非盈利,目的是给开发者们做一场真正的高质量的技术大会。大会的所有收入都会用在大会本身,任何组织成员禁止私自动用资金。 34 | 35 | ### 一场必须要去现场听的大会 36 | 37 | 大会结束后线上可以看到录像和嘉宾的Keynote。但是只有亲自到场你才能和国内外的顶级开发者面对面交流!看看下面的嘉宾列表,只需要一点勇气,就可以和这些大神直接对话! 38 | 39 | ## 嘉宾介绍 40 | 41 | 这里主要是嘉宾的头像、名字、公司/简介。 42 | 43 | 目前已经确定了四位嘉宾,下面列出他们的信息,不一定都要显示在网页上,仅供参考。具体的头像和个人介绍,网站出来之后我再和嘉宾进行确认,看是否要修改。 44 | 45 | ### onevcat 46 | 47 | 王巍,人称喵神,[微博](https://weibo.com/onevcat),中国人,目前在日本的 Line 工作。 48 | [Swifter 作者](https://item.jd.com/11685611.html)。 49 | 50 | ![头像](https://tp2.sinaimg.cn/2210132365/180/5631950628/1) 51 | 52 | ### Sam 53 | 54 | 旧金山的一位独立开发者,[个人网站](https://soff.es),在国外的 iOS 社区有很高的声望,开发过多款应用。 55 | 56 | ![头像](https://www.swiftsummit.com/images/speakers/sam.jpg) 57 | 58 | ### Chris 59 | 60 | [objc.io](https://objc.io)的维护者。 61 | 62 | ![头像](https://www.swiftsummit.com/images/speakers/chris.png) 63 | 64 | ### 李洁信 65 | 66 | [个人信息](https://xitu.io/85),前网易新闻客户端iOS核心开发,创业中,一年 Swift 开发经验。 67 | 68 | ![头像](https://xitu.io/avatars/u/1780854425.weibo.jpg) 69 | 70 | ## 大会议程 71 | 72 | 这里需要展示一天中每个议题的时间、议题对应嘉宾以及议题内容简介,可以是列表形式,也可以是时间线形式。 73 | 74 | 目前具体的议题还没有确定,这里的内容可以参考[深 JS](https://2015.jsconf.cn)的议程,形式一样。 75 | 76 | ## 赞助商 77 | 78 | 这里主要是赞助商的logo。 79 | 80 | ## 社区支持 81 | 82 | 这里主要是社区的logo。 83 | 84 | ## 会场地图 85 | 86 | 这里会用一张图或者一个地图插件来定位到会场,让大家知道到达会场的路线。 87 | 88 | 最简单的方式就是模仿深 JS,直接用百度或者高德的 JS 插件,如果愿意设计也可以做一张更有趣的图。 89 | 90 | ## footer 91 | 92 | 底部,一些大会相关的信息、设计师信息等等,没什么特别的内容,一个横条足矣。 93 | 94 | --------------------------------------------------------------------------------