├── .bowerrc ├── .editorconfig ├── .gitattributes ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── browserstack_logo.png ├── .gitignore ├── .hound.yml ├── .javascript_ignore ├── .jshintrc ├── .stylintrc ├── .travis.yml ├── LICENSE ├── README.cn.md ├── README.md ├── _config.yml ├── bower.json ├── gulpfile.coffee ├── languages ├── de.yml ├── default.yml ├── en.yml ├── fr-FR.yml ├── id.yml ├── it.yml ├── ja.yml ├── ko.yml ├── nl-NL.yml ├── pt-BR.yml ├── pt.yml ├── ru.yml ├── vi.yml ├── zh-Hans.yml ├── zh-hk.yml └── zh-tw.yml ├── layout ├── _custom │ ├── header.swig │ └── sidebar.swig ├── _layout.swig ├── _macro │ ├── post-collapse.swig │ ├── post-copyright.swig │ ├── post.swig │ ├── reward.swig │ ├── sidebar.swig │ └── wechat-subscriber.swig ├── _partials │ ├── comments.swig │ ├── footer.swig │ ├── head.swig │ ├── head │ │ ├── custom-head.swig │ │ └── external-fonts.swig │ ├── header.swig │ ├── page-header.swig │ ├── pagination.swig │ ├── search.swig │ ├── search │ │ ├── localsearch.swig │ │ ├── swiftype.swig │ │ └── tinysou.swig │ └── share │ │ ├── add-this.swig │ │ ├── baidushare.swig │ │ ├── duoshuo_share.swig │ │ └── jiathis.swig ├── _scripts │ ├── boostrap.swig │ ├── commons.swig │ ├── pages │ │ └── post-details.swig │ ├── schemes │ │ ├── gemini.swig │ │ ├── mist.swig │ │ ├── muse.swig │ │ └── pisces.swig │ └── vendors.swig ├── _third-party │ ├── analytics │ │ ├── analytics-with-widget.swig │ │ ├── application-insights.swig │ │ ├── baidu-analytics.swig │ │ ├── busuanzi-counter.swig │ │ ├── cnzz-analytics.swig │ │ ├── facebook-sdk.swig │ │ ├── firestore.swig │ │ ├── google-analytics.swig │ │ ├── index.swig │ │ ├── lean-analytics.swig │ │ ├── tencent-analytics.swig │ │ ├── tencent-mta.swig │ │ └── vkontakte-api.swig │ ├── comments │ │ ├── changyan.swig │ │ ├── disqus.swig │ │ ├── duoshuo.swig │ │ ├── gitment.swig │ │ ├── hypercomments.swig │ │ ├── index.swig │ │ ├── livere.swig │ │ ├── valine.swig │ │ └── youyan.swig │ ├── duoshuo-hot-articles.swig │ ├── exturl.swig │ ├── mathjax.swig │ ├── needsharebutton.swig │ ├── rating.swig │ ├── schedule.swig │ ├── scroll-cookie.swig │ ├── search │ │ ├── algolia-search │ │ │ ├── assets.swig │ │ │ └── dom.swig │ │ ├── index.swig │ │ ├── localsearch.swig │ │ └── tinysou.swig │ └── seo │ │ └── baidu-push.swig ├── archive.swig ├── category.swig ├── index.swig ├── page.swig ├── post.swig ├── schedule.swig └── tag.swig ├── package.json ├── scripts ├── merge-configs.js ├── merge.js └── tags │ ├── button.js │ ├── center-quote.js │ ├── exturl.js │ ├── full-image.js │ ├── group-pictures.js │ ├── label.js │ ├── lazy-image.js │ ├── note.js │ └── tabs.js ├── source ├── css │ ├── _common │ │ ├── components │ │ │ ├── back-to-top-sidebar.styl │ │ │ ├── back-to-top.styl │ │ │ ├── buttons.styl │ │ │ ├── comments.styl │ │ │ ├── components.styl │ │ │ ├── footer │ │ │ │ └── footer.styl │ │ │ ├── header │ │ │ │ ├── header.styl │ │ │ │ ├── headerband.styl │ │ │ │ ├── menu.styl │ │ │ │ ├── site-meta.styl │ │ │ │ └── site-nav.styl │ │ │ ├── highlight │ │ │ │ ├── diff.styl │ │ │ │ ├── highlight.styl │ │ │ │ └── theme.styl │ │ │ ├── pages │ │ │ │ ├── archive.styl │ │ │ │ ├── categories.styl │ │ │ │ ├── pages.styl │ │ │ │ ├── post-detail.styl │ │ │ │ └── schedule.styl │ │ │ ├── pagination.styl │ │ │ ├── post │ │ │ │ ├── post-button.styl │ │ │ │ ├── post-collapse.styl │ │ │ │ ├── post-copyright.styl │ │ │ │ ├── post-eof.styl │ │ │ │ ├── post-expand.styl │ │ │ │ ├── post-gallery.styl │ │ │ │ ├── post-meta.styl │ │ │ │ ├── post-nav.styl │ │ │ │ ├── post-reward.styl │ │ │ │ ├── post-rtl.styl │ │ │ │ ├── post-tags.styl │ │ │ │ ├── post-title.styl │ │ │ │ ├── post-type.styl │ │ │ │ ├── post-widgets.styl │ │ │ │ └── post.styl │ │ │ ├── sidebar │ │ │ │ ├── sidebar-author-links.styl │ │ │ │ ├── sidebar-author.styl │ │ │ │ ├── sidebar-blogroll.styl │ │ │ │ ├── sidebar-dimmer.styl │ │ │ │ ├── sidebar-feed-link.styl │ │ │ │ ├── sidebar-nav.styl │ │ │ │ ├── sidebar-toc.styl │ │ │ │ ├── sidebar-toggle.styl │ │ │ │ ├── sidebar.styl │ │ │ │ └── site-state.styl │ │ │ ├── tag-cloud.styl │ │ │ ├── tags │ │ │ │ ├── blockquote-center.styl │ │ │ │ ├── exturl.styl │ │ │ │ ├── full-image.styl │ │ │ │ ├── group-pictures.styl │ │ │ │ ├── label.styl │ │ │ │ ├── note-modern.styl │ │ │ │ ├── note.styl │ │ │ │ ├── tabs.styl │ │ │ │ └── tags.styl │ │ │ └── third-party │ │ │ │ ├── algolia-search.styl │ │ │ │ ├── baidushare.styl │ │ │ │ ├── busuanzi-counter.styl │ │ │ │ ├── duoshuo.styl │ │ │ │ ├── gitment.styl │ │ │ │ ├── han.styl │ │ │ │ ├── jiathis.styl │ │ │ │ ├── localsearch.styl │ │ │ │ ├── needsharebutton.styl │ │ │ │ └── third-party.styl │ │ ├── outline │ │ │ └── outline.styl │ │ └── scaffolding │ │ │ ├── base.styl │ │ │ ├── helpers.styl │ │ │ ├── mobile.styl │ │ │ ├── normalize.styl │ │ │ ├── scaffolding.styl │ │ │ └── tables.styl │ ├── _custom │ │ └── custom.styl │ ├── _mixins │ │ ├── Gemini.styl │ │ ├── Mist.styl │ │ ├── Muse.styl │ │ ├── Pisces.styl │ │ ├── base.styl │ │ └── custom.styl │ ├── _schemes │ │ ├── Gemini │ │ │ └── index.styl │ │ ├── Mist │ │ │ ├── _base.styl │ │ │ ├── _header.styl │ │ │ ├── _logo.styl │ │ │ ├── _menu.styl │ │ │ ├── _posts-expanded.styl │ │ │ ├── _search.styl │ │ │ ├── index.styl │ │ │ ├── outline │ │ │ │ └── outline.styl │ │ │ └── sidebar │ │ │ │ └── sidebar-blogroll.styl │ │ ├── Muse │ │ │ ├── _layout.styl │ │ │ ├── _logo.styl │ │ │ ├── _menu.styl │ │ │ ├── _search.styl │ │ │ ├── index.styl │ │ │ └── sidebar │ │ │ │ └── sidebar-blogroll.styl │ │ └── Pisces │ │ │ ├── _brand.styl │ │ │ ├── _layout.styl │ │ │ ├── _menu.styl │ │ │ ├── _posts.styl │ │ │ ├── _sidebar.styl │ │ │ └── index.styl │ ├── _variables │ │ ├── Gemini.styl │ │ ├── Mist.styl │ │ ├── Muse.styl │ │ ├── Pisces.styl │ │ ├── base.styl │ │ └── custom.styl │ └── main.styl ├── fonts │ └── .gitkeep ├── images │ ├── algolia_logo.svg │ ├── apple-touch-icon-next.png │ ├── avatar.gif │ ├── cc-by-nc-nd.svg │ ├── cc-by-nc-sa.svg │ ├── cc-by-nc.svg │ ├── cc-by-nd.svg │ ├── cc-by-sa.svg │ ├── cc-by.svg │ ├── cc-zero.svg │ ├── favicon-16x16-next.png │ ├── favicon-32x32-next.png │ ├── loading.gif │ ├── logo.svg │ ├── placeholder.gif │ ├── quote-l.svg │ ├── quote-r.svg │ └── searchicon.png ├── js │ └── src │ │ ├── affix.js │ │ ├── algolia-search.js │ │ ├── bootstrap.js │ │ ├── exturl.js │ │ ├── hook-duoshuo.js │ │ ├── js.cookie.js │ │ ├── motion.js │ │ ├── post-details.js │ │ ├── schemes │ │ └── pisces.js │ │ ├── scroll-cookie.js │ │ ├── scrollspy.js │ │ └── utils.js └── lib │ ├── Han │ └── dist │ │ ├── font │ │ ├── han-space.otf │ │ ├── han-space.woff │ │ ├── han.otf │ │ ├── han.woff │ │ └── han.woff2 │ │ ├── han.css │ │ ├── han.js │ │ ├── han.min.css │ │ └── han.min.js │ ├── algolia-instant-search │ ├── instantsearch.min.css │ └── instantsearch.min.js │ ├── canvas-nest │ └── canvas-nest.min.js │ ├── canvas-ribbon │ └── canvas-ribbon.js │ ├── fancybox │ ├── .bower.json │ ├── .gitattributes │ └── source │ │ ├── blank.gif │ │ ├── fancybox_loading.gif │ │ ├── fancybox_loading@2x.gif │ │ ├── fancybox_overlay.png │ │ ├── fancybox_sprite.png │ │ ├── fancybox_sprite@2x.png │ │ ├── helpers │ │ ├── fancybox_buttons.png │ │ ├── jquery.fancybox-buttons.css │ │ ├── jquery.fancybox-buttons.js │ │ ├── jquery.fancybox-media.js │ │ ├── jquery.fancybox-thumbs.css │ │ └── jquery.fancybox-thumbs.js │ │ ├── jquery.fancybox.css │ │ ├── jquery.fancybox.js │ │ └── jquery.fancybox.pack.js │ ├── fastclick │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── bower.json │ └── lib │ │ ├── fastclick.js │ │ └── fastclick.min.js │ ├── font-awesome │ ├── .bower.json │ ├── .gitignore │ ├── .npmignore │ ├── HELP-US-OUT.txt │ ├── bower.json │ ├── css │ │ ├── font-awesome.css │ │ ├── font-awesome.css.map │ │ └── font-awesome.min.css │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── jquery │ ├── .bower.json │ └── index.js │ ├── jquery_lazyload │ ├── .bower.json │ ├── CONTRIBUTING.md │ ├── README.md │ ├── bower.json │ ├── jquery.lazyload.js │ └── jquery.scrollstop.js │ ├── needsharebutton │ ├── font-embedded.css │ ├── needsharebutton.css │ └── needsharebutton.js │ ├── pace │ ├── pace-theme-barber-shop.min.css │ ├── pace-theme-big-counter.min.css │ ├── pace-theme-bounce.min.css │ ├── pace-theme-center-atom.min.css │ ├── pace-theme-center-circle.min.css │ ├── pace-theme-center-radar.min.css │ ├── pace-theme-center-simple.min.css │ ├── pace-theme-corner-indicator.min.css │ ├── pace-theme-fill-left.min.css │ ├── pace-theme-flash.min.css │ ├── pace-theme-loading-bar.min.css │ ├── pace-theme-mac-osx.min.css │ ├── pace-theme-minimal.min.css │ └── pace.min.js │ ├── three │ ├── canvas_lines.min.js │ ├── canvas_sphere.min.js │ ├── three-waves.min.js │ └── three.min.js │ ├── ua-parser-js │ └── dist │ │ ├── ua-parser.min.js │ │ └── ua-parser.pack.js │ └── velocity │ ├── .bower.json │ ├── bower.json │ ├── velocity.js │ ├── velocity.min.js │ ├── velocity.ui.js │ └── velocity.ui.min.js └── test ├── .jshintrc ├── helpers.js └── intern.js /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "source/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | indent_style = space 11 | indent_size = 2 12 | 13 | [*.py] 14 | indent_size = 4 15 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | source/lib/* linguist-vendored 2 | scripts/merge.js linguist-vendored 3 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Before submitting an issue, please search for the issue [here](https://github.com/iissnan/hexo-theme-next/issues?utf8=%E2%9C%93&q=) to find if the issue is already reported. 2 | 3 | Also, you can search for answers on the [NexT Documentation Site](http://theme-next.iissnan.com/): 4 | 5 | - [常见问题 - 中文文档](http://theme-next.iissnan.com/faqs.html) 6 | - FAQs (Work in progress) 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | THIS REPO IS NOT SUPPORTED ANYMORE! 2 | DON'T NEED CREATE ISSUE HERE! 3 | NEXT MOVED HERE: https://github.com/theme-next/hexo-theme-next 4 | 5 | NexT is rebased into organization repo https://github.com/theme-next 6 | If you want new feature, fix, or support, create new issue in NexT v6.x repo (desirable in English). 7 | 8 | There is instructions 9 | on English: https://github.com/theme-next/hexo-theme-next/blob/master/docs/UPDATE-FROM-5.1.X.md 10 | or Chinese: https://github.com/theme-next/hexo-theme-next/blob/master/docs/zh-CN/UPDATE-FROM-5.1.X.md 11 | how to update from v5.1.x to v 6.x 12 | 13 | You also may read this for details: https://github.com/iissnan/hexo-theme-next/issues/2061 14 | 15 | *** 16 | 17 | 该工程已不再提供任何支持与维护! 18 | 请大家不要再在这里创建issue了! 19 | NexT主题仓库已移动到此处: https://github.com/theme-next/hexo-theme-next 20 | 21 | NexT已经rebase到theme-next组织(https://github.com/theme-next) 的repo中. 22 | 如果你想要求新的特性,bug修复或其他支持,请在新的v6.x的仓库下创建新issue(最好用英文,谢谢) 23 | 24 | 25 | 英文文档: (https://github.com/theme-next/hexo-theme-next/blob/master/docs/UPDATE-FROM-5.1.X.md) 26 | 或中文文档: (https://github.com/theme-next/hexo-theme-next/blob/master/docs/zh-CN/UPDATE-FROM-5.1.X.md) 27 | 如何从 v5.1.x 更新到 v 6.x 28 | 29 | 相关细节参考这里: https://github.com/iissnan/hexo-theme-next/issues/2061 30 | -------------------------------------------------------------------------------- /.github/browserstack_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/.github/browserstack_logo.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | *.log 4 | *.iml 5 | yarn.lock 6 | package-lock.json 7 | node_modules/ 8 | 9 | # Ignore unused verdors' files 10 | source/lib/fancybox/* 11 | !source/lib/fancybox/source/ 12 | 13 | source/lib/font-awesome/less/ 14 | source/lib/font-awesome/scss/ 15 | 16 | source/lib/ua-parser-js/* 17 | !source/lib/ua-parser-js/dist/ 18 | 19 | source/lib/Han/* 20 | !source/lib/Han/dist/ 21 | -------------------------------------------------------------------------------- /.hound.yml: -------------------------------------------------------------------------------- 1 | javascript: 2 | enabled: true 3 | config_file: .jshintrc 4 | ignore_file: .javascript_ignore 5 | -------------------------------------------------------------------------------- /.javascript_ignore: -------------------------------------------------------------------------------- 1 | source/vendors/* 2 | source/lib/* 3 | source/js/src/affix.js 4 | source/js/src/scrollspy.js 5 | source/js/src/js.cookie.js 6 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi": false, 3 | "bitwise": true, 4 | "browser": true, 5 | "camelcase": true, 6 | "curly": true, 7 | "forin": true, 8 | "immed": true, 9 | "latedef": "nofunc", 10 | "maxlen": 120, 11 | "newcap": true, 12 | "noarg": true, 13 | "noempty": true, 14 | "nonew": true, 15 | "predef": [ 16 | "$", 17 | "jQuery", 18 | "NexT", 19 | "CONFIG" 20 | ], 21 | "quotmark": true, 22 | "trailing": true, 23 | "undef": true, 24 | "unused": true, 25 | 26 | "expr": true 27 | } 28 | -------------------------------------------------------------------------------- /.stylintrc: -------------------------------------------------------------------------------- 1 | { 2 | "blocks": false, 3 | "brackets": "always", 4 | "colons": "always", 5 | "colors": "always", 6 | "commaSpace": "always", 7 | "commentSpace": "always", 8 | "cssLiteral": "never", 9 | "customProperties": [], 10 | "depthLimit": false, 11 | "duplicates": true, 12 | "efficient": "always", 13 | "exclude": [], 14 | "extendPref": false, 15 | "globalDupe": false, 16 | "groupOutputByFile": true, 17 | "indentPref": false, 18 | "leadingZero": "never", 19 | "maxErrors": false, 20 | "maxWarnings": false, 21 | "mixed": false, 22 | "mixins": [], 23 | "namingConvention": "lowercase-dash", 24 | "namingConventionStrict": false, 25 | "none": "never", 26 | "noImportant": true, 27 | "parenSpace": false, 28 | "placeholders": "always", 29 | "prefixVarsWithDollar": "always", 30 | "quotePref": false, 31 | "reporterOptions": { 32 | "columns": ["lineData", "severity", "description", "rule"], 33 | "columnSplitter": " ", 34 | "showHeaders": false, 35 | "truncate": true 36 | }, 37 | "semicolons": "always", 38 | "sortOrder": "grouped", 39 | "stackedProperties": false, 40 | "trailingWhitespace": "never", 41 | "universal": false, 42 | "valid": true, 43 | "zeroUnits": "never", 44 | "zIndexNormalize": false 45 | } 46 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: node 3 | 4 | cache: 5 | directories: 6 | - node_modules 7 | 8 | install: npm install 9 | 10 | before_script: 11 | - npm install -g gulp 12 | 13 | addons: 14 | browserstack: 15 | username: "ivannginx1" 16 | access_key: 17 | secure: "NutOhdgtUdBUXMPZhy8X1F1Jq+tan1LeNOV0FArBt15SNlxtNArqhiyTi4XnG9MPruX4306aGF2RBrKso+OiGNRdGtRGngH613Q0GWNtlC/boMqnI7fHqLIyCs6S12y2uA8PK4Ifxg9bZ0VtCTYYbMy+p1KvBM//L12vmtfdnby8z5Qvex3tB3dLoPOR50CKkINHJVDLm+iVRFrdz4/83oDsulZSRRGIaxu5taDWPIcp3fYZtre2Nc+RXcsyFDyjN7U0Hvr5tKBbloJxXEQEBv2xLkMOtp85nmCPD06s1Il8Wus1ux3raVsfUyaW5FpNX37Jeb5e00RQUM1wgU5m75H6qiGwDvQswbugJG0i/a2nNfsgVmbrSZdMnkHcx2Uxmrw4ejyEP5NSrJSBi05Ck1fQ4UsZ4Qkdf1fd04SI0LpLWt43eoNO/7rHKsQoP4LCX9gxKUuC075NEBLODyJ529RYfA6dKKwwH6o0ZbOgASmCoAWaM65g4+FHRnJcKL/Kj9ZWklQtRa7/ynlHaA65jefFS2lB8Ut6d3rXDDBih9mIrwV1uUaEH96xgAN42bgU/vY6FGzNkDOYZqj4YfsepDM0wbOsslFie7JZq7iFjsYvrXqLvYUMk37AZwQ2Sb6uH4tIT4Qw/4oZfDzA1En3/8HdZJ28nKW/lzjwMSqheIY=" 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2014-2017 iissnan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "isn-next", 3 | "version": "5.1.4", 4 | "homepage": "https://github.com/iissnan/hexo-theme-next", 5 | "authors": [ 6 | "iissnan " 7 | ], 8 | "description": "Elegant theme for Hexo", 9 | "repository": "https://github.com/iissnan/hexo-theme-next", 10 | "keywords": [ 11 | "hexo", 12 | "notes", 13 | "theme", 14 | "iissnan", 15 | "NexT" 16 | ], 17 | "license": "MIT", 18 | "ignore": [ 19 | "**/.*", 20 | "node_modules", 21 | "bower_components", 22 | "source/lib", 23 | "test", 24 | "tests", 25 | "screenshots" 26 | ], 27 | "dependencies": { 28 | "fancybox": "~2.1.5", 29 | "velocity": "~1.2.1", 30 | "jquery": "http://code.jquery.com/jquery-2.1.3.min.js", 31 | "fastclick": "~1.0.6", 32 | "font-awesome": "fontawesome#*", 33 | "jquery_lazyload": "jquery.lazyload#~1.9.7", 34 | "ua-parser-js": "~0.7.9", 35 | "Han": "^3.3.0" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /gulpfile.coffee: -------------------------------------------------------------------------------- 1 | fs = require('fs') 2 | path = require('path') 3 | gulp = require('gulp') 4 | jshint = require('gulp-jshint') 5 | stylish = require('jshint-stylish') 6 | shell = require('gulp-shell') 7 | yaml = require('js-yaml') 8 | 9 | gulp.task 'lint', -> 10 | return gulp.src([ 11 | './source/js/src/utils.js', 12 | './source/js/src/motion.js', 13 | './source/js/src/hook-duoshuo.js', 14 | './source/js/src/algolia-search.js', 15 | './source/js/src/bootstrap.js', 16 | './source/js/src/post-details.js', 17 | './source/js/src/schemes/pisces.js' 18 | ]).pipe jshint() 19 | .pipe jshint.reporter(stylish) 20 | 21 | gulp.task 'lint:stylus', shell.task [ 22 | '"./node_modules/.bin/stylint" ./source/css/' 23 | ] 24 | 25 | gulp.task 'validate:config', (cb) -> 26 | themeConfig = fs.readFileSync path.join(__dirname, '_config.yml') 27 | 28 | try 29 | yaml.safeLoad(themeConfig) 30 | cb() 31 | catch error 32 | cb new Error(error) 33 | 34 | gulp.task 'validate:languages', (cb) -> 35 | languagesPath = path.join __dirname, 'languages' 36 | languages = fs.readdirSync languagesPath 37 | errors = [] 38 | 39 | for lang in languages 40 | languagePath = path.join languagesPath, lang 41 | try 42 | yaml.safeLoad fs.readFileSync(languagePath), { 43 | filename: path.relative(__dirname, languagePath) 44 | } 45 | catch error 46 | errors.push error 47 | 48 | if errors.length == 0 49 | cb() 50 | else 51 | cb(errors) 52 | 53 | 54 | gulp.task 'default', ['lint', 'validate:config', 'validate:languages'] 55 | -------------------------------------------------------------------------------- /languages/de.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Archiv 3 | category: Kategorie 4 | tag: Tag 5 | 6 | author: Author 7 | 8 | menu: 9 | home: Startseite 10 | archives: Archiv 11 | categories: Kategorien 12 | tags: Tags 13 | about: Über 14 | feed: RSS 15 | search: Suche 16 | 17 | sidebar: 18 | overview: Übersicht 19 | toc: Inhaltsverzeichnis 20 | 21 | post: 22 | created: Post created 23 | sticky: Sticky 24 | posted: Veröffentlicht am 25 | modified: Updated at 26 | in: in 27 | read_more: Weiterlesen 28 | untitled: Unbenannt 29 | toc_empty: Dieser Artikel hat kein Inhaltsverzeichnis 30 | visitors: Visitors 31 | wordcount: Words count in article 32 | min2read: Reading time 33 | totalcount: Site words total count 34 | copyright: 35 | author: Post author 36 | link: Post link 37 | license_title: Copyright Notice 38 | license_content: 'All articles in this blog are licensed under 39 | %s unless stating additionally.' 40 | 41 | page: 42 | totally: Gesamt 43 | tags: tags 44 | 45 | footer: 46 | powered: "Erstellt mit %s" 47 | theme: Theme 48 | 49 | counter: 50 | tag_cloud: 51 | zero: Keine Tags 52 | one: Insgesamt ein Tag 53 | other: "Insgesamt %d Tags" 54 | 55 | categories: 56 | zero: Keine Kategorien 57 | one: Insgesamt eine Kategorie 58 | other: "Insgesamt %d Kategorien" 59 | 60 | archive_posts: 61 | zero: Keine Artikel vorhanden. 62 | one: Ein Artikel. 63 | other: "Insgesamt %d Artikel." 64 | 65 | state: 66 | posts: Artikel 67 | pages: Seiten 68 | tags: Tags 69 | categories: Kategorien 70 | 71 | cheers: 72 | um: Öhm.. 73 | ok: OK 74 | nice: Schön 75 | good: Gut 76 | great: Wunderbar 77 | excellent: Exzellent 78 | 79 | keep_on: Bleib dran. 80 | 81 | symbol: 82 | comma: '. ' 83 | period: ', ' 84 | colon: ':' 85 | 86 | reward: 87 | donate: Donate 88 | wechatpay: WeChat Pay 89 | alipay: Alipay 90 | bitcoin: Bitcoin 91 | -------------------------------------------------------------------------------- /languages/default.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Archive 3 | category: Category 4 | tag: Tag 5 | schedule: Schedule 6 | 7 | author: Author 8 | 9 | menu: 10 | home: Home 11 | archives: Archives 12 | categories: Categories 13 | tags: Tags 14 | about: About 15 | search: Search 16 | schedule: Schedule 17 | sitemap: Sitemap 18 | commonweal: Commonweal 404 19 | 20 | sidebar: 21 | overview: Overview 22 | toc: Table of Contents 23 | 24 | post: 25 | created: Post created 26 | modified: Post modified 27 | sticky: Sticky 28 | posted: Posted on 29 | in: In 30 | more: more 31 | read_more: Read more 32 | untitled: Untitled 33 | toc_empty: This post does not have a Table of Contents 34 | visitors: Visitors 35 | wordcount: Words count in article 36 | min2read: Reading time 37 | totalcount: Site words total count 38 | copyright: 39 | author: Post author 40 | link: Post link 41 | license_title: Copyright Notice 42 | license_content: 'All articles in this blog are licensed under 43 | %s unless stating additionally.' 44 | 45 | page: 46 | totally: Totally 47 | tags: tags 48 | 49 | footer: 50 | powered: "Powered by %s" 51 | theme: Theme 52 | 53 | counter: 54 | tag_cloud: 55 | zero: No tags 56 | one: 1 tag in total 57 | other: "%d tags in total" 58 | 59 | categories: 60 | zero: No categories 61 | one: 1 category in total 62 | other: "%d categories in total" 63 | 64 | archive_posts: 65 | zero: No posts. 66 | one: 1 post. 67 | other: "%d posts in total." 68 | 69 | state: 70 | posts: posts 71 | pages: pages 72 | tags: tags 73 | categories: categories 74 | 75 | search: 76 | placeholder: Searching... 77 | 78 | cheers: 79 | um: Um.. 80 | ok: OK 81 | nice: Nice 82 | good: Good 83 | great: Great 84 | excellent: Excellent 85 | 86 | keep_on: Keep on posting. 87 | 88 | symbol: 89 | comma: ', ' 90 | period: '. ' 91 | colon: ':' 92 | 93 | reward: 94 | donate: Donate 95 | wechatpay: WeChat Pay 96 | alipay: Alipay 97 | bitcoin: Bitcoin 98 | -------------------------------------------------------------------------------- /languages/en.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Archive 3 | category: Category 4 | tag: Tag 5 | schedule: Schedule 6 | 7 | author: Author 8 | 9 | menu: 10 | home: Home 11 | archives: Archives 12 | categories: Categories 13 | tags: Tags 14 | about: About 15 | search: Search 16 | schedule: Schedule 17 | sitemap: Sitemap 18 | commonweal: Commonweal 404 19 | 20 | sidebar: 21 | overview: Overview 22 | toc: Table of Contents 23 | 24 | post: 25 | created: Post created 26 | modified: Post modified 27 | sticky: Sticky 28 | posted: Posted on 29 | in: In 30 | more: more 31 | read_more: Read more 32 | untitled: Untitled 33 | toc_empty: This post does not have a Table of Contents 34 | visitors: Visitors 35 | wordcount: Words count in article 36 | min2read: Reading time 37 | totalcount: Site words total count 38 | copyright: 39 | author: Post author 40 | link: Post link 41 | license_title: Copyright Notice 42 | license_content: 'All articles in this blog are licensed under 43 | %s unless stating additionally.' 44 | 45 | page: 46 | totally: Totally 47 | tags: tags 48 | 49 | footer: 50 | powered: "Powered by %s" 51 | theme: Theme 52 | 53 | counter: 54 | tag_cloud: 55 | zero: No tags 56 | one: 1 tag in total 57 | other: "%d tags in total" 58 | 59 | categories: 60 | zero: No categories 61 | one: 1 category in total 62 | other: "%d categories in total" 63 | 64 | archive_posts: 65 | zero: No posts. 66 | one: 1 post. 67 | other: "%d posts in total." 68 | 69 | state: 70 | posts: posts 71 | pages: pages 72 | tags: tags 73 | categories: categories 74 | 75 | search: 76 | placeholder: Searching... 77 | 78 | cheers: 79 | um: Um.. 80 | ok: OK 81 | nice: Nice 82 | good: Good 83 | great: Great 84 | excellent: Excellent 85 | 86 | keep_on: Keep on posting. 87 | 88 | symbol: 89 | comma: ', ' 90 | period: '. ' 91 | colon: ':' 92 | 93 | reward: 94 | donate: Donate 95 | wechatpay: WeChat Pay 96 | alipay: Alipay 97 | bitcoin: Bitcoin 98 | 99 | gitmentbutton: Show comments from Gitment 100 | -------------------------------------------------------------------------------- /languages/fr-FR.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Archive 3 | category: Catégorie 4 | tag: Tag 5 | 6 | author: Author 7 | 8 | menu: 9 | home: Accueil 10 | archives: Archives 11 | categories: Categories 12 | tags: Tags 13 | about: A propos 14 | search: recherche 15 | 16 | sidebar: 17 | overview: Ensemble 18 | toc: Table Des Matières 19 | 20 | post: 21 | sticky: Sticky 22 | posted: Posté le 23 | modified: Updated at 24 | in: In 25 | read_more: Lire la suite 26 | untitled: Non titré 27 | toc_empty: This post does not have a Table of Contents 28 | visitors: Visitors 29 | wordcount: Words count in article 30 | min2read: Reading time 31 | totalcount: Site words total count 32 | copyright: 33 | author: Post author 34 | link: Post link 35 | license_title: Copyright Notice 36 | license_content: 'All articles in this blog are licensed under 37 | %s unless stating additionally.' 38 | 39 | page: 40 | totally: Total 41 | tags: tags 42 | 43 | footer: 44 | powered: "Powered by %s" 45 | theme: Thème 46 | 47 | counter: 48 | tag_cloud: 49 | zero: Aucun tags 50 | one: 1 tag au total 51 | other: "%d tags au total" 52 | 53 | categories: 54 | zero: Aucun categories 55 | one: 1 category au total 56 | other: "%d categories au total" 57 | 58 | archive_posts: 59 | zero: Aucun article. 60 | one: 1 article. 61 | other: "%d articles au total." 62 | 63 | state: 64 | posts: articles 65 | pages: pages 66 | tags: tags 67 | categories: categories 68 | 69 | cheers: 70 | um: Um.. 71 | ok: OK 72 | nice: Jolie 73 | good: Bien 74 | great: Super 75 | excellent: Excellent 76 | 77 | keep_on: Et ca ne fait que commencer. 78 | 79 | symbol: 80 | comma: ', ' 81 | period: '. ' 82 | colon: ':' 83 | 84 | reward: 85 | donate: Donate 86 | wechatpay: WeChat Pay 87 | alipay: Alipay 88 | bitcoin: Bitcoin 89 | -------------------------------------------------------------------------------- /languages/id.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Arsip 3 | category: Kategori 4 | tag: Tag 5 | 6 | author: Penulis 7 | 8 | menu: 9 | home: Beranda 10 | archives: Arsip 11 | categories: Kategori 12 | tags: Tags 13 | about: Tentang 14 | search: Pencarian 15 | 16 | sidebar: 17 | overview: Ikhtisar 18 | toc: Daftar Isi 19 | 20 | post: 21 | sticky: Sticky 22 | posted: Diposting di 23 | modified: Updated at 24 | in: Di 25 | read_more: Baca lebih 26 | untitled: Tidak ada title 27 | toc_empty: Posting ini tidak memiliki Daftar Isi 28 | visitors: Pengunjung 29 | wordcount: Words count in article 30 | min2read: Reading time 31 | totalcount: Site words total count 32 | copyright: 33 | author: Post author 34 | link: Post link 35 | license_title: Copyright Notice 36 | license_content: 'All articles in this blog are licensed under 37 | %s unless stating additionally.' 38 | 39 | page: 40 | totally: Total 41 | tags: tags 42 | 43 | footer: 44 | powered: "Powered by %s" 45 | theme: Tema 46 | 47 | counter: 48 | tag_cloud: 49 | zero: Tidak ada tags 50 | one: 1 total tag 51 | other: "%d total tags" 52 | 53 | categories: 54 | zero: Tidak ada kategori 55 | one: 1 total categori 56 | other: "%d total kategori" 57 | 58 | archive_posts: 59 | zero: Tidak ada posting. 60 | one: 1 posting. 61 | other: "%d total posting." 62 | 63 | state: 64 | posts: posting 65 | pages: halaman 66 | tags: tags 67 | categories: kategori 68 | 69 | cheers: 70 | um: Um.. 71 | ok: OK 72 | nice: Bagus 73 | good: Bagus 74 | great: Besar 75 | excellent: Baik 76 | 77 | keep_on: Terus Posting. 78 | 79 | symbol: 80 | comma: ', ' 81 | period: '. ' 82 | colon: ':' 83 | 84 | reward: 85 | donate: Donate 86 | wechatpay: WeChat Pay 87 | alipay: Alipay 88 | bitcoin: Bitcoin 89 | -------------------------------------------------------------------------------- /languages/it.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Archivio 3 | category: Categoria 4 | tag: Tag 5 | schedule: Programma 6 | 7 | author: Autore 8 | 9 | menu: 10 | home: Home 11 | archives: Archivi 12 | categories: Categorie 13 | tags: Tags 14 | about: Informazioni su 15 | search: Cerca 16 | schedule: Programma 17 | sitemap: Sitemap 18 | commonweal: Commonweal 404 19 | 20 | sidebar: 21 | overview: Panoramica 22 | toc: Indice 23 | 24 | post: 25 | created: Post creato 26 | modified: Post modificato 27 | sticky: Sticky 28 | posted: Scritto il 29 | in: In 30 | more: espandi 31 | read_more: Leggi di più 32 | untitled: Senza titolo 33 | toc_empty: Questo post non ha un indice 34 | visitors: Visitatori 35 | wordcount: Numero di parole nell'articolo 36 | min2read: Tempo di lettura 37 | totalcount: Numero totale di parole 38 | copyright: 39 | author: Autore 40 | link: Link 41 | license_title: Copyright 42 | license_content: 'Tutti gli articoli in questo sito sono sotto licenza 43 | %s salvo disposizione contraria.' 44 | 45 | page: 46 | totally: Totale 47 | tags: tags 48 | 49 | footer: 50 | powered: "Powered by %s" 51 | theme: Tema 52 | 53 | counter: 54 | tag_cloud: 55 | zero: Nessun tag 56 | one: 1 tag in totale 57 | other: "%d tags in totale." 58 | 59 | categories: 60 | zero: Nessuna categoria 61 | one: 1 categoria in totale 62 | other: "%d categorie in totale." 63 | 64 | archive_posts: 65 | zero: Nessun post. 66 | one: 1 post. 67 | other: "%d posts in totale." 68 | 69 | state: 70 | posts: posts 71 | pages: pagine 72 | tags: tags 73 | categories: categorie 74 | 75 | search: 76 | placeholder: Cerca... 77 | 78 | cheers: 79 | um: Mh.. 80 | ok: OK 81 | nice: Bello 82 | good: Buono 83 | great: Ottimo 84 | excellent: Eccellente 85 | 86 | keep_on: Continua così. 87 | 88 | symbol: 89 | comma: ', ' 90 | period: '. ' 91 | colon: ':' 92 | 93 | reward: 94 | donate: Dona 95 | wechatpay: WeChat Pay 96 | alipay: Alipay 97 | bitcoin: Bitcoin 98 | -------------------------------------------------------------------------------- /languages/ja.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: アーカイブ 3 | category: カテゴリ 4 | tag: タグ 5 | 6 | author: Author 7 | 8 | menu: 9 | home: ホーム 10 | archives: アーカイブ 11 | categories: カテゴリ 12 | tags: タグ 13 | about: About 14 | search: 検索 15 | 16 | sidebar: 17 | overview: 概要 18 | toc: 見出し 19 | 20 | post: 21 | sticky: 固定 22 | posted: 投稿日 23 | modified: Updated at 24 | in: In 25 | read_more: 続きを読む 26 | untitled: 無題 27 | toc_empty: 見出しがありません 28 | visitors: Visitors 29 | wordcount: Words count in article 30 | min2read: Reading time 31 | totalcount: Site words total count 32 | copyright: 33 | author: Post author 34 | link: Post link 35 | license_title: Copyright Notice 36 | license_content: 'All articles in this blog are licensed under 37 | %s unless stating additionally.' 38 | 39 | page: 40 | totally: 全ページ 41 | tags: タグ 42 | 43 | footer: 44 | powered: "Powered by %s" 45 | theme: Theme 46 | 47 | counter: 48 | tag_cloud: 49 | zero: タグなし 50 | one: "全 1 タグ" 51 | other: "全 %d タグ" 52 | 53 | categories: 54 | zero: カテゴリなし 55 | one: "全 1 カテゴリ" 56 | other: "全 %d カテゴリ" 57 | 58 | archive_posts: 59 | zero: ポストなし 60 | one: "全 1 ポスト" 61 | other: "全 %d ポスト" 62 | 63 | state: 64 | posts: ポスト 65 | pages: ページ 66 | tags: タグ 67 | categories: カテゴリ 68 | 69 | cheers: 70 | um: うーん 71 | ok: OK 72 | nice: まあまあ 73 | good: いいね 74 | great: すごい 75 | excellent: 最高 76 | 77 | keep_on: もっと書こう! 78 | 79 | symbol: 80 | comma: ', ' 81 | period: '. ' 82 | colon: ':' 83 | 84 | reward: 85 | donate: Donate 86 | wechatpay: WeChat Pay 87 | alipay: Alipay 88 | bitcoin: Bitcoin 89 | -------------------------------------------------------------------------------- /languages/ko.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: 아카이브 3 | category: 카테고리 4 | tag: 태그 5 | 6 | author: 작성자 7 | 8 | menu: 9 | home: 홈 10 | archives: 아카이브 11 | categories: 카테고리 12 | tags: 태그 13 | about: About 14 | search: 검색 15 | 16 | sidebar: 17 | overview: 흝어보기 18 | toc: 목차 19 | 20 | post: 21 | sticky: 고정 22 | posted: 작성일 23 | modified: Updated at 24 | in: In 25 | read_more: 더 읽어보기 26 | untitled: 제목 없음 27 | toc_empty: 목차 없음 28 | visitors: 방문객 29 | wordcount: Words count in article 30 | min2read: Reading time 31 | totalcount: Site words total count 32 | copyright: 33 | author: Post author 34 | link: Post link 35 | license_title: Copyright Notice 36 | license_content: 'All articles in this blog are licensed under 37 | %s unless stating additionally.' 38 | 39 | page: 40 | totally: 모두 41 | tags: 태그 42 | 43 | footer: 44 | powered: "Powered by %s" 45 | theme: Theme 46 | 47 | counter: 48 | tag_cloud: 49 | zero: 태그 없음 50 | one: 1개의 태그 51 | other: "총 %d개의 태그" 52 | 53 | categories: 54 | zero: 카테고리 없음 55 | one: 1개의 카테고리 56 | other: "총 %d개의 카테고리" 57 | 58 | archive_posts: 59 | zero: 포스트 없음 60 | one: 1개의 포스트 61 | other: "총 %d개의 포스트" 62 | 63 | state: 64 | posts: 포스트 65 | pages: 페이지 66 | tags: 태그 67 | categories: 카테고리 68 | 69 | cheers: 70 | um: 음.. 71 | ok: OK 72 | nice: 잘했어요 73 | good: 좋아요 74 | great: 훌륭해요 75 | excellent: 완벽해요 76 | 77 | keep_on: 포스트를 마저 작성하세요 78 | 79 | symbol: 80 | comma: ', ' 81 | period: '. ' 82 | colon: ':' 83 | 84 | reward: 85 | donate: Donate 86 | wechatpay: WeChat Pay 87 | alipay: Alipay 88 | bitcoin: Bitcoin 89 | -------------------------------------------------------------------------------- /languages/nl-NL.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Archief 3 | category: Categorie 4 | tag: Label 5 | schedule: Rooster 6 | 7 | author: Auteur 8 | 9 | menu: 10 | home: Home 11 | archives: Archieven 12 | categories: Categorieën 13 | tags: Labels 14 | about: Over 15 | search: Zoeken 16 | schedule: Rooster 17 | sitemap: Sitemap 18 | commonweal: Gezond verstand 404 19 | 20 | sidebar: 21 | overview: Overzicht 22 | toc: Inhoudsopgave 23 | 24 | post: 25 | created: Post aangemaakt 26 | modified: Post aangepast 27 | sticky: Sticky 28 | posted: Geplaatst op 29 | in: In 30 | more: meer 31 | read_more: Lees meer 32 | untitled: Naamloos 33 | toc_empty: Deze post heeft geen inhoudsopgave 34 | visitors: Bezoekers 35 | wordcount: Aantal woorden in artikel 36 | min2read: Leestijd 37 | totalcount: Aantal woorden in site 38 | copyright: 39 | author: Post auteur 40 | link: Post link 41 | license_title: Copyright melding 42 | license_content: 'Alle artikelen op deze blog zijn gelicenseerd onder 43 | %s, mits niet anders aangegeven.' 44 | 45 | page: 46 | totally: Totaal 47 | tags: labels 48 | 49 | footer: 50 | powered: "Mede mogelijk gemaakt door %s" 51 | theme: Thema 52 | 53 | counter: 54 | tag_cloud: 55 | zero: Geen labels 56 | one: 1 label in totaal 57 | other: "%d labels in totaal" 58 | 59 | categories: 60 | zero: Geen categorieën 61 | one: 1 categorie in totaal 62 | other: "%d categorieën in totaal" 63 | 64 | archive_posts: 65 | zero: Geen posts. 66 | one: 1 post. 67 | other: "%d posts in totaal." 68 | 69 | state: 70 | posts: posts 71 | pages: pagina's 72 | tags: labels 73 | categories: categorieën 74 | 75 | search: 76 | placeholder: Zoeken... 77 | 78 | cheers: 79 | um: Um.. 80 | ok: Oké 81 | nice: Leuk 82 | good: Goed 83 | great: Geweldig 84 | excellent: Uitstekend 85 | 86 | keep_on: Blijf posten. 87 | 88 | symbol: 89 | comma: ', ' 90 | period: '. ' 91 | colon: ':' 92 | 93 | reward: 94 | donate: Doneer 95 | wechatpay: WeChat Pay 96 | alipay: Alipay 97 | bitcoin: Bitcoin 98 | -------------------------------------------------------------------------------- /languages/pt-BR.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Arquivo 3 | category: Categoria 4 | tag: Tag 5 | 6 | author: Autor 7 | 8 | menu: 9 | home: Home 10 | archives: Arquivos 11 | categories: Categorias 12 | tags: Tags 13 | about: Sobre 14 | search: Pesquisar 15 | 16 | sidebar: 17 | overview: Visão geral 18 | toc: Tabela de conteúdo 19 | 20 | post: 21 | sticky: Sticky 22 | posted: Postado em 23 | modified: Updated at 24 | in: Em 25 | read_more: Leia mais 26 | untitled: Sem título 27 | toc_empty: Este post não possui tabela de conteúdo 28 | visitors: Visitantes 29 | wordcount: Words count in article 30 | min2read: Reading time 31 | totalcount: Site words total count 32 | copyright: 33 | author: Post author 34 | link: Post link 35 | license_title: Copyright Notice 36 | license_content: 'All articles in this blog are licensed under 37 | %s unless stating additionally.' 38 | 39 | page: 40 | totally: Totalmente 41 | tags: tags 42 | 43 | footer: 44 | powered: "Feito com %s" 45 | theme: Tema 46 | 47 | counter: 48 | tag_cloud: 49 | zero: Sem tags 50 | one: 1 tag no total de 51 | other: "%d tags no total de" 52 | 53 | categories: 54 | zero: Sem categoria 55 | one: 1 categoria no total de 56 | other: "%d categoria no total de" 57 | 58 | archive_posts: 59 | zero: Sem posts. 60 | one: 1 post. 61 | other: "%d posts no total." 62 | 63 | state: 64 | posts: Posts 65 | pages: Páginas 66 | tags: Tags 67 | categories: Categorias 68 | 69 | cheers: 70 | um: Uhmmmm... 71 | ok: OK 72 | nice: Bom 73 | good: Muito Bom 74 | great: Ótimo 75 | excellent: Excelente 76 | 77 | keep_on: Continuar no post. 78 | 79 | symbol: 80 | comma: '. ' 81 | period: ', ' 82 | colon: ':' 83 | 84 | reward: 85 | donate: Donate 86 | wechatpay: WeChat Pay 87 | alipay: Alipay 88 | bitcoin: Bitcoin 89 | -------------------------------------------------------------------------------- /languages/pt.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Arquivo 3 | category: Categoria 4 | tag: Tag 5 | 6 | author: Author 7 | 8 | menu: 9 | home: Home 10 | archives: Arquivos 11 | categories: Categorias 12 | tags: Tags 13 | about: Sobre 14 | search: Pesquisa 15 | 16 | sidebar: 17 | overview: Visão Geral 18 | toc: Tabela de Conteúdo 19 | 20 | post: 21 | sticky: Sticky 22 | posted: Postado em 23 | modified: Updated at 24 | in: Em 25 | read_more: Ler mais 26 | untitled: Sem título 27 | toc_empty: Esta publicação não possui uma tabela de conteúdo 28 | visitors: Visitors 29 | wordcount: Words count in article 30 | min2read: Reading time 31 | totalcount: Site words total count 32 | copyright: 33 | author: Post author 34 | link: Post link 35 | license_title: Copyright Notice 36 | license_content: 'All articles in this blog are licensed under 37 | %s unless stating additionally.' 38 | 39 | page: 40 | totally: Totalmente 41 | tags: tags 42 | 43 | footer: 44 | powered: "Desenvolvido com amor com %s" 45 | theme: Tema 46 | 47 | counter: 48 | tag_cloud: 49 | zero: Sem tags 50 | one: 1 tag no total 51 | other: "%d tags no total" 52 | 53 | categories: 54 | zero: Sem categorias 55 | one: 1 categoria no total 56 | other: "%d categorias no total" 57 | 58 | archive_posts: 59 | zero: Sem publicações. 60 | one: 1 post. 61 | other: "%d publicações no total." 62 | 63 | state: 64 | posts: publicações 65 | pages: páginas 66 | tags: tags 67 | categories: categorias 68 | 69 | cheers: 70 | um: Um.. 71 | ok: OK 72 | nice: Legal 73 | good: Bom 74 | great: Grandioso 75 | excellent: Excelente 76 | 77 | keep_on: Mantenha-se publicando! 78 | 79 | symbol: 80 | comma: ', ' 81 | period: '. ' 82 | colon: ':' 83 | 84 | reward: 85 | donate: Donate 86 | wechatpay: WeChat Pay 87 | alipay: Alipay 88 | bitcoin: Bitcoin 89 | -------------------------------------------------------------------------------- /languages/vi.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: Lưu Trữ 3 | category: Phân Loại 4 | tag: Thẻ 5 | schedule: Danh Mục 6 | 7 | author: Tác giả 8 | 9 | menu: 10 | home: Trang Chủ 11 | archives: Lưu Trữ 12 | categories: Đầu Mục 13 | tags: Thẻ 14 | about: Giới Thiệu 15 | search: Tìm Kiếm 16 | schedule: Danh Mục 17 | sitemap: Bản đồ trang 18 | commonweal: Commonweal 404 19 | 20 | sidebar: 21 | overview: Tổng Quan 22 | toc: Mục Lục 23 | 24 | post: 25 | created: Được tạo 26 | modified: Được thay đổi 27 | sticky: Đính 28 | posted: Tạo lúc 29 | in: Trong 30 | more: thêm 31 | read_more: Đọc tiếp 32 | untitled: Không có tiêu đề 33 | toc_empty: Bài viết này không có mục lục 34 | visitors: Người xem 35 | wordcount: Số từ trong bài viết 36 | min2read: Thời gian đọc 37 | totalcount: Số từ trong trang 38 | copyright: 39 | author: Người viết 40 | link: Liên kết bài viết 41 | license_title: Chú ý bản quyền 42 | license_content: 'Tất cả bài viết trong blog này được đăng ký bởi 43 | %s trừ khi có thông báo bổ sung.' 44 | 45 | page: 46 | totally: Toàn bộ 47 | tags: thẻ 48 | 49 | footer: 50 | powered: "Cung cấp bởi %s" 51 | theme: Giao Diện 52 | 53 | counter: 54 | tag_cloud: 55 | zero: Không có thẻ nào 56 | one: có 1 thẻ tất cả 57 | other: "có %d thẻ tất cả" 58 | 59 | categories: 60 | zero: Không có trong mục nào 61 | one: có 1 mục tất cả 62 | other: "có %d mục tất cả" 63 | 64 | archive_posts: 65 | zero: Không có bài viết. 66 | one: 1 bài viết. 67 | other: "tổng số %d bài viết." 68 | 69 | state: 70 | posts: bài viết 71 | pages: trang 72 | tags: thẻ 73 | categories: mục 74 | 75 | search: 76 | placeholder: Đang tìm... 77 | 78 | cheers: 79 | um: Um.. 80 | ok: Đồng Ý 81 | nice: Hay 82 | good: Tốt 83 | great: Tuyệt vời 84 | excellent: Tuyệt cú mèo 85 | 86 | keep_on: Giữ tiến độ nha. 87 | 88 | symbol: 89 | comma: ', ' 90 | period: '. ' 91 | colon: ':' 92 | 93 | reward: 94 | donate: Tài trợ 95 | wechatpay: WeChat Pay 96 | alipay: Alipay 97 | bitcoin: Bitcoin 98 | 99 | gitmentbutton: Hiển thị bình luận từ Gitment 100 | -------------------------------------------------------------------------------- /languages/zh-Hans.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: 归档 3 | category: 分类 4 | tag: 标签 5 | schedule: 日程表 6 | 7 | author: 博主 8 | 9 | menu: 10 | home: 首页 11 | archives: 归档 12 | categories: 分类 13 | tags: 标签 14 | about: 关于 15 | search: 搜索 16 | schedule: 日程表 17 | sitemap: 站点地图 18 | commonweal: 公益404 19 | 20 | sidebar: 21 | overview: 站点概览 22 | toc: 文章目录 23 | 24 | post: 25 | created: 创建于 26 | modified: 更新于 27 | sticky: 置顶 28 | posted: 发表于 29 | in: 分类于 30 | read_more: 阅读全文 31 | untitled: 未命名 32 | toc_empty: 此文章未包含目录 33 | visitors: 阅读次数 34 | wordcount: 字数统计 35 | min2read: 阅读时长 36 | totalcount: Site words total count 37 | copyright: 38 | author: 本文作者 39 | link: 本文链接 40 | license_title: 版权声明 41 | license_content: '本博客所有文章除特别声明外,均采用 42 | %s 许可协议。转载请注明出处!' 43 | 44 | page: 45 | totally: 共有 46 | tags: 标签 47 | 48 | footer: 49 | powered: "由 %s 强力驱动" 50 | theme: 主题 51 | 52 | counter: 53 | tag_cloud: 54 | zero: 暂无标签 55 | one: 目前共计 1 个标签 56 | other: "目前共计 %d 个标签" 57 | 58 | categories: 59 | zero: 暂无分类 60 | one: 目前共计 1 个分类 61 | other: "目前共计 %d 个分类" 62 | 63 | archive_posts: 64 | zero: 暂无日志。 65 | one: 目前共计 1 篇日志。 66 | other: "目前共计 %d 篇日志。" 67 | 68 | state: 69 | posts: 日志 70 | pages: 页面 71 | tags: 标签 72 | categories: 分类 73 | 74 | search: 75 | placeholder: 搜索... 76 | 77 | cheers: 78 | um: 嗯.. 79 | ok: OK 80 | nice: 好 81 | good: 很好 82 | great: 非常好 83 | excellent: 太棒了 84 | 85 | keep_on: 继续努力。 86 | 87 | symbol: 88 | comma: ', ' 89 | period: '。 ' 90 | colon: ':' 91 | 92 | reward: 93 | donate: 打赏 94 | wechatpay: 微信支付 95 | alipay: 支付宝 96 | bitcoin: 比特币 97 | 98 | gitmentbutton: 显示 Gitment 评论 99 | -------------------------------------------------------------------------------- /languages/zh-hk.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: 歸檔 3 | category: 分類 4 | tag: 標籤 5 | schedule: 日程表 6 | 7 | author: 博主 8 | 9 | menu: 10 | home: 首頁 11 | archives: 歸檔 12 | categories: 分類 13 | tags: 標籤 14 | about: 關於 15 | search: 檢索 16 | schedule: 日程表 17 | sitemap: 站點地圖 18 | commonweal: 公益404 19 | 20 | sidebar: 21 | overview: 本站概覽 22 | toc: 文章目錄 23 | 24 | post: 25 | created: 創建於 26 | modified: 更新於 27 | sticky: 置頂 28 | posted: 發表於 29 | in: 分類於 30 | read_more: 閱讀全文 31 | untitled: 未命名 32 | toc_empty: 此文章未包含目錄 33 | visitors: 閱讀次數 34 | wordcount: 字數統計 35 | min2read: 閱讀時長 36 | totalcount: Site words total count 37 | copyright: 38 | author: Post author 39 | link: Post link 40 | license_title: Copyright Notice 41 | license_content: 'All articles in this blog are licensed under 42 | %s unless stating additionally.' 43 | 44 | page: 45 | totally: 共有 46 | tags: 標籤 47 | 48 | footer: 49 | powered: "由 %s 強力驅動" 50 | theme: 主題 51 | 52 | counter: 53 | tag_cloud: 54 | zero: 暫無標籤 55 | one: 目前共有 1 個標籤 56 | other: "目前共有 %d 個標籤" 57 | 58 | categories: 59 | zero: 暫無分類 60 | one: 目前共有 1 個分類 61 | other: "目前共有 %d 個分類" 62 | 63 | archive_posts: 64 | zero: 暫無文章。 65 | one: 目前共有 1 篇文章。 66 | other: "目前共有 %d 篇文章。" 67 | 68 | state: 69 | posts: 文章 70 | pages: 頁面 71 | tags: 標籤 72 | categories: 分類 73 | 74 | search: 75 | placeholder: 搜索... 76 | 77 | cheers: 78 | um: 嗯.. 79 | ok: OK 80 | nice: 好 81 | good: 很好 82 | great: 非常好 83 | excellent: 激爆好 84 | 85 | keep_on: 繼續努力。 86 | 87 | symbol: 88 | comma: ', ' 89 | period: '。 ' 90 | colon: ':' 91 | 92 | reward: 93 | donate: 打賞 94 | wechatpay: 微信支付 95 | alipay: 支付寶 96 | bitcoin: 比特幣 97 | 98 | gitmentbutton: 顯示 Gitment 評論 99 | -------------------------------------------------------------------------------- /languages/zh-tw.yml: -------------------------------------------------------------------------------- 1 | title: 2 | archive: 歸檔 3 | category: 分類 4 | tag: 標籤 5 | schedule: 日程表 6 | 7 | author: 博主 8 | 9 | menu: 10 | home: 首頁 11 | archives: 歸檔 12 | categories: 分類 13 | tags: 標籤 14 | about: 關於 15 | search: 檢索 16 | schedule: 日程表 17 | sitemap: 站點地圖 18 | commonweal: 公益404 19 | 20 | sidebar: 21 | overview: 本站概覽 22 | toc: 文章目錄 23 | 24 | post: 25 | created: 創建於 26 | modified: 更新於 27 | sticky: 置頂 28 | posted: 發表於 29 | in: 分類於 30 | read_more: 閱讀全文 31 | untitled: 未命名 32 | toc_empty: 此文章未包含目錄 33 | visitors: 閱讀次數 34 | wordcount: 字數統計 35 | min2read: 閱讀時長 36 | totalcount: Site words total count 37 | copyright: 38 | author: Post author 39 | link: Post link 40 | license_title: Copyright Notice 41 | license_content: 'All articles in this blog are licensed under 42 | %s unless stating additionally.' 43 | 44 | page: 45 | totally: 共有 46 | tags: 標籤 47 | 48 | footer: 49 | powered: "由 %s 強力驅動" 50 | theme: 主題 51 | 52 | counter: 53 | tag_cloud: 54 | zero: 暫無標籤 55 | one: 目前共計 1 個標籤 56 | other: "目前共計 %d 個標籤" 57 | 58 | categories: 59 | zero: 暫無分類 60 | one: 目前共計 1 個分類 61 | other: "目前共計 %d 個分類" 62 | 63 | archive_posts: 64 | zero: 暫無文章。 65 | one: 目前共計 1 篇文章。 66 | other: "目前共計 %d 篇文章。" 67 | 68 | state: 69 | posts: 文章 70 | pages: 頁面 71 | tags: 標籤 72 | categories: 分類 73 | 74 | search: 75 | placeholder: 搜索... 76 | 77 | cheers: 78 | um: 嗯.. 79 | ok: OK 80 | nice: 好 81 | good: 很好 82 | great: 非常好 83 | excellent: 非常屌 84 | 85 | keep_on: 繼續努力。 86 | 87 | symbol: 88 | comma: ', ' 89 | period: '。 ' 90 | colon: ':' 91 | 92 | reward: 93 | donate: 打賞 94 | wechatpay: 微信支付 95 | alipay: 支付寶 96 | bitcoin: 比特幣 97 | 98 | gitmentbutton: 顯示 Gitment 評論 99 | -------------------------------------------------------------------------------- /layout/_custom/header.swig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /layout/_custom/sidebar.swig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /layout/_macro/post-collapse.swig: -------------------------------------------------------------------------------- 1 | {% macro render(post) %} 2 | 3 |
4 |
5 | 6 | <{% if theme.seo %}h3{% else %}h2{% endif %} class="post-title"> 7 | {% if post.link %}{# Link posts #} 8 | 12 | {% else %} 13 | 20 | {% endif %} 21 | 22 | 23 | 30 | 31 |
32 |
33 | 34 | {% endmacro %} 35 | -------------------------------------------------------------------------------- /layout/_macro/post-copyright.swig: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /layout/_macro/reward.swig: -------------------------------------------------------------------------------- 1 |
2 |
{{ theme.reward_comment }}
3 | 6 | 30 |
31 | -------------------------------------------------------------------------------- /layout/_macro/wechat-subscriber.swig: -------------------------------------------------------------------------------- 1 |
2 | {{ theme.author }} wechat 3 |
{{ theme.wechat_subscriber.description }}
4 |
5 | -------------------------------------------------------------------------------- /layout/_partials/footer.swig: -------------------------------------------------------------------------------- 1 | 23 | 24 | {% if theme.footer.powered %} 25 |
{# 26 | #}{{ __('footer.powered', 'Hexo') }}{# 27 | #}
28 | {% endif %} 29 | 30 | {% if theme.footer.powered and theme.footer.theme.enable %} 31 | | 32 | {% endif %} 33 | 34 | {% if theme.footer.theme.enable %} 35 |
{# 36 | #}{{ __('footer.theme') }} — {# 37 | #}{# 38 | #}NexT.{{ theme.scheme }}{# 39 | #}{% if theme.footer.theme.version %} v{{ theme.version }}{% endif %}{# 40 | #}
41 | {% endif %} 42 | 43 | {% if theme.footer.custom_text %} 44 | 47 | {% endif %} 48 | -------------------------------------------------------------------------------- /layout/_partials/head/custom-head.swig: -------------------------------------------------------------------------------- 1 | {# 2 | Custom head. 3 | #} 4 | -------------------------------------------------------------------------------- /layout/_partials/head/external-fonts.swig: -------------------------------------------------------------------------------- 1 | {% if theme.font.enable %} 2 | 3 | {% set font_config = theme.font %} 4 | {% set font_families = '' %} 5 | {% set font_styles = ':300,300italic,400,400italic,700,700italic' %} 6 | {% set font_found = false %} 7 | 8 | {% if font_config.global.family and font_config.global.external %} 9 | {% set font_families += font_config.global.family + font_styles %} 10 | {% set font_found = true %} 11 | {% endif %} 12 | 13 | {% if font_config.headings.family and font_config.headings.external %} 14 | {% if font_found %} 15 | {% set font_families += '|' %} 16 | {% endif %} 17 | 18 | {% set font_families += font_config.headings.family + font_styles %} 19 | {% endif %} 20 | 21 | {% if font_config.posts.family and font_config.posts.external %} 22 | {% if font_found %} 23 | {% set font_families += '|' %} 24 | {% endif %} 25 | 26 | {% set font_families += font_config.posts.family + font_styles %} 27 | {% endif %} 28 | 29 | {% if font_config.logo.family and font_config.logo.external %} 30 | {% if font_found %} 31 | {% set font_families += '|' %} 32 | {% endif %} 33 | 34 | {% set font_families += font_config.logo.family + font_styles %} 35 | {% endif %} 36 | 37 | {% if font_config.codes.family and font_config.codes.external %} 38 | {% if font_found %} 39 | {% set font_families += '|' %} 40 | {% endif %} 41 | 42 | {% set font_families += font_config.codes.family + font_styles %} 43 | {% endif %} 44 | 45 | {% if font_families !== '' %} 46 | {% set font_families += '&subset=latin,latin-ext' %} 47 | {% set font_host = font_config.host | default('//fonts.googleapis.com') %} 48 | 49 | {% endif %} 50 | 51 | {% endif %} 52 | -------------------------------------------------------------------------------- /layout/_partials/page-header.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 | <{% if theme.seo %}h2{% else %}h1{% endif %} class="post-title" itemprop="name headline">{{ page.title }} 4 | 5 | {% if page.description %} 6 | 9 | {% endif %} 10 | 11 |
12 | -------------------------------------------------------------------------------- /layout/_partials/pagination.swig: -------------------------------------------------------------------------------- 1 | {% if page.prev or page.next %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /layout/_partials/search.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | {% include '../_third-party/search/algolia-search/dom.swig' %} 3 | {% elseif theme.swiftype_key %} 4 | {% include 'search/swiftype.swig' %} 5 | {% elseif theme.tinysou_Key %} 6 | {% include 'search/tinysou.swig' %} 7 | {% elseif theme.local_search.enable %} 8 | {% include 'search/localsearch.swig' %} 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /layout/_partials/search/localsearch.swig: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /layout/_partials/search/swiftype.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | 13 | -------------------------------------------------------------------------------- /layout/_partials/search/tinysou.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /layout/_partials/share/add-this.swig: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 | -------------------------------------------------------------------------------- /layout/_partials/share/baidushare.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidushare.type === "button" %} 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 33 | {% elseif theme.baidushare.type === "slide" %} 34 | 54 | {% endif %} 55 | 58 | -------------------------------------------------------------------------------- /layout/_partials/share/duoshuo_share.swig: -------------------------------------------------------------------------------- 1 |
5 |
6 | 15 |
16 |
17 |
18 |
-------------------------------------------------------------------------------- /layout/_partials/share/jiathis.swig: -------------------------------------------------------------------------------- 1 | 2 |
3 | 分享到: 4 | 收藏夹 5 | 复制网址 6 | 邮件 7 | 微信 8 | QQ空间 9 | 腾讯微博 10 | 豆瓣 11 | 一键分享 12 | 13 | 更多 14 | 15 |
16 | 24 | 25 | -------------------------------------------------------------------------------- /layout/_scripts/boostrap.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set boot_scripts = [ 3 | 'src/bootstrap.js' 4 | ] 5 | %} 6 | 7 | {% for bs in boot_scripts %} 8 | 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /layout/_scripts/commons.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set js_commons = [ 3 | 'src/utils.js', 4 | 'src/motion.js' 5 | ] 6 | %} 7 | 8 | {% for common in js_commons %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /layout/_scripts/pages/post-details.swig: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /layout/_scripts/schemes/gemini.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set scripts = [ 3 | 'src/affix.js', 4 | 'src/schemes/pisces.js' 5 | ] 6 | %} 7 | 8 | {% for script in scripts %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /layout/_scripts/schemes/mist.swig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/layout/_scripts/schemes/mist.swig -------------------------------------------------------------------------------- /layout/_scripts/schemes/muse.swig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/layout/_scripts/schemes/muse.swig -------------------------------------------------------------------------------- /layout/_scripts/schemes/pisces.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set scripts = [ 3 | 'src/affix.js', 4 | 'src/schemes/pisces.js' 5 | ] 6 | %} 7 | 8 | {% for script in scripts %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /layout/_scripts/vendors.swig: -------------------------------------------------------------------------------- 1 | {# Reset `window.Promise` when it was not a function. #} 2 | {# IE refers the element whose id is `Promise` as `window.Promise`, this causes Velocity throwing an exception #} 3 | 8 | 9 | {% set js_vendors = {} %} 10 | {% set js_vendors.jquery = 'jquery/index.js?v=2.1.3' %} 11 | {% set js_vendors.fastclick = 'fastclick/lib/fastclick.min.js?v=1.0.6' %} 12 | {% set js_vendors.lazyload = 'jquery_lazyload/jquery.lazyload.js?v=1.9.7' %} 13 | {% set js_vendors.velocity = 'velocity/velocity.min.js?v=1.2.1' %} 14 | {% set js_vendors.velocity_ui = 'velocity/velocity.ui.min.js?v=1.2.1' %} 15 | 16 | {% if theme.fancybox %} 17 | {% set js_vendors.fancybox = 'fancybox/source/jquery.fancybox.pack.js?v=2.1.5' %} 18 | {% endif %} 19 | {% if theme.canvas_nest %} 20 | {% set js_vendors.canvas_nest = 'canvas-nest/canvas-nest.min.js' %} 21 | {% endif %} 22 | 23 | {% if theme.three_waves %} 24 | {% set js_vendors.three = 'three/three.min.js' %} 25 | {% set js_vendors.three_waves = 'three/three-waves.min.js' %} 26 | {% endif %} 27 | 28 | {% if theme.canvas_lines %} 29 | {% set js_vendors.three = 'three/three.min.js' %} 30 | {% set js_vendors.canvas_lines = 'three/canvas_lines.min.js' %} 31 | {% endif %} 32 | 33 | {% if theme.canvas_sphere %} 34 | {% set js_vendors.three = 'three/three.min.js' %} 35 | {% set js_vendors.canvas_sphere = 'three/canvas_sphere.min.js' %} 36 | {% endif %} 37 | 38 | {% if theme.canvas_ribbon.enable and theme.scheme === 'Pisces'%} 39 | {% set js_vendors.canvas_ribbon = 'canvas-ribbon/canvas-ribbon.js' %} 40 | {% endif %} 41 | 42 | {% for name, internal in js_vendors %} 43 | {% set internal_script = url_for(theme.vendors._internal) + '/' + internal %} 44 | {% if name == 'canvas_ribbon' %} 45 | 46 | {% else %} 47 | 48 | {% endif %} 49 | {% endfor %} 50 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/analytics-with-widget.swig: -------------------------------------------------------------------------------- 1 | {% include 'busuanzi-counter.swig' %} 2 | {% include 'tencent-mta.swig' %} 3 | {% include 'tencent-analytics.swig' %} 4 | {% include 'cnzz-analytics.swig' %} -------------------------------------------------------------------------------- /layout/_third-party/analytics/application-insights.swig: -------------------------------------------------------------------------------- 1 | {% if theme.application_insights %} 2 | 11 | {% endif %} -------------------------------------------------------------------------------- /layout/_third-party/analytics/baidu-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidu_analytics %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/busuanzi-counter.swig: -------------------------------------------------------------------------------- 1 | {% if theme.busuanzi_count.enable %} 2 |
3 | 4 | 5 | {% if theme.busuanzi_count.site_uv %} 6 | 7 | {{ theme.busuanzi_count.site_uv_header }} 8 | 9 | {{ theme.busuanzi_count.site_uv_footer }} 10 | 11 | {% endif %} 12 | 13 | {% if theme.busuanzi_count.site_pv %} 14 | 15 | {{ theme.busuanzi_count.site_pv_header }} 16 | 17 | {{ theme.busuanzi_count.site_pv_footer }} 18 | 19 | {% endif %} 20 |
21 | {% endif %} 22 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/cnzz-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.cnzz_siteid %} 2 | 3 |
4 | 5 |
6 | 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/facebook-sdk.swig: -------------------------------------------------------------------------------- 1 | {% if theme.facebook_sdk.enable %} 2 | 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/google-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.google_analytics %} 2 | 10 | {% endif %} -------------------------------------------------------------------------------- /layout/_third-party/analytics/index.swig: -------------------------------------------------------------------------------- 1 | {% include 'facebook-sdk.swig' %} 2 | {% include 'vkontakte-api.swig' %} 3 | {% include 'google-analytics.swig' %} 4 | {% include 'baidu-analytics.swig' %} 5 | {% include 'application-insights.swig' %} 6 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/tencent-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tencent_analytics %} 2 | 10 | {% endif %} 11 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/tencent-mta.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tencent_mta %} 2 | 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /layout/_third-party/analytics/vkontakte-api.swig: -------------------------------------------------------------------------------- 1 | {% if theme.vkontakte_api.enable %} 2 | 3 |
4 | 26 | 27 | {% endif %} 28 | -------------------------------------------------------------------------------- /layout/_third-party/comments/changyan.swig: -------------------------------------------------------------------------------- 1 | {% if theme.changyan.enable and theme.changyan.appid and theme.changyan.appkey %} 2 | {% if is_home() %} 3 | 4 | {% else %} 5 | 16 | 17 | {% endif %} 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /layout/_third-party/comments/disqus.swig: -------------------------------------------------------------------------------- 1 | {% if not (theme.duoshuo and theme.duoshuo.shortname) and not theme.duoshuo_shortname %} 2 | {% if theme.disqus.enable %} 3 | 4 | {% if theme.disqus.count %} 5 | 6 | {% endif %} 7 | 8 | {% if page.comments %} 9 | 20 | {% endif %} 21 | 22 | {% endif %} 23 | {% endif %} 24 | -------------------------------------------------------------------------------- /layout/_third-party/comments/duoshuo.swig: -------------------------------------------------------------------------------- 1 | {% if (theme.duoshuo and theme.duoshuo.shortname) or theme.duoshuo_shortname %} 2 | 3 | {% if theme.duoshuo %} 4 | {% set duoshuo_shortname = theme.duoshuo.shortname %} 5 | {% else %} 6 | {% set duoshuo_shortname = theme.duoshuo_shortname %} 7 | {% endif %} 8 | 9 | 21 | 22 | {% if theme.duoshuo_info.ua_enable %} 23 | {% if theme.duoshuo_info.admin_enable %} 24 | {% set ua_parser_internal = url_for(theme.vendors._internal) + '/ua-parser-js/dist/ua-parser.min.js?v=0.7.9' %} 25 | 26 | 27 | {% endif %} 28 | {% set ua_parser_internal = url_for(theme.vendors._internal) + '/ua-parser-js/dist/ua-parser.min.js?v=0.7.9' %} 29 | 30 | 31 | {% endif %} 32 | 33 | {% endif %} 34 | -------------------------------------------------------------------------------- /layout/_third-party/comments/hypercomments.swig: -------------------------------------------------------------------------------- 1 | {% if not (theme.duoshuo and theme.duoshuo.shortname) and not theme.duoshuo_shortname and not theme.disqus_shortname %} 2 | 3 | {% if theme.hypercomments_id %} 4 | 5 | 24 | 25 | {% endif %} 26 | 27 | {% endif %} 28 | -------------------------------------------------------------------------------- /layout/_third-party/comments/index.swig: -------------------------------------------------------------------------------- 1 | {% include 'duoshuo.swig' %} 2 | {% include 'disqus.swig' %} 3 | {% include 'hypercomments.swig' %} 4 | {% include 'youyan.swig' %} 5 | {% include 'livere.swig' %} 6 | {% include 'changyan.swig' %} 7 | {% include 'gitment.swig' %} 8 | {% include 'valine.swig' %} 9 | -------------------------------------------------------------------------------- /layout/_third-party/comments/livere.swig: -------------------------------------------------------------------------------- 1 | {% if not (theme.duoshuo and theme.duoshuo.shortname) and not theme.duoshuo_shortname and not (theme.disqus.enable and theme.disqus.shortname) and not theme.hypercomments_id %} 2 | 3 | {% if page.comments and theme.livere_uid %} 4 | 14 | {% endif %} 15 | 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /layout/_third-party/comments/valine.swig: -------------------------------------------------------------------------------- 1 | {% if theme.valine.enable and theme.valine.appid and theme.valine.appkey %} 2 | 3 | 4 | 5 | 23 | {% endif %} 24 | -------------------------------------------------------------------------------- /layout/_third-party/comments/youyan.swig: -------------------------------------------------------------------------------- 1 | {% if not (theme.duoshuo and theme.duoshuo.shortname) 2 | and not theme.duoshuo_shortname 3 | and not theme.disqus_shortname 4 | and not theme.hypercomments_id %} 5 | 6 | {% if theme.youyan_uid %} 7 | {% set uid = theme.youyan_uid %} 8 | 9 | {% if page.comments %} 10 | 11 | 12 | 13 | {% endif %} 14 | {% endif %} 15 | 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /layout/_third-party/duoshuo-hot-articles.swig: -------------------------------------------------------------------------------- 1 | {# 多说热评文章 #} 2 | {% if (theme.duoshuo_hotartical and page.title) %} 3 |

热评文章

4 |
5 | {% endif %} 6 | -------------------------------------------------------------------------------- /layout/_third-party/exturl.swig: -------------------------------------------------------------------------------- 1 | {% if theme.exturl %} 2 | 3 | {% endif %} 4 | -------------------------------------------------------------------------------- /layout/_third-party/mathjax.swig: -------------------------------------------------------------------------------- 1 | {% if theme.mathjax.enable %} 2 | {% if not theme.mathjax.per_page or (page.total or page.mathjax) %} 3 | 12 | 13 | 21 | 22 | {% endif %} 23 | {% endif %} 24 | -------------------------------------------------------------------------------- /layout/_third-party/needsharebutton.swig: -------------------------------------------------------------------------------- 1 | {% if theme.needmoreshare2.enable %} 2 | {% set needmoreshare2_css = url_for(theme.vendors._internal + '/needsharebutton/needsharebutton.css') %} 3 | {% if theme.vendors.needmoreshare2 %} 4 | {% set needmoreshare2_css = theme.vendors.needmoreshare2_css %} 5 | {% endif %} 6 | 7 | 8 | {% set needmoreshare2_js = url_for(theme.vendors._internal + '/needsharebutton/needsharebutton.js') %} 9 | {% if theme.vendors.needmoreshare2_js %} 10 | {% set needmoreshare2_js = theme.vendors.needmoreshare2_js %} 11 | {% endif %} 12 | 13 | 14 | 30 | {% endif %} -------------------------------------------------------------------------------- /layout/_third-party/rating.swig: -------------------------------------------------------------------------------- 1 | {% if theme.rating.enable and (not is_home() and is_post()) %} 2 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /layout/_third-party/scroll-cookie.swig: -------------------------------------------------------------------------------- 1 | {% if theme.save_scroll %} 2 | 3 | 4 | {% endif %} 5 | -------------------------------------------------------------------------------- /layout/_third-party/search/algolia-search/assets.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | 3 | {# S: Include Algolia instantsearch.js library #} 4 | {% set algolia_instant_css = url_for(theme.vendors._internal + '/algolia-instant-search/instantsearch.min.css') %} 5 | {% if theme.vendors.algolia_instant_css %} 6 | {% set algolia_instant_css = theme.vendors.algolia_instant_css %} 7 | {% endif %} 8 | 9 | 10 | {% set algolia_instant_js = url_for(theme.vendors._internal + '/algolia-instant-search/instantsearch.min.js') %} 11 | {% if theme.vendors.algolia_instant_js %} 12 | {% set algolia_instant_js = theme.vendors.algolia_instant_js %} 13 | {% endif %} 14 | 15 | {# E: Include Algolia instantsearch.js library #} 16 | 17 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /layout/_third-party/search/algolia-search/dom.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /layout/_third-party/search/index.swig: -------------------------------------------------------------------------------- 1 | {% include 'tinysou.swig' %} 2 | {% include 'localsearch.swig' %} 3 | {% include 'algolia-search/assets.swig' %} 4 | -------------------------------------------------------------------------------- /layout/_third-party/search/tinysou.swig: -------------------------------------------------------------------------------- 1 | {% if config.tinysou_Key %} 2 | 23 | {% endif %} -------------------------------------------------------------------------------- /layout/_third-party/seo/baidu-push.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidu_push %} 2 | 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /layout/archive.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post-collapse.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ __('title.archive') }} | {{ config.title }}{% endblock %} 6 | 7 | {% block page_class %}page-archive{% endblock %} 8 | 9 | {% block content %} 10 | 11 | {#####################} 12 | {### ARCHIVE BLOCK ###} 13 | {#####################} 14 |
15 |
16 | 17 | 18 | 19 | {% set cheers %} 20 | {% set posts_length = site.posts.length %} 21 | {% if posts_length > 210 %} {% set cheers = 'excellent' %} 22 | {% elif posts_length > 130 %} {% set cheers = 'great' %} 23 | {% elif posts_length > 80 %} {% set cheers = 'good' %} 24 | {% elif posts_length > 50 %} {% set cheers = 'nice' %} 25 | {% elif posts_length > 30 %} {% set cheers = 'ok' %} 26 | {% else %} 27 | {% set cheers = 'um' %} 28 | {% endif %} 29 | {{ __('cheers.' + cheers) }}! {{ _p("counter.archive_posts", site.posts.length) }} {{ __('keep_on') }} 30 | 31 | 32 | {% for post in page.posts %} 33 | 34 | {# Show year #} 35 | {% set year %} 36 | {% set post.year = date(post.date, 'YYYY') %} 37 | 38 | {% if post.year !== year %} 39 | {% set year = post.year %} 40 |
41 | <{% if theme.seo %}h2{% else %}h1{% endif %} class="archive-year" id="archive-year-{{ year }}">{{ year }} 42 |
43 | {% endif %} 44 | {# endshow #} 45 | 46 | {{ post_template.render(post) }} 47 | 48 | {% endfor %} 49 | 50 |
51 |
52 | {#########################} 53 | {### END ARCHIVE BLOCK ###} 54 | {#########################} 55 | 56 | {% include '_partials/pagination.swig' %} 57 | 58 | {% endblock %} 59 | 60 | {% block sidebar %} 61 | {{ sidebar_template.render(false) }} 62 | {% endblock %} 63 | -------------------------------------------------------------------------------- /layout/category.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post-collapse.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ __('title.category') }}: {{ page.category }} | {{ config.title }}{% endblock %} 6 | 7 | {% block content %} 8 | 9 | {######################} 10 | {### CATEGORY BLOCK ###} 11 | {######################} 12 |
13 | 14 |
15 |
16 | <{% if theme.seo %}h2{% else %}h1{% endif %}>{# 17 | #}{{ page.category }}{# 18 | #}{{ __('title.category') }} 19 | 20 |
21 | 22 | {% for post in page.posts %} 23 | {{ post_template.render(post) }} 24 | {% endfor %} 25 |
26 | 27 |
28 | {##########################} 29 | {### END CATEGORY BLOCK ###} 30 | {##########################} 31 | 32 | {% include '_partials/pagination.swig' %} 33 | 34 | {% endblock %} 35 | 36 | {% block sidebar %} 37 | {{ sidebar_template.render(false) }} 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /layout/index.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ config.title }}{% if theme.index_with_subtitle and config.subtitle %} - {{config.subtitle }}{% endif %}{% endblock %} 6 | 7 | {% block page_class %} 8 | {% if is_home() %}page-home{% endif -%} 9 | {% endblock %} 10 | 11 | {% block content %} 12 |
13 | {% for post in page.posts %} 14 | {{ post_template.render(post, true) }} 15 | {% endfor %} 16 |
17 | 18 | {% include '_partials/pagination.swig' %} 19 | {% endblock %} 20 | 21 | {% block sidebar %} 22 | {{ sidebar_template.render(false) }} 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /layout/post.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | 6 | {% block title %}{{ page.title }} | {{ config.title }}{% endblock %} 7 | 8 | {% block page_class %}page-post-detail{% endblock %} 9 | 10 | 11 | {% block content %} 12 | 13 |
14 | {{ post_template.render(page) }} 15 | 16 |
17 | {% if theme.jiathis %} 18 | {% include '_partials/share/jiathis.swig' %} 19 | {% elseif theme.baidushare %} 20 | {% include '_partials/share/baidushare.swig' %} 21 | {% elseif theme.add_this_id %} 22 | {% include '_partials/share/add-this.swig' %} 23 | {% elseif theme.duoshuo_shortname and theme.duoshuo_share %} 24 | {% include '_partials/share/duoshuo_share.swig' %} 25 | {% endif %} 26 |
27 |
28 | 29 | {% endblock %} 30 | 31 | {% block sidebar %} 32 | {{ sidebar_template.render(true) }} 33 | {% endblock %} 34 | 35 | {% block script_extra %} 36 | {% include '_scripts/pages/post-details.swig' %} 37 | {% endblock %} 38 | -------------------------------------------------------------------------------- /layout/schedule.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/sidebar.swig' as sidebar_template %} 3 | 4 | {% block title %}{{ __('title.schedule') }} | {{ config.title }}{% endblock %} 5 | 6 | {% block page_class %}page-post-detail page-calendar{% endblock %} 7 | 8 | {% block content %} 9 | {######################} 10 | {### SCHEDULE BLOCK ###} 11 | {######################} 12 |
13 |
14 |
    15 |
16 |
17 |
18 | {##########################} 19 | {### END SCHEDULE BLOCK ###} 20 | {##########################} 21 | {% endblock %} 22 | 23 | {% block sidebar %} 24 | {{ sidebar_template.render(false) }} 25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /layout/tag.swig: -------------------------------------------------------------------------------- 1 | {% extends '_layout.swig' %} 2 | {% import '_macro/post-collapse.swig' as post_template %} 3 | {% import '_macro/sidebar.swig' as sidebar_template %} 4 | 5 | {% block title %}{{ __('title.tag') }}: {{ page.tag }} | {{ config.title }}{% endblock %} 6 | 7 | {% block content %} 8 | 9 | {#################} 10 | {### TAG BLOCK ###} 11 | {#################} 12 |
13 | 14 |
15 |
16 | <{% if theme.seo %}h2{% else %}h1{% endif %}>{# 17 | #}{{ page.tag }}{# 18 | #}{{ __('title.tag') }} 19 | 20 |
21 | 22 | {% for post in page.posts %} 23 | {{ post_template.render(post) }} 24 | {% endfor %} 25 |
26 | 27 |
28 | {#####################} 29 | {### END TAG BLOCK ###} 30 | {#####################} 31 | 32 | {% include '_partials/pagination.swig' %} 33 | {% endblock %} 34 | 35 | {% block sidebar %} 36 | {{ sidebar_template.render(false) }} 37 | {% endblock %} 38 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-theme-next", 3 | "version": "5.1.4", 4 | "description": "Elegant theme for Hexo", 5 | "main": "index.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "scripts": { 10 | "test": "gulp" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/iissnan/hexo-theme-next.git" 15 | }, 16 | "keywords": [ 17 | "NexT", 18 | "Hexo" 19 | ], 20 | "author": "iissnan ", 21 | "maintainers": [ 22 | "Ivan Nginx (https://almostover.ru)" 23 | ], 24 | "license": "MIT", 25 | "bugs": { 26 | "url": "https://github.com/iissnan/hexo-theme-next/issues" 27 | }, 28 | "homepage": "https://theme-next.iissnan.com", 29 | "devDependencies": { 30 | "coffee-script": "^1.10.0", 31 | "gulp": "^3.9.0", 32 | "gulp-jshint": "^1.12.0", 33 | "gulp-shell": "^0.6.1", 34 | "js-yaml": "^3.8.1", 35 | "jshint-stylish": "^2.1.0", 36 | "stylint": "^1.5.9" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /scripts/merge-configs.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 3 | var merge = require('./merge'); 4 | 5 | /** 6 | * Merge configs in _data/next.yml into hexo.theme.config. 7 | * Note: configs in _data/next.yml will override configs in hexo.theme.config. 8 | */ 9 | hexo.on('generateBefore', function () { 10 | if (hexo.locals.get) { 11 | var data = hexo.locals.get('data'); 12 | if ( data && data.next ) { 13 | if ( data.next.override ) { 14 | hexo.theme.config = data.next; 15 | } else { 16 | merge(hexo.theme.config, data.next); 17 | } 18 | } 19 | } 20 | }); 21 | 22 | hexo.on('generateAfter', function () { 23 | hexo.log.warn("==============================================================="); 24 | hexo.log.warn("========================= ATTENTION! =========================="); 25 | hexo.log.warn("==============================================================="); 26 | hexo.log.warn(" NexT repository is moving here: https://github.com/theme-next "); 27 | hexo.log.warn("==============================================================="); 28 | hexo.log.warn(" It's rebase to v6.0.0 and future maintenance will resume there"); 29 | hexo.log.warn("==============================================================="); 30 | }); 31 | -------------------------------------------------------------------------------- /scripts/tags/button.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | // Usage: {% button /path/to/url/, text, icon [class], title %} 3 | // Alias: {% btn /path/to/url/, text, icon [class], title %} 4 | 5 | function postButton(args) { 6 | args = args.join(' ').split(','); 7 | var url = args[0]; 8 | var text = args[1] || ''; 9 | var icon = args[2] || ''; 10 | var title = args[3] || ''; 11 | 12 | if (!url) { 13 | hexo.log.warn('URL can NOT be empty'); 14 | } 15 | 16 | text = text.trim(); 17 | icon = icon.trim(); 18 | title = title.trim(); 19 | 20 | var result = [' 0 && result.push(' title="' + title + '"'); 22 | result.push('>'); 23 | icon.length > 0 && result.push(''); 24 | text.length > 0 && result.push(text); 25 | result.push(''); 26 | 27 | return result.join(''); 28 | } 29 | 30 | hexo.extend.tag.register('button', postButton); 31 | hexo.extend.tag.register('btn', postButton); 32 | -------------------------------------------------------------------------------- /scripts/tags/center-quote.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | // Usage: {% centerquote %} Something {% endcenterquote %} 3 | // Alias: {% cq %} Something {% endcq %} 4 | 5 | function centerQuote (args, content) { 6 | return '
' + 7 | hexo.render.renderSync({text: content, engine: 'markdown'}) + 8 | '
'; 9 | } 10 | 11 | hexo.extend.tag.register('centerquote', centerQuote, {ends: true}); 12 | hexo.extend.tag.register('cq', centerQuote, {ends: true}); 13 | -------------------------------------------------------------------------------- /scripts/tags/full-image.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | // Usage: {% fullimage /path/to/image, alt, title %} 3 | // Alias: {% fi /path/to/image, alt, title %} 4 | 5 | function fullImage(args) { 6 | args = args.join(' ').split(','); 7 | var src = args[0]; 8 | var alt = args[1] || ''; 9 | var title = args[2] || ''; 10 | 11 | if (!src) { 12 | hexo.log.warn('Image src can NOT be empty'); 13 | } 14 | alt = alt.trim(); 15 | title = title.trim(); 16 | 17 | var image = [' 0 && image.push('alt="' + alt + '"'); 19 | title.length > 0 && image.push('title="' + title + '"'); 20 | image.push('/>'); 21 | 22 | return image.join(' '); 23 | } 24 | 25 | hexo.extend.tag.register('fullimage', fullImage); 26 | hexo.extend.tag.register('fi', fullImage); 27 | -------------------------------------------------------------------------------- /scripts/tags/label.js: -------------------------------------------------------------------------------- 1 | /** 2 | * label.js | global hexo script. 3 | * 4 | * Usage: 5 | * 6 | * {% label [class]@Text %} 7 | * 8 | * [class] : default | primary | success | info | warning | danger. 9 | * If not defined, default class will be selected. 10 | */ 11 | 12 | function postLabel (args) { 13 | args = args.join(' ').split('@'); 14 | var classes = args[0] || 'default'; 15 | var text = args[1] || ''; 16 | 17 | classes = classes.trim(); 18 | !text && hexo.log.warn('Label text must be defined!'); 19 | 20 | return '' + text + ''; 21 | } 22 | 23 | hexo.extend.tag.register('label', postLabel, { ends: false }); 24 | -------------------------------------------------------------------------------- /scripts/tags/lazy-image.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | // Usage: {% lazyimage /path/to/image, alt, title %} 3 | // Alias: {% li /path/to/image, alt, title %} 4 | 5 | function lazyImage(args) { 6 | args = args.join(' ').split(','); 7 | var src = args[0]; 8 | var alt = args[1] || ''; 9 | var title = args[2] || ''; 10 | 11 | if (!src) { 12 | hexo.log.warn('Image src can NOT be empty'); 13 | } 14 | alt = alt.trim(); 15 | title = title.trim(); 16 | 17 | var image = [' 0 && image.push('alt="' + alt + '"'); 19 | title.length > 0 && image.push('title="' + title + '"'); 20 | image.push('/>'); 21 | 22 | return image.join(' '); 23 | } 24 | 25 | hexo.extend.tag.register('lazyimage', lazyImage); 26 | hexo.extend.tag.register('li', lazyImage); 27 | -------------------------------------------------------------------------------- /scripts/tags/note.js: -------------------------------------------------------------------------------- 1 | /** 2 | * note.js | global hexo script. 3 | * 4 | * ATTENTION! No need to write this tag in 1 line if u don't want see probally bugs. 5 | * 6 | * Usage: 7 | * 8 | * {% note [class] %} 9 | * Any content (support inline tags too). 10 | * {% endnote %} 11 | * 12 | * [class] : default | primary | success | info | warning | danger. 13 | * May be not defined. 14 | */ 15 | 16 | function bscallOut (args, content) { 17 | return '
' + hexo.render.renderSync({text: content, engine: 'markdown'}).trim() + '
'; 18 | } 19 | 20 | hexo.extend.tag.register('note', bscallOut, {ends: true}); 21 | -------------------------------------------------------------------------------- /source/css/_common/components/back-to-top-sidebar.styl: -------------------------------------------------------------------------------- 1 | .back-to-top { 2 | display: none; 3 | margin: 20px -10px -20px; 4 | background: $body-bg-color; 5 | font-size: $b2t-font-size; 6 | opacity: $b2t-opacity; 7 | cursor: pointer; 8 | text-align: center; 9 | -webkit-transform: translateZ(0); 10 | the-transition(); 11 | &:hover { opacity: 0.8; } 12 | 13 | +tablet() { 14 | fixbutton() if hexo-config('sidebar.onmobile'); 15 | hide() if not hexo-config('sidebar.onmobile'); 16 | } 17 | +mobile() { 18 | fixbutton() if hexo-config('sidebar.onmobile'); 19 | hide() if not hexo-config('sidebar.onmobile'); 20 | } 21 | 22 | &.back-to-top-on { 23 | display: block; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /source/css/_common/components/back-to-top.styl: -------------------------------------------------------------------------------- 1 | .back-to-top { 2 | box-sizing: border-box; 3 | position: fixed; 4 | bottom: $b2t-position-bottom; 5 | right: $b2t-position-right; 6 | z-index: $zindex-5; 7 | padding: 0 6px; 8 | width: hexo-config('sidebar.scrollpercent') ? initial : 24px; 9 | background: $b2t-bg-color; 10 | font-size: $b2t-font-size; 11 | opacity: $b2t-opacity; 12 | color: $b2t-color; 13 | cursor: pointer; 14 | text-align: center; 15 | -webkit-transform: translateZ(0); 16 | transition-property: bottom; 17 | the-transition(); 18 | 19 | +tablet() { 20 | fixbutton() if hexo-config('sidebar.onmobile'); 21 | hide() if not hexo-config('sidebar.onmobile'); 22 | } 23 | +mobile() { 24 | fixbutton() if hexo-config('sidebar.onmobile'); 25 | hide() if not hexo-config('sidebar.onmobile'); 26 | } 27 | 28 | &.back-to-top-on { 29 | bottom: $b2t-position-bottom-on; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /source/css/_common/components/buttons.styl: -------------------------------------------------------------------------------- 1 | .btn { 2 | display: inline-block; 3 | padding: 0 20px; 4 | font-size: $btn-default-font-size; 5 | color: $btn-default-color; 6 | background: $btn-default-bg; 7 | border: $btn-default-border-width solid $btn-default-border-color; 8 | text-decoration: none; 9 | border-radius: $btn-default-radius; 10 | transition-property: background-color; 11 | the-transition(); 12 | line-height: 2; 13 | 14 | &:hover { 15 | border-color: $btn-default-hover-border-color; 16 | color: $btn-default-hover-color; 17 | background: $btn-default-hover-bg; 18 | } 19 | 20 | +.btn { 21 | margin: 0 0 8px 8px; 22 | } 23 | 24 | .fa-fw { 25 | width: (18em / 14); 26 | text-align: left; 27 | } 28 | } 29 | 30 | .btn-bar { 31 | display: block; 32 | width: 22px; 33 | height: 2px; 34 | background: $text-color; 35 | border-radius: 1px; 36 | 37 | &+.btn-bar { margin-top: 4px; } 38 | } 39 | -------------------------------------------------------------------------------- /source/css/_common/components/comments.styl: -------------------------------------------------------------------------------- 1 | .comments { margin: 60px 20px 0; } 2 | -------------------------------------------------------------------------------- /source/css/_common/components/components.styl: -------------------------------------------------------------------------------- 1 | @import "highlight"; 2 | @import "tags"; 3 | 4 | @import "buttons"; 5 | @import "pagination"; 6 | @import "comments"; 7 | @import "tag-cloud"; 8 | @import hexo-config('sidebar.b2t') ? "back-to-top-sidebar" : "back-to-top"; 9 | 10 | @import "header"; 11 | @import "post"; 12 | @import "sidebar"; 13 | @import "footer"; 14 | @import "third-party"; 15 | 16 | @import "pages"; 17 | -------------------------------------------------------------------------------- /source/css/_common/components/footer/footer.styl: -------------------------------------------------------------------------------- 1 | .footer { 2 | font-size: 14px; 3 | color: $grey-dark; 4 | 5 | img { border: none; } 6 | } 7 | 8 | .footer-inner { text-align: center; } 9 | 10 | .with-love { 11 | display: inline-block; 12 | margin: 0 5px; 13 | } 14 | 15 | .powered-by, 16 | .theme-info { display: inline-block; } 17 | 18 | .cc-license { 19 | margin-top: 10px; 20 | text-align: center; 21 | 22 | .cc-opacity { 23 | opacity: 0.7; 24 | border-bottom: none; 25 | 26 | &:hover { opacity: 0.9; } 27 | } 28 | 29 | img { display: inline-block; } 30 | } 31 | -------------------------------------------------------------------------------- /source/css/_common/components/header/header.styl: -------------------------------------------------------------------------------- 1 | .header { background: $head-bg; } 2 | 3 | .header-inner { position: relative; } 4 | 5 | 6 | @import "headerband"; 7 | @import "site-meta"; 8 | @import "site-nav"; 9 | @import "menu"; 10 | -------------------------------------------------------------------------------- /source/css/_common/components/header/headerband.styl: -------------------------------------------------------------------------------- 1 | .headband { 2 | height: $headband-height; 3 | background: $headband-bg; 4 | } 5 | -------------------------------------------------------------------------------- /source/css/_common/components/header/menu.styl: -------------------------------------------------------------------------------- 1 | // Menu 2 | // -------------------------------------------------- 3 | .menu { 4 | margin-top: 20px; 5 | padding-left: 0; 6 | text-align: center; 7 | } 8 | 9 | .menu .menu-item { 10 | display: inline-block; 11 | margin: 0 10px; 12 | list-style: none; 13 | 14 | @media screen and (max-width: 767px) { 15 | margin-top: 10px; 16 | } 17 | 18 | a { 19 | display: block; 20 | font-size: 13px; 21 | line-height: inherit; 22 | border-bottom: 1px solid $menu-link-border; 23 | transition-property: border-color; 24 | the-transition(); 25 | 26 | &:hover { border-bottom-color: $menu-link-hover-border; } 27 | } 28 | 29 | .fa { margin-right: 5px; } 30 | } 31 | 32 | .use-motion .menu-item { opacity: 0; } 33 | -------------------------------------------------------------------------------- /source/css/_common/components/header/site-meta.styl: -------------------------------------------------------------------------------- 1 | .site-meta { 2 | margin: 0; 3 | text-align: $site-meta-text-align; 4 | 5 | +mobile() { text-align: center; } 6 | } 7 | 8 | .brand { 9 | position: relative; 10 | display: inline-block; 11 | padding: 0 40px; 12 | color: $brand-color; 13 | background: $brand-bg; 14 | border-bottom: none; 15 | &:hover { color: $brand-hover-color; } 16 | } 17 | 18 | .logo { 19 | display: inline-block; 20 | margin-right: 5px; 21 | line-height: 36px; 22 | vertical-align: top; 23 | } 24 | 25 | .site-title { 26 | display: inline-block; 27 | vertical-align: top; 28 | line-height: 36px; 29 | font-size: $logo-font-size; 30 | font-weight: normal; 31 | font-family: $font-family-logo; 32 | } 33 | 34 | .site-subtitle { 35 | margin-top: 10px; 36 | font-size: $subtitle-font-size; 37 | color: $subtitle-color; 38 | } 39 | 40 | .use-motion { 41 | .brand { opacity: 0; } 42 | 43 | .logo, .site-title, .site-subtitle { 44 | opacity: 0; 45 | position: relative; 46 | top: -10px; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /source/css/_common/components/header/site-nav.styl: -------------------------------------------------------------------------------- 1 | .site-nav-toggle { 2 | display: none; 3 | position: absolute; 4 | top: 10px; 5 | left: 10px; 6 | +mobile() { 7 | display: block; 8 | } 9 | 10 | button { 11 | margin-top: 2px; 12 | padding: 9px 10px; 13 | background: transparent; 14 | border: none; 15 | } 16 | } 17 | 18 | .site-nav { 19 | +mobile() { 20 | display: none; 21 | margin: 0 -10px; 22 | padding: 0 10px; 23 | clear: both; 24 | border-top: 1px solid $gray-lighter; 25 | } 26 | +tablet() { display: block !important; } 27 | +desktop() { display: block !important; } 28 | } 29 | -------------------------------------------------------------------------------- /source/css/_common/components/highlight/diff.styl: -------------------------------------------------------------------------------- 1 | $highlight_theme = hexo-config("highlight_theme") 2 | 3 | if $highlight_theme == "normal" 4 | $highlight-deletion = #fdd 5 | $highlight-addition = #dfd 6 | else 7 | $highlight-deletion = #008000 8 | $highlight-addition = #800000 9 | -------------------------------------------------------------------------------- /source/css/_common/components/pages/archive.styl: -------------------------------------------------------------------------------- 1 | .page-archive { 2 | 3 | .archive-page-counter { 4 | position: relative; 5 | top: 3px; 6 | left: 20px; 7 | 8 | +mobile() { 9 | top: 5px; 10 | } 11 | } 12 | 13 | .posts-collapse { 14 | 15 | .archive-move-on { 16 | position: absolute; 17 | top: 11px; 18 | left: 0; 19 | margin-left: -6px; 20 | width: 10px; 21 | height: 10px; 22 | opacity: 0.5; 23 | background: $black-light; 24 | border: 1px solid white; 25 | 26 | circle(); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /source/css/_common/components/pages/categories.styl: -------------------------------------------------------------------------------- 1 | .category-all-page { 2 | .category-all-title { text-align: center; } 3 | 4 | .category-all { margin-top: 20px; } 5 | 6 | .category-list { 7 | margin: 0; 8 | padding: 0; 9 | list-style: none; 10 | } 11 | 12 | .category-list-item { margin: 5px 10px; } 13 | 14 | .category-list-count { 15 | color: $grey; 16 | &:before { 17 | display: inline; 18 | content: " (" 19 | } 20 | &:after { 21 | display: inline; 22 | content: ") " 23 | } 24 | } 25 | 26 | .category-list-child { padding-left: 10px; } 27 | } 28 | -------------------------------------------------------------------------------- /source/css/_common/components/pages/pages.styl: -------------------------------------------------------------------------------- 1 | // Page specific styles 2 | 3 | @import "archive"; 4 | @import "categories"; 5 | @import "schedule"; 6 | @import "post-detail"; 7 | -------------------------------------------------------------------------------- /source/css/_common/components/pages/post-detail.styl: -------------------------------------------------------------------------------- 1 | .page-post-detail { 2 | 3 | .sidebar-toggle-line { background: $sidebar-highlight; } 4 | 5 | .comments { overflow: hidden; } 6 | } 7 | -------------------------------------------------------------------------------- /source/css/_common/components/pagination.styl: -------------------------------------------------------------------------------- 1 | .pagination { 2 | margin: 120px 0 40px; 3 | text-align: center; 4 | border-top: 1px solid $pagination-border; 5 | } 6 | 7 | .page-number-basic { 8 | display: inline-block; 9 | position: relative; 10 | top: -1px; 11 | margin: 0 10px; 12 | padding: 0 11px; 13 | 14 | +mobile() { margin: 0 5px; } 15 | } 16 | 17 | .pagination { 18 | .prev, .next, .page-number { 19 | @extend .page-number-basic; 20 | border-bottom: 0; 21 | border-top: 1px solid $pagination-link-border; 22 | transition-property: border-color; 23 | the-transition(); 24 | 25 | &:hover { border-top-color: $pagination-link-hover-border; } 26 | } 27 | 28 | .space { 29 | @extend .page-number-basic; 30 | padding: 0; 31 | margin: 0; 32 | } 33 | 34 | .prev { margin-left: 0; } 35 | .next { margin-right: 0; } 36 | 37 | .page-number.current { 38 | color: $pagination-active-color; 39 | background: $pagination-active-bg; 40 | border-top-color: $pagination-active-border; 41 | } 42 | } 43 | 44 | @media (max-width: 767px) 45 | .pagination { border-top: none; } 46 | 47 | .pagination { 48 | .prev, .next, .page-number { 49 | margin-bottom: 10px; 50 | border-top: 0; 51 | border-bottom: 1px solid $pagination-link-border; 52 | padding: 0 10px; 53 | 54 | &:hover { border-bottom-color: $pagination-link-hover-border; } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-button.styl: -------------------------------------------------------------------------------- 1 | .post-button { 2 | margin-top: 40px; 3 | } 4 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-copyright.styl: -------------------------------------------------------------------------------- 1 | .post-copyright { 2 | margin: $post-copyright.margin; 3 | padding: $post-copyright.padding; 4 | border-left: $post-copyright.border.width $post-copyright.border.style $post-copyright.border.color; 5 | background-color: $post-copyright.bg; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-eof.styl: -------------------------------------------------------------------------------- 1 | .posts-expand { 2 | .post-eof { 3 | display: block; 4 | margin: $post-eof-margin-top auto $post-eof-margin-bottom; 5 | width: 8%; 6 | height: 1px; 7 | background: $grey-light; 8 | text-align: center; 9 | } 10 | } 11 | 12 | 13 | .post:last-child { 14 | .post-eof.post-eof.post-eof { 15 | display: none; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-expand.styl: -------------------------------------------------------------------------------- 1 | // TODO: Refactor. 2 | 3 | .posts-expand { 4 | padding-top: 40px; 5 | } 6 | 7 | @media (max-width: 767px) { 8 | .posts-expand { 9 | margin: 0 20px; 10 | } 11 | 12 | .post-body { 13 | pre { 14 | .gutter pre { 15 | padding-right: 10px; 16 | } 17 | } 18 | 19 | .highlight { 20 | margin-left: 0px; 21 | margin-right: 0px; 22 | padding: 0; 23 | .gutter pre { 24 | padding-right: 10px; 25 | } 26 | } 27 | } 28 | } 29 | 30 | .posts-expand .post-body { 31 | +desktop() { text-align: justify; } 32 | 33 | 34 | h2, h3, h4, h5, h6 { 35 | padding-top: 10px; 36 | 37 | .header-anchor{ 38 | float: right; 39 | margin-left: 10px; 40 | color: $grey-light; 41 | border-bottom-style: none; 42 | visibility: hidden; 43 | 44 | &:hover{ 45 | color: inherit; 46 | } 47 | } 48 | 49 | &:hover .header-anchor{ 50 | visibility: visible; 51 | } 52 | } 53 | 54 | ul li { list-style: circle; } 55 | 56 | img { 57 | box-sizing: border-box; 58 | margin: auto; 59 | padding: 3px; 60 | border: 1px solid $gray-lighter; 61 | } 62 | } 63 | 64 | .posts-expand .post-body .fancybox img { margin: 0 auto 25px; } 65 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-gallery.styl: -------------------------------------------------------------------------------- 1 | .post-gallery { 2 | display: table; 3 | table-layout: fixed; 4 | width: 100%; 5 | border-collapse: separate; 6 | } 7 | 8 | .post-gallery-row { display: table-row; } 9 | 10 | .post-gallery .post-gallery-img { 11 | display: table-cell; 12 | text-align: center; 13 | vertical-align: middle; 14 | border: none; 15 | } 16 | 17 | .post-gallery .post-gallery-img img { 18 | max-width: 100%; 19 | max-height: 100%; 20 | border: none; 21 | } 22 | 23 | .fancybox-close, .fancybox-close:hover { border: none; } 24 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-meta.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-meta { 2 | margin: 3px 0 60px 0; 3 | color: $grey-dark; 4 | font-family: $font-family-posts; 5 | font-size: 12px; 6 | text-align: center; 7 | 8 | .post-category-list { 9 | display: inline-block; 10 | margin: 0; 11 | padding: 3px; 12 | } 13 | .post-category-list-link { color: $grey-dark; } 14 | 15 | .post-description { 16 | font-size: 14px; 17 | margin-top: 2px; 18 | } 19 | } 20 | 21 | .post-wordcount { 22 | if !hexo-config('post_wordcount.separated_meta') { display: inline-block; } 23 | } 24 | 25 | .post-meta-divider { 26 | margin: 0 .5em; 27 | } 28 | 29 | .post-meta-item-icon { 30 | margin-right: 3px; 31 | +tablet() { 32 | display: inline-block; 33 | } 34 | +mobile() { 35 | display: inline-block; 36 | } 37 | } 38 | .post-meta-item-text { 39 | +tablet() { 40 | display: none; 41 | } 42 | +mobile() { 43 | display: none; 44 | } 45 | } 46 | 47 | .posts-expand .post-comments-count { 48 | +mobile() { display: none; } 49 | } 50 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-nav.styl: -------------------------------------------------------------------------------- 1 | .post-nav { 2 | display: table; 3 | margin-top: 15px; 4 | width: 100%; 5 | border-top: 1px solid $gainsboro; 6 | } 7 | 8 | .post-nav-divider { 9 | display: table-cell; 10 | width: 10%; 11 | } 12 | 13 | .post-nav-item { 14 | display: table-cell; 15 | padding: 10px 0 0 0; 16 | width: 45%; 17 | vertical-align: top; 18 | 19 | a { 20 | position: relative; 21 | display: block; 22 | line-height: 25px; 23 | font-size: 14px; 24 | color: $link-color; 25 | border-bottom: none; 26 | 27 | &:hover { 28 | color: $link-hover-color; 29 | border-bottom: none; 30 | } 31 | 32 | &:active { top: 2px; } 33 | } 34 | 35 | .fa { 36 | position: absolute; 37 | top: 8px; 38 | left: 0; 39 | font-size: 12px; 40 | } 41 | 42 | } 43 | 44 | .post-nav-next { 45 | a { padding-left: 15px; } 46 | } 47 | 48 | .post-nav-prev { 49 | text-align: right; 50 | 51 | a { padding-right: 15px; } 52 | 53 | .fa { 54 | right: 0; 55 | left: auto; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-reward.styl: -------------------------------------------------------------------------------- 1 | #rewardButton { 2 | cursor: pointer; 3 | border: 0; 4 | outline: 0; 5 | border-radius: 5px; 6 | padding: 0; 7 | margin: 0; 8 | letter-spacing: normal; 9 | text-transform: none; 10 | text-indent: 0px; 11 | text-shadow: none; 12 | } 13 | #rewardButton span { 14 | display: inline-block; 15 | width: 80px; 16 | height: 35px; 17 | border-radius: 5px; 18 | color: #fff; 19 | font-weight: 400; 20 | font-style: normal; 21 | font-variant: normal; 22 | font-stretch: normal; 23 | font-size: 18px; 24 | font-family: "Microsoft Yahei"; 25 | background: #F44336; 26 | } 27 | #rewardButton span:hover{ 28 | background: #F7877F; 29 | } 30 | #QR{ 31 | padding-top:20px; 32 | } 33 | #QR a{ 34 | border:0; 35 | } 36 | #QR img{ 37 | width: 180px; 38 | max-width: 100%; 39 | display: inline-block; 40 | margin: 0.8em 2em 0 2em; 41 | } 42 | #wechat:hover p{ 43 | animation: roll 0.1s infinite linear; 44 | -webkit-animation: roll 0.1s infinite linear; 45 | -moz-animation: roll 0.1s infinite linear; 46 | } 47 | #alipay:hover p{ 48 | animation: roll 0.1s infinite linear; 49 | -webkit-animation: roll 0.1s infinite linear; 50 | -moz-animation: roll 0.1s infinite linear; 51 | } 52 | #bitcoin:hover p { 53 | animation: roll 0.1s infinite linear; 54 | -webkit-animation: roll 0.1s infinite linear; 55 | -moz-animation: roll 0.1s infinite linear; 56 | } 57 | @keyframes roll { 58 | from { 59 | transform(rotateZ(30deg)); 60 | } 61 | to { 62 | transform(rotateZ(-30deg)); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-rtl.styl: -------------------------------------------------------------------------------- 1 | .rtl { 2 | &.post-body { 3 | p, a, h1, h2, h3, h4, h5, h6, li, ul, ol { 4 | direction: rtl; 5 | font-family: UKIJ Ekran; 6 | } 7 | } 8 | &.post-title { 9 | font-family: UKIJ Ekran; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-tags.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-tags { 2 | margin-top: 40px; 3 | text-align: center; 4 | 5 | a { 6 | display: inline-block; 7 | margin-right: 10px; 8 | font-size: 13px; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-title.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-title { 2 | text-align: center; 3 | word-break: break-word; 4 | font-weight: $posts-expand-title-font-weight 5 | } 6 | .posts-expand .post-title-link { 7 | display: inline-block; 8 | position: relative; 9 | color: $black-light; 10 | border-bottom: none; 11 | line-height: 1.2; 12 | vertical-align: top; 13 | 14 | &::before { 15 | content: ""; 16 | position: absolute; 17 | width: 100%; 18 | height: 2px; 19 | bottom: 0; 20 | left: 0; 21 | background-color: #000; 22 | visibility: hidden; 23 | transform: scaleX(0); 24 | the-transition(); 25 | } 26 | 27 | &:hover::before { 28 | visibility: visible; 29 | transform: scaleX(1); 30 | } 31 | 32 | .fa { font-size: 16px; } 33 | } 34 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-type.styl: -------------------------------------------------------------------------------- 1 | // TODO: Refactor. 2 | 3 | .page-home, .page-post-detail { 4 | .post-type-quote { 5 | .post-header, 6 | .post-tags { 7 | display: none; 8 | } 9 | 10 | blockquote { 11 | @extend .blockquote-center 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post-widgets.styl: -------------------------------------------------------------------------------- 1 | .post-widgets { 2 | border-top: 1px solid #eee; 3 | padding-top: 9px; 4 | margin-top: 45px; 5 | display: flex; 6 | justify-content: center; 7 | flex-wrap: wrap; 8 | align-items: center; 9 | 10 | .post-meta-divider { 11 | height: 28px; 12 | color: $grey-dark; 13 | } 14 | } 15 | 16 | .wp_rating { 17 | height: 20px; 18 | margin-right: 10px; 19 | text-align: center; 20 | line-height: 20px; 21 | padding-top: 6px; 22 | } 23 | 24 | .social-like { 25 | font-size: 14px; 26 | text-align: center; 27 | display: flex; 28 | justify-content: center; 29 | } 30 | 31 | .vk_like { 32 | width: 85px; 33 | height: 21px; 34 | padding-top: 7px; 35 | align-self: center; 36 | } 37 | 38 | .fb_like { 39 | height: 30px; 40 | align-self: center; 41 | } 42 | -------------------------------------------------------------------------------- /source/css/_common/components/post/post.styl: -------------------------------------------------------------------------------- 1 | .post-body { 2 | font-family: $font-family-posts; 3 | +mobile() { 4 | word-break: break-word; 5 | } 6 | } 7 | 8 | .post-body .fancybox img { 9 | display: block !important; 10 | margin: 0 auto; 11 | cursor: pointer; 12 | cursor: zoom-in; 13 | cursor: -webkit-zoom-in; 14 | } 15 | 16 | .post-body .image-caption { 17 | margin: -20px auto 15px; 18 | text-align: center; 19 | font-size: $font-size-base; 20 | color: $grey-dark; 21 | font-weight: bold; 22 | line-height: 1; 23 | } 24 | 25 | .post-body .figure .caption { 26 | @extend .post-body .image-caption; 27 | } 28 | 29 | .post-sticky-flag { 30 | display: inline-block; 31 | font-size: 16px; 32 | -ms-transform: rotate(30deg); 33 | transform: rotate(30deg); 34 | } 35 | 36 | .use-motion { 37 | if hexo-config('motion.transition.post_block') { 38 | .post-block, 39 | .pagination, 40 | .comments { opacity: 0; } 41 | } 42 | if hexo-config('motion.transition.post_header') { .post-header { opacity: 0; } } 43 | if hexo-config('motion.transition.post_body') { .post-body { opacity: 0; } } 44 | if hexo-config('motion.transition.coll_header') { .collection-title { opacity: 0; } } 45 | } 46 | 47 | @import "post-expand"; 48 | @import "post-collapse"; 49 | @import "post-type"; 50 | @import "post-title"; 51 | @import "post-meta"; 52 | @import "post-button"; 53 | @import "post-tags"; 54 | @import "post-nav"; 55 | @import "post-eof"; 56 | @import "post-gallery"; 57 | @import "post-reward" if hexo-config('alipay') or hexo-config('wechatpay') or hexo-config('bitcoin'); 58 | @import "post-copyright" if hexo-config('post_copyright.enable'); 59 | @import "post-widgets" if (hexo-config('facebook_sdk.enable') and hexo-config('facebook_sdk.like_button')) or (hexo-config('vkontakte_api.enable') and hexo-config('vkontakte_api.like')) or hexo-config('rating.enable') or (hexo-config('needmoreshare2.enable') and hexo-config('needmoreshare2.postbottom.enable')); 60 | @import "post-rtl"; 61 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-author-links.styl: -------------------------------------------------------------------------------- 1 | .links-of-author { 2 | margin-top: 20px; 3 | } 4 | 5 | .links-of-author a { 6 | display: inline-block; 7 | vertical-align: middle; 8 | margin-right: 10px; 9 | margin-bottom: 10px; 10 | border-bottom-color: $black-light; 11 | font-size: 13px; 12 | 13 | &:before { 14 | display: inline-block; 15 | vertical-align: middle; 16 | margin-right: 3px; 17 | content: " "; 18 | width: 4px; 19 | height: 4px; 20 | border-radius: 50%; 21 | background: rgb(random-color(0, 255) - 50%, random-color(0, 255) - 50%, random-color(0, 255) - 50%); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-author.styl: -------------------------------------------------------------------------------- 1 | .site-author-image { 2 | display: block; 3 | margin: 0 auto; 4 | padding: $site-author-image-padding; 5 | max-width: $site-author-image-width; 6 | height: $site-author-image-height; 7 | border: $site-author-image-border-width solid $site-author-image-border-color; 8 | } 9 | 10 | .site-author-name { 11 | margin: $site-author-name-margin; 12 | text-align: $site-author-name-align; 13 | color: $site-author-name-color; 14 | font-weight: $site-author-name-weight; 15 | } 16 | 17 | .site-description { 18 | margin-top: $site-description-margin-top; 19 | text-align: $site-description-align; 20 | font-size: $site-description-font-size; 21 | color: $site-description-color; 22 | } 23 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll { font-size: 13px; } 2 | 3 | .links-of-blogroll-title { 4 | margin-top: 20px; 5 | font-size: 14px; 6 | font-weight: $font-weight-bold; 7 | } 8 | .links-of-blogroll-list { 9 | margin: 0; 10 | padding: 0; 11 | list-style: none; 12 | } 13 | 14 | .links-of-blogroll-item { 15 | padding: 2px 10px; 16 | 17 | a { 18 | max-width: 280px; 19 | box-sizing: border-box; 20 | display: inline-block; 21 | overflow: hidden; 22 | white-space: nowrap; 23 | text-overflow: ellipsis; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-dimmer.styl: -------------------------------------------------------------------------------- 1 | .sidebar-active #sidebar-dimmer { 2 | opacity: .7; 3 | -webkit-transform: translateX(-150%); 4 | transform: translateX(-150%); 5 | transition: opacity .2s; 6 | } 7 | 8 | #sidebar-dimmer { 9 | display: none; 10 | position: absolute; 11 | top: 0; 12 | left: 100%; 13 | width: 200%; 14 | height: 100%; 15 | background: #000; 16 | opacity: 0; 17 | transition: opacity .2s,transform 0s .2s; 18 | +mobile() { 19 | display: block; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-feed-link.styl: -------------------------------------------------------------------------------- 1 | .feed-link { 2 | margin-top: 20px; 3 | 4 | a { 5 | display: inline-block; 6 | padding: 0 15px; 7 | color: rgb(252, 100, 35); 8 | border: 1px solid rgb(252, 100, 35); 9 | border-radius: 4px; 10 | 11 | i { 12 | color: rgb(252, 100, 35); 13 | font-size: 14px; 14 | } 15 | 16 | &:hover { 17 | color:white; 18 | background: rgb(252, 100, 35); 19 | 20 | i { color: white; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-nav.styl: -------------------------------------------------------------------------------- 1 | // Sidebar Navigation 2 | 3 | .sidebar-nav { 4 | margin: 0 0 20px; 5 | padding-left: 0; 6 | } 7 | .sidebar-nav li { 8 | display: inline-block; 9 | cursor: pointer; 10 | border-bottom: 1px solid transparent; 11 | font-size: 14px; 12 | color: $sidebar-nav-color; 13 | 14 | &:hover { color: $sidebar-nav-hover-color; } 15 | } 16 | 17 | .page-post-detail .sidebar-nav-toc { padding: 0 5px; } 18 | 19 | .page-post-detail .sidebar-nav-overview { margin-left: 10px; } 20 | 21 | .sidebar-nav .sidebar-nav-active { 22 | color: $sidebar-highlight; 23 | border-bottom-color: $sidebar-highlight; 24 | 25 | &:hover { color: $sidebar-highlight; } 26 | } 27 | 28 | .sidebar-panel { display: none; } 29 | .sidebar-panel-active { display: block; } 30 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-toc.styl: -------------------------------------------------------------------------------- 1 | 2 | .post-toc-empty { 3 | font-size: 14px; 4 | color: $grey-dim; 5 | } 6 | 7 | .post-toc-wrap { overflow: hidden; } 8 | 9 | .post-toc { overflow: auto; } 10 | 11 | .post-toc ol { 12 | margin: 0; 13 | padding: 0 2px 5px 10px; 14 | text-align: left; 15 | list-style: none; 16 | font-size: 14px; 17 | 18 | & > ol { padding-left: 0; } 19 | 20 | a { 21 | the-transition(); 22 | transition-property: all; 23 | color: $toc-link-color; 24 | border-bottom-color: $toc-link-border-color; 25 | 26 | &:hover { 27 | color: $toc-link-hover-color; 28 | border-bottom-color: $toc-link-hover-border-color; 29 | } 30 | } 31 | } 32 | 33 | .post-toc .nav-item { 34 | overflow: hidden; 35 | text-overflow: ellipsis; 36 | text-align: justify; 37 | white-space: nowrap if !hexo-config('toc.wrap'); 38 | line-height: 1.8; 39 | } 40 | 41 | .post-toc .nav .nav-child { display: none; } 42 | 43 | .post-toc .nav .active > .nav-child { display: block; } 44 | 45 | .post-toc .nav .active-current > .nav-child { 46 | display: block; 47 | & > .nav-item { display: block; } 48 | } 49 | 50 | .post-toc .nav .active > a { 51 | color: $toc-link-active-color; 52 | border-bottom-color: $toc-link-active-border-color; 53 | } 54 | 55 | .post-toc .nav .active-current > a { 56 | color: $toc-link-active-current-color; 57 | &:hover { 58 | color: $toc-link-active-current-border-color; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar-toggle.styl: -------------------------------------------------------------------------------- 1 | .sidebar-toggle { 2 | position: fixed; 3 | right: $b2t-position-right; 4 | bottom: 45px; 5 | width: 14px; 6 | height: 14px; 7 | padding: 5px; 8 | background: $black-deep; 9 | line-height: 0; 10 | z-index: $zindex-5; 11 | cursor: pointer; 12 | -webkit-transform: translateZ(0); 13 | 14 | +tablet() { 15 | fixbutton() if hexo-config('sidebar.onmobile'); 16 | hide() if not hexo-config('sidebar.onmobile'); 17 | } 18 | +mobile() { 19 | fixbutton() if hexo-config('sidebar.onmobile'); 20 | hide() if not hexo-config('sidebar.onmobile'); 21 | } 22 | } 23 | 24 | 25 | 26 | .sidebar-toggle-line { 27 | position: relative; 28 | display: inline-block; 29 | vertical-align: top; 30 | height: 2px; 31 | width: 100%; 32 | background: white; 33 | margin-top: 3px; 34 | 35 | &:first-child { margin-top: 0; } 36 | } 37 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/sidebar.styl: -------------------------------------------------------------------------------- 1 | .sidebar { 2 | position: fixed; 3 | right: 0; 4 | top: 0; 5 | bottom: 0; 6 | 7 | width: 0; 8 | z-index: $zindex-4; 9 | box-shadow: inset 0 2px 6px black; 10 | background: $black-deep; 11 | -webkit-transform: translateZ(0); // http://stackoverflow.com/questions/17079857/position-fixed-broken-in-chrome-with-flash-behind 12 | 13 | a { 14 | color: $grey-dark; 15 | border-bottom-color: $black-light; 16 | &:hover { color: $gainsboro; } 17 | } 18 | 19 | +tablet() { 20 | hide() if not hexo-config('sidebar.onmobile'); 21 | } 22 | +mobile() { 23 | hide() if not hexo-config('sidebar.onmobile'); 24 | } 25 | 26 | } 27 | 28 | .sidebar-inner { 29 | position: relative; 30 | padding: 20px 10px; 31 | color: $grey-dark; 32 | text-align: center; 33 | } 34 | 35 | .site-overview-wrap { 36 | overflow: hidden; 37 | } 38 | 39 | .site-overview { 40 | overflow-y: auto; 41 | overflow-x: hidden; 42 | } 43 | 44 | @import "sidebar-toggle"; 45 | @import "sidebar-author"; 46 | @import "site-state"; 47 | @import "sidebar-feed-link"; 48 | @import "sidebar-author-links"; 49 | @import "sidebar-blogroll"; 50 | @import "sidebar-nav"; 51 | @import "sidebar-toc"; 52 | @import "sidebar-dimmer" if hexo-config('sidebar.onmobile'); 53 | -------------------------------------------------------------------------------- /source/css/_common/components/sidebar/site-state.styl: -------------------------------------------------------------------------------- 1 | .site-state { 2 | overflow: hidden; 3 | line-height: 1.4; 4 | white-space: nowrap; 5 | text-align: $site-state-align; 6 | } 7 | 8 | .site-state-item { 9 | display: inline-block; 10 | padding: 0 15px; 11 | border-left: 1px solid $site-state-item-border-color; 12 | 13 | &:first-child { border-left: none; } 14 | 15 | a { border-bottom: none; } 16 | } 17 | .site-state-item-count { 18 | display: block; 19 | text-align: center; 20 | color: $site-state-item-count-color; 21 | font-weight: $font-weight-bold; 22 | font-size: $site-state-item-count-font-size; 23 | } 24 | 25 | .site-state-item-name { 26 | font-size: $site-state-item-name-font-size; 27 | color: $site-state-item-name-color; 28 | } 29 | -------------------------------------------------------------------------------- /source/css/_common/components/tag-cloud.styl: -------------------------------------------------------------------------------- 1 | .tag-cloud { 2 | text-align: center; 3 | 4 | a { 5 | display: inline-block; 6 | margin: 10px; 7 | } 8 | } -------------------------------------------------------------------------------- /source/css/_common/components/tags/blockquote-center.styl: -------------------------------------------------------------------------------- 1 | // Blockquote with all children centered. 2 | .blockquote-center { 3 | position: relative; 4 | margin: 40px 0; 5 | padding: 0; 6 | border-left: none; 7 | text-align: center; 8 | 9 | &::before, &::after { 10 | position: absolute; 11 | content: ' '; 12 | display: block; 13 | width: 100%; 14 | height: 24px; 15 | opacity: 0.2; 16 | background-repeat: no-repeat; 17 | background-position: 0 -6px; 18 | background-size: 22px 22px; 19 | } 20 | &::before { 21 | top: -20px; 22 | background-image: url($center-quote-left); 23 | border-top: 1px solid $grey-light; 24 | } 25 | &::after { 26 | bottom: -20px; 27 | background-image: url($center-quote-right); 28 | border-bottom: 1px solid $grey-light; 29 | background-position: 100% 8px; 30 | } 31 | 32 | p, div { text-align: center; } 33 | } 34 | -------------------------------------------------------------------------------- /source/css/_common/components/tags/exturl.styl: -------------------------------------------------------------------------------- 1 | .exturl { 2 | // Remove the gray background color from active links in IE 10. 3 | background-color: transparent; 4 | 5 | cursor: pointer; 6 | border-bottom: 1px solid #999; 7 | 8 | .fa { 9 | font-size: 14px; 10 | } 11 | } 12 | 13 | // Improve readability when focused and also mouse hovered in all browsers. 14 | .exturl:active, .exturl:hover { 15 | outline: 0; 16 | color: $black-deep; 17 | border-bottom-color: $black-deep; 18 | } 19 | -------------------------------------------------------------------------------- /source/css/_common/components/tags/full-image.styl: -------------------------------------------------------------------------------- 1 | // Expand image to 126% with nagative margin-left/right on Desktop. 2 | .full-image.full-image.full-image.full-image { 3 | border: none; 4 | max-width: 100%; 5 | width: auto; 6 | margin: 20px auto 25px; 7 | +desktop() { 8 | max-width: none; 9 | width: $full-image-width; 10 | margin: $full-image-margin-vertical $full-image-margin-horizontal; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /source/css/_common/components/tags/group-pictures.styl: -------------------------------------------------------------------------------- 1 | .post .post-body .group-picture { 2 | img { 3 | box-sizing: border-box; 4 | padding: 0 3px; 5 | border: none; 6 | } 7 | } 8 | 9 | .post .group-picture-row { 10 | overflow: hidden; 11 | margin-top: 6px; 12 | &:first-child { margin-top: 0; } 13 | } 14 | 15 | .post .group-picture-column { float: left; } 16 | 17 | .page-post-detail .post-body .group-picture-column { 18 | float: none; 19 | margin-top: 10px; 20 | width: auto !important; 21 | img { margin: 0 auto; } 22 | } 23 | 24 | .page-archive { 25 | .group-picture-container { overflow: hidden; } 26 | .group-picture-row { 27 | float: left; 28 | &:first-child { margin-top: 6px; } 29 | } 30 | 31 | .group-picture-column { 32 | max-width: 150px; 33 | max-height: 150px; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /source/css/_common/components/tags/label.styl: -------------------------------------------------------------------------------- 1 | .post-body .label { 2 | display: inline; 3 | padding: 0 2px; 4 | white-space: nowrap; 5 | 6 | &.default { background-color: $label-default; } 7 | &.primary { background-color: $label-primary; } 8 | &.info { background-color: $label-info; } 9 | &.success { background-color: $label-success; } 10 | &.warning { background-color: $label-warning; } 11 | &.danger { background-color: $label-danger; } 12 | } 13 | -------------------------------------------------------------------------------- /source/css/_common/components/tags/tags.styl: -------------------------------------------------------------------------------- 1 | @import "full-image"; 2 | @import "blockquote-center"; 3 | @import "group-pictures"; 4 | @import "exturl" if hexo-config('exturl'); 5 | @import "note" if hexo-config('note.style') == 'simple' || hexo-config('note.style') == 'flat'; 6 | @import "note-modern" if hexo-config('note.style') == 'modern'; 7 | @import "label" if hexo-config('label'); 8 | @import "tabs" if hexo-config('tabs.enable'); 9 | -------------------------------------------------------------------------------- /source/css/_common/components/third-party/baidushare.styl: -------------------------------------------------------------------------------- 1 | .post-spread { 2 | margin-top: 20px; 3 | text-align: center; 4 | } 5 | 6 | .bdshare-slide-button-box a { border: none; } 7 | 8 | .bdsharebuttonbox { 9 | display: inline-block; 10 | 11 | a { border: none; } 12 | } 13 | -------------------------------------------------------------------------------- /source/css/_common/components/third-party/busuanzi-counter.styl: -------------------------------------------------------------------------------- 1 | if hexo-config("scheme") == Pisces 2 | .busuanzi-count { 3 | +tablet() { 4 | width: auto; 5 | } 6 | +mobile() { 7 | width: auto; 8 | } 9 | } 10 | 11 | .site-uv, 12 | .site-pv, 13 | .page-pv { 14 | display: inline-block; 15 | 16 | .busuanzi-value { 17 | margin: 0 5px; 18 | } 19 | } 20 | 21 | if hexo-config("busuanzi_count.site_pv") and hexo-config("busuanzi_count.site_uv") 22 | .site-uv 23 | { 24 | margin-right: 10px; 25 | 26 | &::after { 27 | content: "|"; 28 | padding-left: 10px; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /source/css/_common/components/third-party/gitment.styl: -------------------------------------------------------------------------------- 1 | #gitment-display-button{ 2 | display: inline-block; 3 | padding: 0 15px; 4 | color: #0a9caf; 5 | cursor: pointer; 6 | font-size: 14px; 7 | border: 1px solid #0a9caf; 8 | border-radius: 4px; 9 | } 10 | #gitment-display-button:hover{ 11 | color: #fff; 12 | background: #0a9caf; 13 | } -------------------------------------------------------------------------------- /source/css/_common/components/third-party/han.styl: -------------------------------------------------------------------------------- 1 | .fa { 2 | font-family: FontAwesome!important; 3 | } 4 | -------------------------------------------------------------------------------- /source/css/_common/components/third-party/jiathis.styl: -------------------------------------------------------------------------------- 1 | .post-spread { 2 | margin-top: 20px; 3 | text-align: center; 4 | } 5 | 6 | .jiathis_style { 7 | display: inline-block; 8 | 9 | a { border: none; } 10 | } -------------------------------------------------------------------------------- /source/css/_common/components/third-party/localsearch.styl: -------------------------------------------------------------------------------- 1 | .local-search-pop-overlay 2 | position: fixed 3 | width: 100% 4 | height: 100% 5 | top: 0 6 | left: 0 7 | z-index: 2080 8 | background-color: rgba(0, 0, 0, 0.3) 9 | 10 | .local-search-popup 11 | display: none 12 | position: fixed 13 | top: 10% 14 | left: 50% 15 | margin-left: -350px 16 | width: 700px 17 | height: 80% 18 | padding: 0 19 | background: #fff 20 | color: #333 21 | z-index: 9999 22 | border-radius: 5px 23 | +mobile() 24 | padding: 0 25 | top: 0 26 | left: 0 27 | margin: 0 28 | width: 100% 29 | height: 100% 30 | border-radius: 0 31 | 32 | ul.search-result-list 33 | padding: 0 34 | margin: 0 5px 35 | 36 | p.search-result 37 | border-bottom: 1px dashed #ccc 38 | padding: 5px 0 39 | 40 | a.search-result-title 41 | font-weight: bold 42 | font-size: 16px 43 | 44 | .search-keyword 45 | border-bottom: 1px dashed #f00 46 | font-weight: bold 47 | color: #f00 48 | 49 | .local-search-header 50 | padding: 5px 51 | height: 36px 52 | background: #f5f5f5 53 | border-top-left-radius: 5px 54 | border-top-right-radius: 5px 55 | 56 | #local-search-result 57 | overflow: auto 58 | position: relative 59 | padding: 5px 25px 60 | height: calc(100% - 55px) 61 | 62 | .local-search-input-wrapper 63 | display: inline-block 64 | width: calc(100% - 90px) 65 | height: 36px 66 | line-height: 36px 67 | padding: 0 5px 68 | 69 | .local-search-input-wrapper input 70 | padding: 8px 0 71 | height: 20px 72 | display: block 73 | width: 100% 74 | outline: none 75 | border: none 76 | background: transparent 77 | vertical-align: middle 78 | 79 | .search-icon, .popup-btn-close 80 | display: inline-block 81 | font-size: 18px 82 | color: #999 83 | height: 36px 84 | width: 18px 85 | padding-left: 10px 86 | padding-right: 10px 87 | 88 | .search-icon 89 | float: left 90 | 91 | .popup-btn-close 92 | border-left: 1px solid #eee 93 | float: right 94 | cursor: pointer 95 | 96 | #no-result 97 | position: absolute 98 | left: 50% 99 | top: 50% 100 | -webkit-transform: translate(-50%, -50%) 101 | transform: translate(-50%, -50%) 102 | color: #ccc 103 | -------------------------------------------------------------------------------- /source/css/_common/components/third-party/needsharebutton.styl: -------------------------------------------------------------------------------- 1 | #needsharebutton-postbottom { 2 | position: relative; 3 | cursor: pointer; 4 | height: 26px; 5 | 6 | .btn { 7 | display: initial; 8 | padding: 1px 4px; 9 | border: 1px solid $btn-default-border-color; 10 | border-radius: 3px; 11 | } 12 | } 13 | 14 | #needsharebutton-float { 15 | position: fixed; 16 | bottom: 38px; 17 | left: -8px; 18 | z-index: 9999; 19 | cursor: pointer; 20 | 21 | .btn { 22 | //display: initial; 23 | padding: 0 10px 0 14px 24 | border: 1px solid $btn-default-border-color; 25 | border-radius: 4px; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /source/css/_common/components/third-party/third-party.styl: -------------------------------------------------------------------------------- 1 | @import "duoshuo"; 2 | @import "gitment" if hexo-config('gitment.enable'); 3 | @import "jiathis"; 4 | @import "han"; 5 | @import "baidushare"; 6 | @import "localsearch"; 7 | @import "busuanzi-counter"; 8 | @import "algolia-search" if hexo-config('algolia_search.enable'); 9 | @import "needsharebutton" if hexo-config('needmoreshare2.enable'); 10 | -------------------------------------------------------------------------------- /source/css/_common/outline/outline.styl: -------------------------------------------------------------------------------- 1 | // 2 | // Layout 3 | // Note: Must name this file "outline" instead of "layout" 4 | // Or Hexo will use it as template layout. 5 | // ================================================= 6 | 7 | 8 | html, body { height: 100%; } 9 | 10 | .container { 11 | position: relative; 12 | min-height: 100%; 13 | } 14 | 15 | 16 | // Header Section 17 | // -------------------------------------------------- 18 | .header-inner { 19 | margin: 0 auto; 20 | padding: 100px 0 70px; 21 | width: $content-desktop; 22 | 23 | +desktop-large() { 24 | .container & { width: $content-desktop-large; } 25 | } 26 | } 27 | 28 | // Main Section 29 | // -------------------------------------------------- 30 | .main { padding-bottom: $footer-height + $gap-between-main-and-footer; } 31 | .main-inner { 32 | margin: 0 auto; 33 | width: $content-desktop; 34 | 35 | +desktop-large() { 36 | .container & { width: $content-desktop-large; } 37 | } 38 | } 39 | 40 | 41 | // Footer Section 42 | // -------------------------------------------------- 43 | .footer { 44 | position: absolute; 45 | left: 0; 46 | bottom: 0; 47 | width: 100%; 48 | min-height: $footer-height; 49 | } 50 | .footer-inner { 51 | box-sizing: border-box; 52 | margin: 20px auto; 53 | width: $content-desktop; 54 | 55 | +desktop-large() { 56 | .container & { width: $content-desktop-large; } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /source/css/_common/scaffolding/helpers.styl: -------------------------------------------------------------------------------- 1 | // 2 | // Helpers 3 | // ================================================= 4 | 5 | 6 | 7 | // Alignment 8 | .text-left { text-align: left; } 9 | .text-center { text-align: center; } 10 | .text-right { text-align: right; } 11 | .text-justify { text-align: justify; } 12 | .text-nowrap { white-space: nowrap; } 13 | 14 | 15 | // Transformation 16 | .text-lowercase { text-transform: lowercase; } 17 | .text-uppercase { text-transform: uppercase; } 18 | .text-capitalize { text-transform: capitalize; } 19 | 20 | 21 | // Center-align a block level element. 22 | .center-block { 23 | display: block; 24 | margin-left: auto; 25 | margin-right: auto; 26 | } 27 | 28 | 29 | // Clearfix. http://nicolasgallagher.com/micro-clearfix-hack/ 30 | .clearfix { 31 | clearfix(); 32 | } 33 | 34 | .pullquote { 35 | width: 45%; 36 | 37 | &.left { 38 | float: left; 39 | margin-left: 5px; 40 | margin-right: 10px; 41 | } 42 | 43 | &.right { 44 | float: right; 45 | margin-left: 10px; 46 | margin-right: 5px; 47 | } 48 | } 49 | 50 | .affix.affix.affix { position: fixed; } 51 | 52 | .translation { 53 | margin-top: -20px; 54 | font-size: 14px; 55 | color: $grey-dark; 56 | } 57 | 58 | // https://davidwalsh.name/detect-scrollbar-width 59 | .scrollbar-measure { 60 | width: 100px; 61 | height: 100px; 62 | overflow: scroll; 63 | position: absolute; 64 | top: -9999px; 65 | } 66 | 67 | .use-motion .motion-element { opacity: 0; } 68 | -------------------------------------------------------------------------------- /source/css/_common/scaffolding/scaffolding.styl: -------------------------------------------------------------------------------- 1 | // 2 | // Scaffolding 3 | // ================================================= 4 | 5 | @import "normalize"; 6 | @import "base"; 7 | @import "helpers"; 8 | @import "tables"; 9 | @import "mobile" if hexo-config('mobile_layout_economy'); 10 | -------------------------------------------------------------------------------- /source/css/_common/scaffolding/tables.styl: -------------------------------------------------------------------------------- 1 | table { 2 | margin: 20px 0; 3 | width: $table-width; 4 | border-collapse: collapse; 5 | border-spacing: 0; 6 | border: 1px solid $table-border-color; 7 | font-size: $table-font-size; 8 | table-layout: fixed; 9 | word-wrap: break-all; 10 | } 11 | table>tbody>tr { 12 | &:nth-of-type(odd) { background-color: $table-row-odd-bg-color; } 13 | &:hover { background-color: $table-row-hover-bg-color; } 14 | } 15 | 16 | caption, th, td { 17 | padding: $table-cell-padding; 18 | text-align: $table-content-alignment; 19 | vertical-align: $table-content-vertical; 20 | font-weight: normal; 21 | } 22 | 23 | th, td { 24 | border-bottom: 3px solid $table-cell-border-bottom-color; 25 | border-right: 1px solid $table-cell-border-right-color; 26 | } 27 | 28 | th { 29 | padding-bottom: 10px; 30 | font-weight: $table-th-font-weight; 31 | } 32 | 33 | td { border-bottom-width: 1px; } 34 | -------------------------------------------------------------------------------- /source/css/_custom/custom.styl: -------------------------------------------------------------------------------- 1 | // Custom styles. 2 | -------------------------------------------------------------------------------- /source/css/_mixins/Gemini.styl: -------------------------------------------------------------------------------- 1 | @import "Pisces.styl"; 2 | -------------------------------------------------------------------------------- /source/css/_mixins/Mist.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/css/_mixins/Mist.styl -------------------------------------------------------------------------------- /source/css/_mixins/Muse.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/css/_mixins/Muse.styl -------------------------------------------------------------------------------- /source/css/_mixins/Pisces.styl: -------------------------------------------------------------------------------- 1 | sidebar-inline-links-item() { 2 | margin: 5px 0 0; 3 | if !hexo-config('social_icons.icons_only') { width: 50%; } 4 | 5 | & a { 6 | max-width: 216px; 7 | box-sizing: border-box; 8 | display: inline-block; 9 | margin-right: 0; 10 | margin-bottom: 0; 11 | padding: 0 5px; 12 | overflow: hidden; 13 | white-space: nowrap; 14 | text-overflow: ellipsis; 15 | if hexo-config('social_icons.transition') { the-transition(); } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /source/css/_mixins/base.styl: -------------------------------------------------------------------------------- 1 | the-transition() { 2 | transition-duration: 0.2s; 3 | transition-timing-function: ease-in-out; 4 | transition-delay: 0s; 5 | } 6 | 7 | the-transition-ease-in() { 8 | transition-duration: 0.2s; 9 | transition-timing-function: ease-in; 10 | transition-delay: 0s; 11 | } 12 | 13 | the-transition-ease-out() { 14 | transition-duration: 0.2s; 15 | transition-timing-function: ease-out; 16 | transition-delay: 0s; 17 | } 18 | 19 | mobile-smallest() { 20 | @media (max-width: 413px) { 21 | {block} 22 | } 23 | } 24 | 25 | mobile-small() { 26 | @media (max-width: 567px) { 27 | {block} 28 | } 29 | } 30 | 31 | mobile() { 32 | @media (max-width: 767px) { 33 | {block} 34 | } 35 | } 36 | 37 | tablet() { 38 | @media (min-width: 768px) and (max-width: 991px) { 39 | {block} 40 | } 41 | } 42 | 43 | desktop() { 44 | @media (min-width: 992px) { 45 | {block} 46 | } 47 | } 48 | 49 | desktop-large() { 50 | @media (min-width: 1600px) { 51 | {block} 52 | } 53 | } 54 | 55 | circle() { 56 | border-radius: 50%; 57 | } 58 | 59 | transform() { 60 | -webkit-transform: arguments 61 | -moz-transform: arguments 62 | -ms-transform: arguments 63 | -o-transform: arguments 64 | transform: arguments 65 | } 66 | 67 | hide() { 68 | display: none !important; 69 | } 70 | 71 | show() { 72 | display: block !important; 73 | } 74 | 75 | fixbutton() { 76 | right: 20px; 77 | opacity: 0.8; 78 | } 79 | 80 | random-color($min, $max) { 81 | return floor(math(0, 'random') * ($max - $min + 1) + $min); 82 | } 83 | 84 | // Clearfix. http://nicolasgallagher.com/micro-clearfix-hack/ 85 | clearfix() { 86 | &:before, 87 | &:after { 88 | content: " "; 89 | display: table; 90 | } 91 | &:after { clear: both; } 92 | } 93 | -------------------------------------------------------------------------------- /source/css/_mixins/custom.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/css/_mixins/custom.styl -------------------------------------------------------------------------------- /source/css/_schemes/Mist/_base.styl: -------------------------------------------------------------------------------- 1 | // Tags 2 | // -------------------------------------------------- 3 | h1, h2, h3, h4, h5, h6 { margin: 20px 0 10px; } 4 | 5 | p { margin: 0 0 25px 0; } 6 | 7 | a { border-bottom-color: $grey-light; } 8 | 9 | hr { 10 | margin: 20px 0; 11 | height: 2px; 12 | } 13 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/_header.styl: -------------------------------------------------------------------------------- 1 | // Header 2 | // -------------------------------------------------- 3 | .header { background: $whitesmoke; } 4 | .header-inner { 5 | padding: 25px 0 20px; 6 | clearfix(); 7 | 8 | +mobile() { 9 | width: auto; 10 | margin-bottom: 50px; 11 | padding: 10px; 12 | } 13 | } 14 | 15 | .site-meta { 16 | float: left; 17 | margin-left: -20px; 18 | line-height: normal; 19 | 20 | +mobile() { 21 | margin-left: 10px; 22 | } 23 | 24 | .brand { 25 | padding: 2px 1px; 26 | background: none; 27 | 28 | +mobile() { display: block; } 29 | } 30 | 31 | .logo { display: none; } 32 | 33 | .site-title { 34 | font-size: 22px; 35 | font-weight: bolder; 36 | 37 | +mobile() { line-height: 34px; } 38 | } 39 | } 40 | 41 | 42 | .logo-line-before, 43 | .logo-line-after { 44 | display: block; 45 | overflow: hidden; 46 | margin: 0 auto; 47 | width: 75%; 48 | 49 | +mobile() { display: none; } 50 | 51 | i { 52 | position: relative; 53 | display: block; 54 | height: 2px; 55 | background: $black-deep; 56 | +mobile() { height: 3px; } 57 | } 58 | } 59 | 60 | .use-motion { 61 | .logo-line-before i { left: -100%; } 62 | .logo-line-after i { right: -100%; } 63 | } 64 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/_logo.styl: -------------------------------------------------------------------------------- 1 | .site-subtitle { display: none; } 2 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/_menu.styl: -------------------------------------------------------------------------------- 1 | // Menu 2 | // -------------------------------------------------- 3 | .site-nav-toggle { 4 | position: static; 5 | float: right; 6 | } 7 | 8 | 9 | .menu { 10 | float: right; 11 | margin: 8px 0 0 0; 12 | 13 | +mobile() { 14 | margin: 20px 0 0 0; 15 | padding: 0; 16 | } 17 | 18 | br { display: none; } 19 | 20 | .menu-item { 21 | margin: 0; 22 | +mobile() { display: block; } 23 | } 24 | 25 | .menu-item a { 26 | padding: 0 10px; 27 | background: none; 28 | border: none; 29 | border-radius: 2px; 30 | transition-property: background; 31 | 32 | +mobile() { 33 | text-align: left; 34 | } 35 | 36 | &:hover { background: #e1e1e1; } 37 | } 38 | 39 | a::before { 40 | display: none; 41 | 42 | +mobile() { display: block; } 43 | } 44 | 45 | +mobile() { float: none; } 46 | } 47 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/_posts-expanded.styl: -------------------------------------------------------------------------------- 1 | // Post Expanded 2 | // -------------------------------------------------- 3 | .posts-expand { 4 | padding-top: 0; 5 | 6 | .post-title, 7 | .post-meta { 8 | text-align: $site-meta-text-align; 9 | +mobile() { text-align: center; } 10 | } 11 | .post-eof { display: none; } 12 | 13 | .post { margin-top: 120px; } 14 | .post:first-child { margin-top: 0; } 15 | 16 | .post-meta { 17 | margin-top: 5px; 18 | margin-bottom: 20px; 19 | } 20 | 21 | .post-title { 22 | position: relative; 23 | font-size: $font-size-headings-base; 24 | font-weight: 400; 25 | +mobile() { font-size: $font-size-headings-small; } 26 | +desktop-large() { font-size: $font-size-headings-large; } 27 | } 28 | .post-title:hover:before { background: $black-deep; } 29 | 30 | .post-body { 31 | +mobile() { font-size: $font-size-small; } 32 | } 33 | 34 | .post-body img { margin: 0; } 35 | 36 | .post-tags { 37 | text-align: left; 38 | a { 39 | padding: 1px 5px; 40 | background: $whitesmoke; 41 | border-bottom: none; 42 | } 43 | a:hover { background: $grey-light; } 44 | } 45 | .post-nav { margin-top: 40px; } 46 | } 47 | 48 | .post-button { 49 | margin-top: 20px; 50 | text-align: left; 51 | 52 | a { 53 | padding: 0; 54 | font-size: $font-size-base; 55 | //color: $grey-dim; 56 | background: none; 57 | border: none; 58 | border-bottom: 2px solid $grey-dim; 59 | transition-property: border; 60 | 61 | +mobile() { font-size: $font-size-small; } 62 | +desktop-large() { font-size: $font-size-large; } 63 | 64 | 65 | &:hover { border-bottom-color: $black-deep; } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/_search.styl: -------------------------------------------------------------------------------- 1 | // Search 2 | // -------------------------------------------------- 3 | .site-search form { 4 | display: none; 5 | } -------------------------------------------------------------------------------- /source/css/_schemes/Mist/index.styl: -------------------------------------------------------------------------------- 1 | // 2 | // Mist scheme 3 | // ================================================= 4 | 5 | @import "_base"; 6 | @import "outline/outline"; 7 | @import "_header"; 8 | @import "_logo"; 9 | @import "_menu"; 10 | @import "_search.styl"; 11 | @import "_posts-expanded"; 12 | @import "sidebar/sidebar-blogroll"; 13 | 14 | 15 | // Components 16 | // -------------------------------------------------- 17 | .btn { 18 | padding: 0 10px; 19 | border-width: 2px; 20 | border-radius: 0; 21 | } 22 | 23 | .headband { display: none; } 24 | 25 | 26 | // Search 27 | // -------------------------------------------------- 28 | .site-search { 29 | position: relative; 30 | float: right; 31 | margin-top: 5px; 32 | padding-top: 3px; 33 | 34 | +mobile() { 35 | float: none; 36 | padding: 0 10px; 37 | } 38 | } 39 | 40 | 41 | // Page - Container 42 | // -------------------------------------------------- 43 | .container .main-inner { 44 | +mobile() { width: auto; } 45 | } 46 | 47 | 48 | // Page - Post details 49 | // -------------------------------------------------- 50 | .page-post-detail { 51 | .post-title, 52 | .post-meta { text-align: center; } 53 | 54 | .post-title:before { display: none; } 55 | 56 | .post-meta { margin-bottom: 60px; } 57 | } 58 | 59 | 60 | // Pagination 61 | // -------------------------------------------------- 62 | .pagination { 63 | margin: 120px 0 0; 64 | text-align: left; 65 | 66 | +mobile() { 67 | margin: 80px 10px 0; 68 | text-align: center; 69 | } 70 | } 71 | 72 | // Footer 73 | // -------------------------------------------------- 74 | .footer { 75 | margin-top: 80px; 76 | padding: 10px 0; 77 | background: $whitesmoke; 78 | color: $grey-dim; 79 | } 80 | .footer-inner { 81 | margin: 0 auto; 82 | text-align: left; 83 | 84 | +mobile() { 85 | width: auto; 86 | text-align: center; 87 | } 88 | } 89 | 90 | // Helpers 91 | // -------------------------------------------------- 92 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/outline/outline.styl: -------------------------------------------------------------------------------- 1 | .main-inner { margin-top: 80px; } 2 | -------------------------------------------------------------------------------- /source/css/_schemes/Mist/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll-inline .links-of-blogroll-item { display: inline-block; } 2 | -------------------------------------------------------------------------------- /source/css/_schemes/Muse/_layout.styl: -------------------------------------------------------------------------------- 1 | .header-inner, .container .main-inner, .footer-inner { 2 | +mobile() { width: auto; } 3 | } 4 | 5 | // embed tag 6 | embed { 7 | display: block; 8 | margin: 0px auto 25px auto; 9 | } 10 | -------------------------------------------------------------------------------- /source/css/_schemes/Muse/_logo.styl: -------------------------------------------------------------------------------- 1 | .custom-logo { 2 | .site-meta-headline { text-align: center; } 3 | 4 | .brand { background: none; } 5 | 6 | .site-title { 7 | margin: 10px auto 0; 8 | font-size: 24px; 9 | color: $black-deep; 10 | a { border: none; } 11 | } 12 | 13 | 14 | } 15 | 16 | .custom-logo-image { 17 | margin: 0 auto; 18 | padding: 5px; 19 | max-width: 150px; 20 | background: white; 21 | } 22 | -------------------------------------------------------------------------------- /source/css/_schemes/Muse/_menu.styl: -------------------------------------------------------------------------------- 1 | .site-nav { 2 | +mobile() { 3 | position: absolute; 4 | left: 0; 5 | top: 52px; 6 | margin: 0; 7 | width: 100%; 8 | padding: 0; 9 | background: white; 10 | border-bottom: 1px solid $gray-lighter; 11 | z-index: $zindex-3; 12 | } 13 | } 14 | 15 | .menu { 16 | +mobile() { text-align: left; } 17 | } 18 | .menu .menu-item { 19 | +mobile() { 20 | display: block; 21 | margin: 0 10px; 22 | vertical-align: top; 23 | } 24 | 25 | br { 26 | +mobile() { display: none; } 27 | } 28 | 29 | a { 30 | +mobile() { padding: 5px 10px; } 31 | } 32 | .fa { margin-right: 0; } 33 | } 34 | -------------------------------------------------------------------------------- /source/css/_schemes/Muse/_search.styl: -------------------------------------------------------------------------------- 1 | // Search 2 | // -------------------------------------------------- 3 | .site-search form { 4 | display: none; 5 | } -------------------------------------------------------------------------------- /source/css/_schemes/Muse/index.styl: -------------------------------------------------------------------------------- 1 | @import "_layout.styl"; 2 | @import "_logo.styl"; 3 | @import "_menu.styl"; 4 | @import "_search.styl"; 5 | @import "sidebar/sidebar-blogroll"; 6 | -------------------------------------------------------------------------------- /source/css/_schemes/Muse/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll-inline .links-of-blogroll-item { display: inline-block; } 2 | -------------------------------------------------------------------------------- /source/css/_schemes/Pisces/_brand.styl: -------------------------------------------------------------------------------- 1 | .site-brand-wrapper { 2 | position: relative; 3 | } 4 | 5 | .site-meta { 6 | padding: 20px 0; 7 | color: white; 8 | background: $black-deep; 9 | 10 | +tablet() { 11 | box-shadow: 0 0 16px rgba(0,0,0,0.5); 12 | } 13 | +mobile() { 14 | box-shadow: 0 0 16px rgba(0,0,0,0.5); 15 | } 16 | } 17 | 18 | .brand { 19 | padding: 0; 20 | background: none; 21 | 22 | &:hover { color: white; } 23 | } 24 | 25 | .site-subtitle { 26 | margin: 10px 10px 0; 27 | font-weight: initial; 28 | } 29 | 30 | .site-search form { display: none; } 31 | -------------------------------------------------------------------------------- /source/css/_schemes/Pisces/_menu.styl: -------------------------------------------------------------------------------- 1 | .site-nav { 2 | border-top: none; 3 | 4 | +tablet() { 5 | display: none !important; 6 | } 7 | } 8 | 9 | .site-nav-on { 10 | +tablet() { 11 | display: block !important; 12 | } 13 | } 14 | 15 | .menu .menu-item { 16 | display: block; 17 | margin: 0; 18 | 19 | a { 20 | position: relative; 21 | box-sizing: border-box; 22 | padding: 5px 20px; 23 | text-align: left; 24 | line-height: inherit; 25 | transition-property: background-color; 26 | the-transition(); 27 | 28 | &:hover { 29 | background: #f9f9f9; 30 | border-bottom-color: white; 31 | } 32 | } 33 | 34 | br { display: none; } 35 | } 36 | 37 | .menu-item-active a { 38 | @extend .menu .menu-item a:hover; 39 | 40 | &:after { 41 | content: " "; 42 | position: absolute; 43 | top: 50%; 44 | margin-top: -3px; 45 | right: 15px; 46 | width: 6px; 47 | height: 6px; 48 | border-radius: 50%; 49 | background-color: $grey; 50 | } 51 | } 52 | 53 | .btn-bar { 54 | background-color: white; 55 | } 56 | 57 | .site-nav-toggle { 58 | left: 20px; 59 | top: 50%; 60 | 61 | -webkit-transform: translateY(-50%); 62 | transform: translateY(-50%); 63 | 64 | +tablet() { 65 | display: block; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /source/css/_schemes/Pisces/_posts.styl: -------------------------------------------------------------------------------- 1 | .post-body { 2 | +mobile() { 3 | text-align: justify; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /source/css/_schemes/Pisces/index.styl: -------------------------------------------------------------------------------- 1 | @import "_layout"; 2 | @import "_brand"; 3 | @import "_menu"; 4 | @import "_sidebar"; 5 | @import "_posts"; 6 | -------------------------------------------------------------------------------- /source/css/_variables/Gemini.styl: -------------------------------------------------------------------------------- 1 | // Variables of Gemini scheme 2 | // ================================================= 3 | 4 | @import "Pisces.styl"; 5 | 6 | // Settings for some of the most global styles. 7 | // -------------------------------------------------- 8 | $body-bg-color = #eee 9 | $main-desktop = 75% 10 | $sidebar-desktop = 240px 11 | $content-desktop = calc(100% - 252px) 12 | 13 | // Borders. 14 | // -------------------------------------------------- 15 | $box-shadow-inner = 0 2px 2px 0 rgba(0,0,0,.12), 0 3px 1px -2px rgba(0,0,0,.06), 0 1px 5px 0 rgba(0,0,0,.12) 16 | $box-shadow = 0 2px 2px 0 rgba(0,0,0,.12), 0 3px 1px -2px rgba(0,0,0,.06), 0 1px 5px 0 rgba(0,0,0,.12), 0 -1px .5px 0 rgba(0,0,0,.09) 17 | 18 | $border-radius-inner = initial 19 | $border-radius = initial 20 | //$border-radius-inner = 0 0 3px 3px; 21 | //$border-radius = 3px; 22 | -------------------------------------------------------------------------------- /source/css/_variables/Mist.styl: -------------------------------------------------------------------------------- 1 | // Variables of Mist scheme 2 | // ================================================= 3 | 4 | $font-size-headings-base = 26px 5 | 6 | $brand-color = $black-deep 7 | $brand-hover-color = $brand-color 8 | 9 | $site-meta-text-align = left 10 | $posts-collapse-left = 0 11 | 12 | $btn-default-color = $link-color 13 | $btn-default-bg = transparent 14 | -------------------------------------------------------------------------------- /source/css/_variables/Muse.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/css/_variables/Muse.styl -------------------------------------------------------------------------------- /source/css/_variables/custom.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/css/_variables/custom.styl -------------------------------------------------------------------------------- /source/css/main.styl: -------------------------------------------------------------------------------- 1 | // CSS Style Guide: http://codeguide.co/#css 2 | 3 | 4 | 5 | $scheme = hexo-config('scheme') ? hexo-config('scheme') : 'Muse'; 6 | $variables = base $scheme custom; 7 | $mixins = base $scheme custom; 8 | 9 | 10 | 11 | // Variables Layer 12 | // -------------------------------------------------- 13 | for $variable in $variables 14 | @import "_variables/" + $variable 15 | 16 | 17 | // Mixins Layer 18 | // -------------------------------------------------- 19 | for $mixin in $mixins 20 | @import "_mixins/" + $mixin; 21 | 22 | 23 | 24 | // Common Layer 25 | // -------------------------------------------------- 26 | 27 | // Scaffolding 28 | @import "_common/scaffolding"; 29 | 30 | // Layout 31 | @import "_common/outline"; 32 | 33 | // Components 34 | @import "_common/components"; 35 | 36 | 37 | // Schemes Layer 38 | // -------------------------------------------------- 39 | @import "_schemes/" + $scheme; 40 | 41 | 42 | 43 | // Custom Layer 44 | // -------------------------------------------------- 45 | @import "_custom/custom"; 46 | -------------------------------------------------------------------------------- /source/fonts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/fonts/.gitkeep -------------------------------------------------------------------------------- /source/images/apple-touch-icon-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/apple-touch-icon-next.png -------------------------------------------------------------------------------- /source/images/avatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/avatar.gif -------------------------------------------------------------------------------- /source/images/favicon-16x16-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/favicon-16x16-next.png -------------------------------------------------------------------------------- /source/images/favicon-32x32-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/favicon-32x32-next.png -------------------------------------------------------------------------------- /source/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/loading.gif -------------------------------------------------------------------------------- /source/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | image/svg+xml 24 | -------------------------------------------------------------------------------- /source/images/placeholder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/placeholder.gif -------------------------------------------------------------------------------- /source/images/quote-l.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /source/images/quote-r.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /source/images/searchicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/images/searchicon.png -------------------------------------------------------------------------------- /source/js/src/bootstrap.js: -------------------------------------------------------------------------------- 1 | /* global NexT: true */ 2 | 3 | $(document).ready(function () { 4 | 5 | $(document).trigger('bootstrap:before'); 6 | 7 | NexT.utils.isMobile() && window.FastClick.attach(document.body); 8 | 9 | NexT.utils.lazyLoadPostsImages(); 10 | 11 | NexT.utils.registerESCKeyEvent(); 12 | 13 | NexT.utils.registerBackToTop(); 14 | 15 | // Mobile top menu bar. 16 | $('.site-nav-toggle button').on('click', function () { 17 | var $siteNav = $('.site-nav'); 18 | var ON_CLASS_NAME = 'site-nav-on'; 19 | var isSiteNavOn = $siteNav.hasClass(ON_CLASS_NAME); 20 | var animateAction = isSiteNavOn ? 'slideUp' : 'slideDown'; 21 | var animateCallback = isSiteNavOn ? 'removeClass' : 'addClass'; 22 | 23 | $siteNav.stop()[animateAction]('fast', function () { 24 | $siteNav[animateCallback](ON_CLASS_NAME); 25 | }); 26 | }); 27 | 28 | /** 29 | * Register JS handlers by condition option. 30 | * Need to add config option in Front-End at 'layout/_partials/head.swig' file. 31 | */ 32 | CONFIG.fancybox && NexT.utils.wrapImageWithFancyBox(); 33 | CONFIG.tabs && NexT.utils.registerTabsTag(); 34 | 35 | NexT.utils.embeddedVideoTransformer(); 36 | NexT.utils.addActiveClassToMenuItem(); 37 | 38 | 39 | // Define Motion Sequence. 40 | NexT.motion.integrator 41 | .add(NexT.motion.middleWares.logo) 42 | .add(NexT.motion.middleWares.menu) 43 | .add(NexT.motion.middleWares.postList) 44 | .add(NexT.motion.middleWares.sidebar); 45 | 46 | $(document).trigger('motion:before'); 47 | 48 | // Bootstrap Motion. 49 | CONFIG.motion.enable && NexT.motion.integrator.bootstrap(); 50 | 51 | $(document).trigger('bootstrap:after'); 52 | }); 53 | -------------------------------------------------------------------------------- /source/js/src/exturl.js: -------------------------------------------------------------------------------- 1 | /* global NexT: true */ 2 | 3 | $(document).ready(function () { 4 | 5 | // Create Base64 Object 6 | var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}; 7 | 8 | $('.exturl').on('click', function () { 9 | var $exturl = $(this).attr('data-url'); 10 | var $decurl = Base64.decode($exturl); 11 | window.open($decurl, '_blank'); 12 | return false; 13 | }); 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /source/js/src/schemes/pisces.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var sidebarInner = $('.sidebar-inner'); 4 | 5 | initAffix(); 6 | resizeListener(); 7 | 8 | function initAffix () { 9 | var headerOffset = getHeaderOffset(), 10 | footerOffset = getFooterOffset(), 11 | sidebarHeight = $('#sidebar').height() + NexT.utils.getSidebarb2tHeight(), 12 | contentHeight = $('#content').height(); 13 | 14 | // Not affix if sidebar taller then content (to prevent bottom jumping). 15 | if (headerOffset + sidebarHeight < contentHeight) { 16 | sidebarInner.affix({ 17 | offset: { 18 | top: headerOffset - CONFIG.sidebar.offset, 19 | bottom: footerOffset 20 | } 21 | }); 22 | } 23 | 24 | setSidebarMarginTop(headerOffset).css({ 'margin-left': 'initial' }); 25 | } 26 | 27 | function resizeListener () { 28 | var mql = window.matchMedia('(min-width: 991px)'); 29 | mql.addListener(function(e){ 30 | if(e.matches){ 31 | recalculateAffixPosition(); 32 | } 33 | }); 34 | } 35 | 36 | function getHeaderOffset () { 37 | return $('.header-inner').height() + CONFIG.sidebar.offset; 38 | } 39 | 40 | function getFooterOffset () { 41 | var footerInner = $('.footer-inner'), 42 | footerMargin = footerInner.outerHeight(true) - footerInner.outerHeight(), 43 | footerOffset = footerInner.outerHeight(true) + footerMargin; 44 | return footerOffset; 45 | } 46 | 47 | function setSidebarMarginTop (headerOffset) { 48 | return $('#sidebar').css({ 'margin-top': headerOffset }); 49 | } 50 | 51 | function recalculateAffixPosition () { 52 | $(window).off('.affix'); 53 | sidebarInner.removeData('bs.affix').removeClass('affix affix-top affix-bottom'); 54 | initAffix(); 55 | } 56 | 57 | }); 58 | -------------------------------------------------------------------------------- /source/js/src/scroll-cookie.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | // Set relative link path (without domain) 4 | var rpath = window.location.href.replace(window.location.origin, ""); 5 | 6 | // Write position in cookie 7 | var timeout; 8 | $(window).on("scroll", function() { 9 | clearTimeout(timeout); 10 | timeout = setTimeout(function () { 11 | Cookies.set("scroll-cookie", ($(window).scrollTop() + "|" + rpath), { expires: 365, path: '' }); 12 | }, 250); 13 | }); 14 | 15 | // Read position from cookie 16 | if (Cookies.get("scroll-cookie") !== undefined) { 17 | var cvalues = Cookies.get("scroll-cookie").split('|'); 18 | if (cvalues[1] == rpath) { 19 | $(window).scrollTop(cvalues[0]); 20 | } 21 | } 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /source/lib/Han/dist/font/han-space.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/Han/dist/font/han-space.otf -------------------------------------------------------------------------------- /source/lib/Han/dist/font/han-space.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/Han/dist/font/han-space.woff -------------------------------------------------------------------------------- /source/lib/Han/dist/font/han.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/Han/dist/font/han.otf -------------------------------------------------------------------------------- /source/lib/Han/dist/font/han.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/Han/dist/font/han.woff -------------------------------------------------------------------------------- /source/lib/Han/dist/font/han.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/Han/dist/font/han.woff2 -------------------------------------------------------------------------------- /source/lib/canvas-nest/canvas-nest.min.js: -------------------------------------------------------------------------------- 1 | !function(){function o(w,v,i){return w.getAttribute(v)||i}function j(i){return document.getElementsByTagName(i)}function l(){var i=j("script"),w=i.length,v=i[w-1];return{l:w,z:o(v,"zIndex",-1),o:o(v,"opacity",0.5),c:o(v,"color","0,0,0"),n:o(v,"count",99)}}function k(){r=u.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=u.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}function b(){e.clearRect(0,0,r,n);var w=[f].concat(t);var x,v,A,B,z,y;t.forEach(function(i){i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>r||i.x<0?-1:1,i.ya*=i.y>n||i.y<0?-1:1,e.fillRect(i.x-0.5,i.y-0.5,1,1);for(v=0;v=x.max/2&&(i.x-=0.03*B,i.y-=0.03*z),A=(x.max-y)/x.max,e.beginPath(),e.lineWidth=A/2,e.strokeStyle="rgba("+s.c+","+(A+0.2)+")",e.moveTo(i.x,i.y),e.lineTo(x.x,x.y),e.stroke())}}w.splice(w.indexOf(i),1)}),m(b)}var u=document.createElement("canvas"),s=l(),c="c_n"+s.l,e=u.getContext("2d"),r,n,m=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(i){window.setTimeout(i,1000/45)},a=Math.random,f={x:null,y:null,max:20000};u.id=c;u.style.cssText="position:fixed;top:0;left:0;z-index:"+s.z+";opacity:"+s.o;j("body")[0].appendChild(u);k(),window.onresize=k;window.onmousemove=function(i){i=i||window.event,f.x=i.clientX,f.y=i.clientY},window.onmouseout=function(){f.x=null,f.y=null};for(var t=[],p=0;s.n>p;p++){var h=a()*r,g=a()*n,q=2*a()-1,d=2*a()-1;t.push({x:h,y:g,xa:q,ya:d,max:6000})}setTimeout(function(){b()},100)}(); -------------------------------------------------------------------------------- /source/lib/fancybox/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fancybox", 3 | "homepage": "https://github.com/fancyapps/fancyBox", 4 | "version": "2.1.5", 5 | "_release": "2.1.5", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "v2.1.5", 9 | "commit": "18d171278d21ca59067aace6d52a1adeb6462219" 10 | }, 11 | "_source": "git://github.com/fancyapps/fancyBox.git", 12 | "_target": "~2.1.5", 13 | "_originalSource": "fancybox", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /source/lib/fancybox/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Denote all files that are truly binary and should not be modified. 5 | *.png binary 6 | *.jpg binary 7 | *.gif binary -------------------------------------------------------------------------------- /source/lib/fancybox/source/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/blank.gif -------------------------------------------------------------------------------- /source/lib/fancybox/source/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/fancybox_loading.gif -------------------------------------------------------------------------------- /source/lib/fancybox/source/fancybox_loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/fancybox_loading@2x.gif -------------------------------------------------------------------------------- /source/lib/fancybox/source/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/fancybox_overlay.png -------------------------------------------------------------------------------- /source/lib/fancybox/source/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/fancybox_sprite.png -------------------------------------------------------------------------------- /source/lib/fancybox/source/fancybox_sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/fancybox_sprite@2x.png -------------------------------------------------------------------------------- /source/lib/fancybox/source/helpers/fancybox_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/fancybox/source/helpers/fancybox_buttons.png -------------------------------------------------------------------------------- /source/lib/fancybox/source/helpers/jquery.fancybox-thumbs.css: -------------------------------------------------------------------------------- 1 | #fancybox-thumbs { 2 | position: fixed; 3 | left: 0; 4 | width: 100%; 5 | overflow: hidden; 6 | z-index: 8050; 7 | } 8 | 9 | #fancybox-thumbs.bottom { 10 | bottom: 2px; 11 | } 12 | 13 | #fancybox-thumbs.top { 14 | top: 2px; 15 | } 16 | 17 | #fancybox-thumbs ul { 18 | position: relative; 19 | list-style: none; 20 | margin: 0; 21 | padding: 0; 22 | } 23 | 24 | #fancybox-thumbs ul li { 25 | float: left; 26 | padding: 1px; 27 | opacity: 0.5; 28 | } 29 | 30 | #fancybox-thumbs ul li.active { 31 | opacity: 0.75; 32 | padding: 0; 33 | border: 1px solid #fff; 34 | } 35 | 36 | #fancybox-thumbs ul li:hover { 37 | opacity: 1; 38 | } 39 | 40 | #fancybox-thumbs ul li a { 41 | display: block; 42 | position: relative; 43 | overflow: hidden; 44 | border: 1px solid #222; 45 | background: #111; 46 | outline: none; 47 | } 48 | 49 | #fancybox-thumbs ul li img { 50 | display: block; 51 | position: relative; 52 | border: 0; 53 | padding: 0; 54 | max-width: none; 55 | } -------------------------------------------------------------------------------- /source/lib/fastclick/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fastclick", 3 | "main": "lib/fastclick.js", 4 | "ignore": [ 5 | "**/.*", 6 | "component.json", 7 | "package.json", 8 | "Makefile", 9 | "tests", 10 | "examples" 11 | ], 12 | "homepage": "https://github.com/ftlabs/fastclick", 13 | "version": "1.0.6", 14 | "_release": "1.0.6", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "v1.0.6", 18 | "commit": "2ac7258407619398005ca720596f0d36ce66a6c8" 19 | }, 20 | "_source": "git://github.com/ftlabs/fastclick.git", 21 | "_target": "~1.0.6", 22 | "_originalSource": "fastclick", 23 | "_direct": true 24 | } -------------------------------------------------------------------------------- /source/lib/fastclick/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 The Financial Times Ltd. 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /source/lib/fastclick/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fastclick", 3 | "main": "lib/fastclick.js", 4 | "ignore": [ 5 | "**/.*", 6 | "component.json", 7 | "package.json", 8 | "Makefile", 9 | "tests", 10 | "examples" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /source/lib/font-awesome/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": [ 9 | "OFL-1.1", 10 | "MIT", 11 | "CC-BY-3.0" 12 | ], 13 | "main": [ 14 | "less/font-awesome.less", 15 | "scss/font-awesome.scss" 16 | ], 17 | "ignore": [ 18 | "*/.*", 19 | "*.json", 20 | "src", 21 | "*.yml", 22 | "Gemfile", 23 | "Gemfile.lock", 24 | "*.md" 25 | ], 26 | "version": "4.7.0", 27 | "_release": "4.7.0", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "v4.7.0", 31 | "commit": "a3fe90fa5f6fac55d197f9cbd18e3f57dafb716c" 32 | }, 33 | "_source": "https://github.com/FortAwesome/Font-Awesome.git", 34 | "_target": "*", 35 | "_originalSource": "fontawesome" 36 | } -------------------------------------------------------------------------------- /source/lib/font-awesome/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | .bundle 34 | -------------------------------------------------------------------------------- /source/lib/font-awesome/.npmignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | 34 | # don't need these in the npm package. 35 | src/ 36 | _config.yml 37 | bower.json 38 | component.json 39 | composer.json 40 | CONTRIBUTING.md 41 | Gemfile 42 | Gemfile.lock 43 | -------------------------------------------------------------------------------- /source/lib/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /source/lib/font-awesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], 9 | "main": [ 10 | "less/font-awesome.less", 11 | "scss/font-awesome.scss" 12 | ], 13 | "ignore": [ 14 | "*/.*", 15 | "*.json", 16 | "src", 17 | "*.yml", 18 | "Gemfile", 19 | "Gemfile.lock", 20 | "*.md" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /source/lib/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /source/lib/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /source/lib/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /source/lib/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /source/lib/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iissnan/hexo-theme-next/9c8cea69bf0d4f91c07779d71b01814b27bbb6a1/source/lib/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /source/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "_cacheHeaders": { 4 | "ETag": "\"5492efef-14960\"", 5 | "Last-Modified": "Thu, 18 Dec 2014 15:17:03 GMT", 6 | "Content-Length": "84320", 7 | "Content-Type": "application/x-javascript" 8 | }, 9 | "_release": "e-tag:5492efef-", 10 | "main": "index.js", 11 | "_source": "http://code.jquery.com/jquery-2.1.3.min.js", 12 | "_target": "*", 13 | "_originalSource": "http://code.jquery.com/jquery-2.1.3.min.js", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /source/lib/jquery_lazyload/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery_lazyload", 3 | "version": "1.9.7", 4 | "homepage": "http://www.appelsiini.net/projects/lazyload", 5 | "authors": [ 6 | "Mika Tuupola " 7 | ], 8 | "description": "jQuery plugin for lazy loading images", 9 | "main": [ 10 | "jquery.lazyload.js", 11 | "jquery.scrollstop.js" 12 | ], 13 | "license": "MIT", 14 | "ignore": [ 15 | "**/.*", 16 | "**/*.min.js", 17 | "**/*.html", 18 | "**/*.textile", 19 | "Gruntfile.js", 20 | "lazyload.jquery.json", 21 | "package.json", 22 | "node_modules", 23 | "bower_components", 24 | "test", 25 | "img" 26 | ], 27 | "_release": "1.9.7", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "1.9.7", 31 | "commit": "218e50eb4999fe59ac94b939a65c8c988d1d420b" 32 | }, 33 | "_source": "git://github.com/tuupola/jquery_lazyload.git", 34 | "_target": "~1.9.7", 35 | "_originalSource": "jquery.lazyload", 36 | "_direct": true 37 | } -------------------------------------------------------------------------------- /source/lib/jquery_lazyload/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Lazy Load 2 | 3 | ## Only one feature or change per pull request 4 | 5 | Make pull requests only one feature or change at the time. For example you have fixed a bug. You also have optimized some code. Optimization is not related to a bug. These should be submitted as separate pull requests. This way I can easily choose what to include. It is also easier to understand the code changes. Commit messages should be descriptive and full sentences. 6 | 7 | Do not commit minified versions. Do not touch the version number. Make the pull requests against [1.9.x branch](https://github.com/tuupola/jquery_lazyload/commits/1.9.x). 8 | 9 | ## Write meaningful commit messages 10 | 11 | Proper commit message is full sentence. It starts with capital letter but does not end with period. Headlines do not end with period. The GitHub default `Update filename.js` is not enough. When needed include also longer explanation what the commit does. 12 | 13 | ``` 14 | Capitalized, short (50 chars or less) summary 15 | 16 | More detailed explanatory text, if necessary. Wrap it to about 72 17 | characters or so. In some contexts, the first line is treated as the 18 | subject of an email and the rest of the text as the body. The blank 19 | line separating the summary from the body is critical (unless you omit 20 | the body entirely); tools like rebase can get confused if you run the 21 | two together. 22 | ``` 23 | 24 | When in doubt see Tim Pope's blogpost [A Note About Git Commit Messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) 25 | 26 | ## Follow the existing coding standards 27 | 28 | When contributing to open source project it is polite to follow the original authors coding standars. They might be different than yours. It is not a holy war. Just follow then original. 29 | 30 | ```javascript 31 | var snake_case = "something"; 32 | 33 | function camelCase(options) { 34 | } 35 | 36 | if (true !== false) { 37 | console.log("here be dragons"); 38 | } 39 | ``` 40 | -------------------------------------------------------------------------------- /source/lib/jquery_lazyload/README.md: -------------------------------------------------------------------------------- 1 | # Lazy Load Plugin for jQuery 2 | 3 | Lazy Load delays loading of images in long web pages. Images outside of viewport wont be loaded before user scrolls to them. This is opposite of image preloading. 4 | 5 | Using Lazy Load on long web pages containing many large images makes the page load faster. Browser will be in ready state after loading visible images. In some cases it can also help to reduce server load. 6 | 7 | Lazy Load is inspired by [YUI ImageLoader](http://developer.yahoo.com/yui/imageloader/) Utility by Matt Mlinac. 8 | 9 | ## How to Use? 10 | 11 | Lazy Load depends on jQuery. Include them both in end of your HTML code: 12 | 13 | ```html 14 | 15 | 16 | ``` 17 | 18 | You must alter your HTML code. URL of the real image must be put into data-original attribute. It is good idea to give Lazy Loaded image a specific class. This way you can easily control which images plugin is binded to. Note that you should have width and height attributes in your image tag. 19 | 20 | ```html 21 | 22 | ``` 23 | 24 | then in your code do: 25 | 26 | ```js 27 | $("img.lazy").lazyload(); 28 | ``` 29 | 30 | This causes all images of class lazy to be lazy loaded. 31 | 32 | More information on [Lazy Load](http://www.appelsiini.net/projects/lazyload) project page. 33 | 34 | ## Install 35 | 36 | You can install with [bower](http://bower.io/) or [npm](https://www.npmjs.com/). 37 | 38 | 39 | ```sh 40 | $ bower install jquery.lazyload 41 | $ npm install jquery-lazyload 42 | ``` 43 | 44 | 45 | # License 46 | 47 | All code licensed under the [MIT License](http://www.opensource.org/licenses/mit-license.php). All images licensed under [Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/deed.en_US). In other words you are basically free to do whatever you want. Just don't remove my name from the source. 48 | 49 | -------------------------------------------------------------------------------- /source/lib/jquery_lazyload/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery_lazyload", 3 | "version": "1.9.4", 4 | "homepage": "http://www.appelsiini.net/projects/lazyload", 5 | "authors": [ 6 | "Mika Tuupola " 7 | ], 8 | "description": "jQuery plugin for lazy loading images", 9 | "main": [ 10 | "jquery.lazyload.js", 11 | "jquery.scrollstop.js" 12 | ], 13 | "license": "MIT", 14 | "ignore": [ 15 | "**/.*", 16 | "**/*.min.js", 17 | "**/*.html", 18 | "**/*.textile", 19 | "Gruntfile.js", 20 | "lazyload.jquery.json", 21 | "package.json", 22 | "node_modules", 23 | "bower_components", 24 | "test", 25 | "img" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /source/lib/jquery_lazyload/jquery.scrollstop.js: -------------------------------------------------------------------------------- 1 | /* http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ */ 2 | 3 | (function(){ 4 | 5 | var special = jQuery.event.special, 6 | uid1 = "D" + (+new Date()), 7 | uid2 = "D" + (+new Date() + 1); 8 | 9 | special.scrollstart = { 10 | setup: function() { 11 | 12 | var timer, 13 | handler = function(evt) { 14 | 15 | var _self = this, 16 | _args = arguments; 17 | 18 | if (timer) { 19 | clearTimeout(timer); 20 | } else { 21 | evt.type = "scrollstart"; 22 | jQuery.event.dispatch.apply(_self, _args); 23 | } 24 | 25 | timer = setTimeout( function(){ 26 | timer = null; 27 | }, special.scrollstop.latency); 28 | 29 | }; 30 | 31 | jQuery(this).bind("scroll", handler).data(uid1, handler); 32 | 33 | }, 34 | teardown: function(){ 35 | jQuery(this).unbind( "scroll", jQuery(this).data(uid1) ); 36 | } 37 | }; 38 | 39 | special.scrollstop = { 40 | latency: 300, 41 | setup: function() { 42 | 43 | var timer, 44 | handler = function(evt) { 45 | 46 | var _self = this, 47 | _args = arguments; 48 | 49 | if (timer) { 50 | clearTimeout(timer); 51 | } 52 | 53 | timer = setTimeout( function(){ 54 | 55 | timer = null; 56 | evt.type = "scrollstop"; 57 | jQuery.event.dispatch.apply(_self, _args); 58 | 59 | 60 | }, special.scrollstop.latency); 61 | 62 | }; 63 | 64 | jQuery(this).bind("scroll", handler).data(uid2, handler); 65 | 66 | }, 67 | teardown: function() { 68 | jQuery(this).unbind( "scroll", jQuery(this).data(uid2) ); 69 | } 70 | }; 71 | 72 | })(); -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-big-counter.min.css: -------------------------------------------------------------------------------- 1 | .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace.pace-inactive .pace-progress{display:none}.pace .pace-progress{position:fixed;z-index:2000;top:0;right:0;height:5rem;width:5rem;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:after{display:block;position:absolute;top:0;right:.5rem;content:attr(data-progress-text);font-family:"Helvetica Neue",sans-serif;font-weight:100;font-size:5rem;line-height:1;text-align:right;color:rgba(34,153,221,.19999999999999996)} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-center-atom.min.css: -------------------------------------------------------------------------------- 1 | .pace,.pace .pace-progress{z-index:2000;height:60px;width:100px}.pace .pace-activity,.pace .pace-progress:before{border-radius:50%;display:block;position:absolute}.pace.pace-inactive{display:none}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0}.pace .pace-progress{position:absolute;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:before{content:attr(data-progress-text);text-align:center;color:#fff;background:#29d;font-family:"Helvetica Neue",sans-serif;font-size:14px;font-weight:100;line-height:1;padding:20% 0 7px;width:50%;height:40%;margin:10px 0 0 30px;z-index:999}.pace .pace-activity{font-size:15px;line-height:1;z-index:2000;-webkit-animation:pace-theme-center-atom-spin 2s linear infinite;-moz-animation:pace-theme-center-atom-spin 2s linear infinite;-o-animation:pace-theme-center-atom-spin 2s linear infinite;animation:pace-theme-center-atom-spin 2s linear infinite;border:5px solid #29d;content:' ';top:0;left:0;height:60px;width:100px}.pace .pace-activity:after,.pace .pace-activity:before{content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px}.pace .pace-activity:after{border-radius:50%;border:5px solid #29d;-webkit-transform:rotate(60deg);-moz-transform:rotate(60deg);-o-transform:rotate(60deg);transform:rotate(60deg)}.pace .pace-activity:before{border-radius:50%;border:5px solid #29d;-webkit-transform:rotate(120deg);-moz-transform:rotate(120deg);-o-transform:rotate(120deg);transform:rotate(120deg)}@-webkit-keyframes pace-theme-center-atom-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes pace-theme-center-atom-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-o-keyframes pace-theme-center-atom-spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@keyframes pace-theme-center-atom-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-center-circle.min.css: -------------------------------------------------------------------------------- 1 | .pace,.pace .pace-progress{z-index:2000;left:0;top:0;height:6rem}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-perspective:12rem;-moz-perspective:12rem;-ms-perspective:12rem;-o-perspective:12rem;perspective:12rem;position:fixed;width:6rem;margin:auto;right:0;bottom:0}.pace.pace-inactive .pace-progress{display:none}.pace .pace-progress{display:block;position:absolute;width:6rem!important;line-height:6rem;font-size:2rem;border-radius:50%;background:rgba(34,153,221,.8);color:#fff;font-family:"Helvetica Neue",sans-serif;font-weight:100;text-align:center;-webkit-animation:pace-theme-center-circle-spin linear infinite 2s;-moz-animation:pace-theme-center-circle-spin linear infinite 2s;-ms-animation:pace-theme-center-circle-spin linear infinite 2s;-o-animation:pace-theme-center-circle-spin linear infinite 2s;animation:pace-theme-center-circle-spin linear infinite 2s;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d}.pace .pace-progress:after{content:attr(data-progress-text);display:block}@-webkit-keyframes pace-theme-center-circle-spin{from{-webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(360deg)}}@-moz-keyframes pace-theme-center-circle-spin{from{-moz-transform:rotateY(0)}to{-moz-transform:rotateY(360deg)}}@-ms-keyframes pace-theme-center-circle-spin{from{-ms-transform:rotateY(0)}to{-ms-transform:rotateY(360deg)}}@-o-keyframes pace-theme-center-circle-spin{from{-o-transform:rotateY(0)}to{-o-transform:rotateY(360deg)}}@keyframes pace-theme-center-circle-spin{from{transform:rotateY(0)}to{transform:rotateY(360deg)}} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-center-radar.min.css: -------------------------------------------------------------------------------- 1 | .pace,.pace .pace-activity{z-index:2000;height:90px;width:90px}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0}.pace.pace-inactive .pace-activity{display:none}.pace .pace-activity,.pace .pace-activity:before{position:absolute;display:block;border-color:#29d transparent transparent;border-radius:50%}.pace .pace-activity{left:-30px;top:-30px;border-width:30px;border-style:double;-webkit-animation:spin 1s linear infinite;-moz-animation:spin 1s linear infinite;-o-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.pace .pace-activity:before{content:' ';top:10px;left:10px;height:50px;width:50px;border-width:10px;border-style:solid}@-webkit-keyframes spin{100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(359deg)}}@-o-keyframes spin{100%{-moz-transform:rotate(359deg)}}@keyframes spin{100%{transform:rotate(359deg)}} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-center-simple.min.css: -------------------------------------------------------------------------------- 1 | .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0;height:5px;width:200px;background:#fff;border:1px solid #29d;overflow:hidden}.pace .pace-progress{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);max-width:200px;z-index:2000;display:block;position:absolute;top:0;right:100%;height:100%;width:100%;background:#29d}.pace.pace-inactive{display:none} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-corner-indicator.min.css: -------------------------------------------------------------------------------- 1 | .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace .pace-activity{display:block;position:fixed;z-index:2000;top:0;right:0;width:300px;height:300px;background:#29d;-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translateX(100%) translateY(-100%) rotate(45deg);transform:translateX(100%) translateY(-100%) rotate(45deg);pointer-events:none}.pace.pace-active .pace-activity{-webkit-transform:translateX(50%) translateY(-50%) rotate(45deg);transform:translateX(50%) translateY(-50%) rotate(45deg)}.pace .pace-activity::after,.pace .pace-activity::before{-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;bottom:30px;left:50%;display:block;border:5px solid #fff;border-radius:50%;content:''}.pace .pace-activity::before{margin-left:-40px;width:80px;height:80px;border-right-color:rgba(0,0,0,.2);border-left-color:rgba(0,0,0,.2);-webkit-animation:pace-theme-corner-indicator-spin 3s linear infinite;animation:pace-theme-corner-indicator-spin 3s linear infinite}.pace .pace-activity::after{bottom:50px;margin-left:-20px;width:40px;height:40px;border-top-color:rgba(0,0,0,.2);border-bottom-color:rgba(0,0,0,.2);-webkit-animation:pace-theme-corner-indicator-spin 1s linear infinite;animation:pace-theme-corner-indicator-spin 1s linear infinite}@-webkit-keyframes pace-theme-corner-indicator-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@keyframes pace-theme-corner-indicator-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-fill-left.min.css: -------------------------------------------------------------------------------- 1 | .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background-color:rgba(34,153,221,.19999999999999996);position:fixed;z-index:-1;top:0;right:100%;bottom:0;width:100%} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-flash.min.css: -------------------------------------------------------------------------------- 1 | .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#29d;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}.pace .pace-progress-inner{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-moz-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);-o-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}.pace .pace-activity{display:block;position:fixed;z-index:2000;top:15px;right:15px;width:14px;height:14px;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:10px;-webkit-animation:pace-spinner .4s linear infinite;-moz-animation:pace-spinner .4s linear infinite;-ms-animation:pace-spinner .4s linear infinite;-o-animation:pace-spinner .4s linear infinite;animation:pace-spinner .4s linear infinite}@-webkit-keyframes pace-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes pace-spinner{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes pace-spinner{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes pace-spinner{0%{-ms-transform:rotate(0);transform:rotate(0)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes pace-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-mac-osx.min.css: -------------------------------------------------------------------------------- 1 | .pace,.pace .pace-progress{width:100%;height:12px;overflow:hidden}.pace,.pace .pace-activity{position:fixed;top:0;left:0}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;background:#fff}.pace-inactive{display:none}.pace .pace-progress{background-color:#0087E1;position:fixed;top:0;right:100%;-webkit-border-radius:0 0 4px;-moz-border-radius:0 0 4px;-o-border-radius:0 0 4px;border-radius:0 0 4px;-webkit-box-shadow:inset -1px 0 #00558F,inset 0 -1px #00558F,inset 0 2px rgba(255,255,255,.5),inset 0 6px rgba(255,255,255,.3);-moz-box-shadow:inset -1px 0 #00558F,inset 0 -1px #00558F,inset 0 2px rgba(255,255,255,.5),inset 0 6px rgba(255,255,255,.3);-o-box-shadow:inset -1px 0 #00558F,inset 0 -1px #00558F,inset 0 2px rgba(255,255,255,.5),inset 0 6px rgba(255,255,255,.3);box-shadow:inset -1px 0 #00558F,inset 0 -1px #00558F,inset 0 2px rgba(255,255,255,.5),inset 0 6px rgba(255,255,255,.3)}.pace .pace-activity{right:-28px;bottom:0;-webkit-background-image:radial-gradient(rgba(255,255,255,.65) 0,rgba(255,255,255,.15) 100%);-moz-background-image:radial-gradient(rgba(255,255,255,.65) 0,rgba(255,255,255,.15) 100%);-o-background-image:radial-gradient(rgba(255,255,255,.65) 0,rgba(255,255,255,.15) 100%);background-image:radial-gradient(rgba(255,255,255,.65) 0,rgba(255,255,255,.15) 100%);-webkit-background-size:28px 100%;-moz-background-size:28px 100%;-o-background-size:28px 100%;background-size:28px 100%;-webkit-animation:pace-theme-mac-osx-motion .5s linear infinite;-moz-animation:pace-theme-mac-osx-motion .5s linear infinite;-ms-animation:pace-theme-mac-osx-motion .5s linear infinite;-o-animation:pace-theme-mac-osx-motion .5s linear infinite;animation:pace-theme-mac-osx-motion .5s linear infinite}@-webkit-keyframes pace-theme-mac-osx-motion{0%{-webkit-transform:none;transform:none}100%{-webkit-transform:translate(-28px,0);transform:translate(-28px,0)}}@-moz-keyframes pace-theme-mac-osx-motion{0%{-moz-transform:none;transform:none}100%{-moz-transform:translate(-28px,0);transform:translate(-28px,0)}}@-o-keyframes pace-theme-mac-osx-motion{0%{-o-transform:none;transform:none}100%{-o-transform:translate(-28px,0);transform:translate(-28px,0)}}@-ms-keyframes pace-theme-mac-osx-motion{0%{-ms-transform:none;transform:none}100%{-ms-transform:translate(-28px,0);transform:translate(-28px,0)}}@keyframes pace-theme-mac-osx-motion{0%{transform:none}100%{transform:translate(-28px,0)}} -------------------------------------------------------------------------------- /source/lib/pace/pace-theme-minimal.min.css: -------------------------------------------------------------------------------- 1 | .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#29d;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px} -------------------------------------------------------------------------------- /source/lib/velocity/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "velocity", 3 | "version": "1.2.2", 4 | "homepage": "http://velocityjs.org", 5 | "authors": [ 6 | { 7 | "name": "Julian Shapiro", 8 | "homepage": "http://julian.com/" 9 | } 10 | ], 11 | "description": "Accelerated JavaScript animation.", 12 | "main": [ 13 | "./velocity.js", 14 | "./velocity.ui.js" 15 | ], 16 | "keywords": [ 17 | "animation", 18 | "jquery", 19 | "animate", 20 | "lightweight", 21 | "smooth", 22 | "ui", 23 | "velocity.js", 24 | "velocityjs", 25 | "javascript" 26 | ], 27 | "license": "MIT", 28 | "ignore": [ 29 | "*.json", 30 | "!/bower.json", 31 | "LICENSE", 32 | "*.md" 33 | ], 34 | "dependencies": { 35 | "jquery": "*" 36 | }, 37 | "repository": { 38 | "type": "git", 39 | "url": "http://github.com/julianshapiro/velocity.git" 40 | }, 41 | "_release": "1.2.2", 42 | "_resolution": { 43 | "type": "version", 44 | "tag": "1.2.2", 45 | "commit": "6b227928631aab5694255df3c219736c4c02449d" 46 | }, 47 | "_source": "git://github.com/julianshapiro/velocity.git", 48 | "_target": "~1.2.1", 49 | "_originalSource": "velocity" 50 | } -------------------------------------------------------------------------------- /source/lib/velocity/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "velocity", 3 | "version": "1.2.2", 4 | "homepage": "http://velocityjs.org", 5 | "authors": [ 6 | { "name" : "Julian Shapiro", 7 | "homepage" : "http://julian.com/" 8 | } 9 | ], 10 | "description": "Accelerated JavaScript animation.", 11 | "main": [ "./velocity.js", "./velocity.ui.js"], 12 | "keywords": [ 13 | "animation", 14 | "jquery", 15 | "animate", 16 | "lightweight", 17 | "smooth", 18 | "ui", 19 | "velocity.js", 20 | "velocityjs", 21 | "javascript" 22 | ], 23 | "license": "MIT", 24 | "ignore": [ 25 | "*.json", 26 | "!/bower.json", 27 | "LICENSE", 28 | "*.md" 29 | ], 30 | "dependencies": { 31 | "jquery": "*" 32 | }, 33 | "repository" : 34 | { 35 | "type" : "git", 36 | "url" : "http://github.com/julianshapiro/velocity.git" 37 | } 38 | } -------------------------------------------------------------------------------- /test/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "curly": true, 3 | "eqnull": true, 4 | "eqeqeq": true, 5 | "undef": true, 6 | "newcap": true, 7 | "unused": true, 8 | "laxcomma": false, 9 | "asi": false, 10 | "expr": true, 11 | "loopfunc": false, 12 | "strict": false, 13 | 14 | "globals": { 15 | "define": true, 16 | "require": true, 17 | "it": true, 18 | "module": true, 19 | "describe": true, 20 | "window": true, 21 | "$": true 22 | } 23 | } 24 | --------------------------------------------------------------------------------