├── .gitignore ├── CNAME ├── README.md ├── _config.yml ├── db.json ├── docs ├── about │ └── index.html ├── archives │ ├── 2019 │ │ ├── 11 │ │ │ └── index.html │ │ └── index.html │ └── index.html ├── baidusitemap.xml ├── categories │ └── index.html ├── css │ └── main.css ├── design │ └── index.html ├── emoji_copy_paste │ └── index.html ├── free_font │ └── index.html ├── icon │ └── index.html ├── images │ ├── algolia_logo.svg │ ├── apple-touch-icon-next.png │ ├── avatar.gif │ ├── background.jpg │ ├── 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 │ ├── chuyin.ico │ ├── cursor_1.png │ ├── favicon-16x16-next.png │ ├── favicon-32x32-next.png │ ├── loading.gif │ ├── loading.png │ ├── logo.svg │ ├── placeholder.gif │ ├── quote-l.svg │ ├── quote-r.svg │ ├── searchicon.png │ └── wechatpay.jpg ├── index.html ├── js │ ├── affix.js │ ├── algolia-search.js │ ├── exturl.js │ ├── js.cookie.js │ ├── motion.js │ ├── next-boot.js │ ├── post-details.js │ ├── schemes │ │ ├── muse.js │ │ └── pisces.js │ ├── scroll-cookie.js │ ├── scrollspy.js │ └── utils.js ├── lib │ ├── jquery │ │ └── index.js │ └── velocity │ │ ├── velocity.js │ │ ├── velocity.min.js │ │ ├── velocity.ui.js │ │ └── velocity.ui.min.js ├── search.xml ├── sitemap.xml ├── tags │ ├── Design │ │ └── index.html │ ├── emoji │ │ └── index.html │ ├── index.html │ ├── 样机 │ │ └── index.html │ └── 矢量图标 │ │ └── index.html └── yangji │ └── index.html ├── package-lock.json ├── package.json ├── piece └── emoji_copy_paste │ └── emoji.pptx ├── scaffolds ├── draft.md ├── page.md └── post.md ├── source ├── _posts │ ├── design.md │ ├── emoji-copy-paste.md │ ├── free-font.md │ ├── icon.md │ └── mockup.md ├── about │ └── index.md ├── categories │ └── index.md └── tags │ └── index.md ├── static └── jquery.min.js ├── themes ├── landscape │ ├── .gitignore │ ├── Gruntfile.js │ ├── LICENSE │ ├── README.md │ ├── _config.yml │ ├── languages │ │ ├── de.yml │ │ ├── default.yml │ │ ├── es.yml │ │ ├── fr.yml │ │ ├── ja.yml │ │ ├── ko.yml │ │ ├── nl.yml │ │ ├── no.yml │ │ ├── pt.yml │ │ ├── ru.yml │ │ ├── zh-CN.yml │ │ └── zh-TW.yml │ ├── layout │ │ ├── _partial │ │ │ ├── after-footer.ejs │ │ │ ├── archive-post.ejs │ │ │ ├── archive.ejs │ │ │ ├── article.ejs │ │ │ ├── footer.ejs │ │ │ ├── gauges-analytics.ejs │ │ │ ├── google-analytics.ejs │ │ │ ├── head.ejs │ │ │ ├── header.ejs │ │ │ ├── mobile-nav.ejs │ │ │ ├── post │ │ │ │ ├── category.ejs │ │ │ │ ├── date.ejs │ │ │ │ ├── gallery.ejs │ │ │ │ ├── nav.ejs │ │ │ │ ├── tag.ejs │ │ │ │ └── title.ejs │ │ │ └── sidebar.ejs │ │ ├── _widget │ │ │ ├── archive.ejs │ │ │ ├── category.ejs │ │ │ ├── recent_posts.ejs │ │ │ ├── tag.ejs │ │ │ └── tagcloud.ejs │ │ ├── archive.ejs │ │ ├── category.ejs │ │ ├── index.ejs │ │ ├── layout.ejs │ │ ├── page.ejs │ │ ├── post.ejs │ │ └── tag.ejs │ ├── package.json │ ├── scripts │ │ └── fancybox.js │ └── source │ │ ├── css │ │ ├── _extend.styl │ │ ├── _partial │ │ │ ├── archive.styl │ │ │ ├── article.styl │ │ │ ├── comment.styl │ │ │ ├── footer.styl │ │ │ ├── header.styl │ │ │ ├── highlight.styl │ │ │ ├── mobile.styl │ │ │ ├── sidebar-aside.styl │ │ │ ├── sidebar-bottom.styl │ │ │ └── sidebar.styl │ │ ├── _util │ │ │ ├── grid.styl │ │ │ └── mixin.styl │ │ ├── _variables.styl │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ ├── images │ │ │ └── banner.jpg │ │ └── style.styl │ │ ├── fancybox │ │ ├── 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 │ │ └── js │ │ └── script.js └── next │ ├── .all-contributorsrc │ ├── .bowerrc │ ├── .editorconfig │ ├── .eslintrc.json │ ├── .gitattributes │ ├── .github │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE.md │ ├── ISSUE_TEMPLATE │ │ ├── bug-report.md │ │ ├── custom-issue-template.md │ │ ├── feature-request.md │ │ └── non-english.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── auto_assign.yml │ ├── config.yml │ ├── eslint-disable-bot.yml │ ├── lock.yml │ ├── mergeable.yml │ ├── release-drafter.yml │ ├── stale.yml │ ├── support.yml │ ├── topissuebot.yml │ └── weekly-digest.yml │ ├── .gitignore │ ├── .stylintrc │ ├── .travis.yml │ ├── LICENSE.md │ ├── README.md │ ├── _config.yml │ ├── bower.json │ ├── crowdin.yml │ ├── docs │ ├── AGPL3.md │ ├── ALGOLIA-SEARCH.md │ ├── AUTHORS.md │ ├── DATA-FILES.md │ ├── INSTALLATION.md │ ├── LEANCLOUD-COUNTER-SECURITY.md │ ├── LICENSE.txt │ ├── MATH.md │ ├── UPDATE-FROM-5.1.X.md │ ├── ru │ │ ├── DATA-FILES.md │ │ ├── INSTALLATION.md │ │ ├── README.md │ │ └── UPDATE-FROM-5.1.X.md │ └── zh-CN │ │ ├── ALGOLIA-SEARCH.md │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── DATA-FILES.md │ │ ├── INSTALLATION.md │ │ ├── LEANCLOUD-COUNTER-SECURITY.md │ │ ├── MATH.md │ │ ├── README.md │ │ └── UPDATE-FROM-5.1.X.md │ ├── gulpfile.coffee │ ├── languages │ ├── de.yml │ ├── default.yml │ ├── en.yml │ ├── es.yml │ ├── fa.yml │ ├── fr.yml │ ├── id.yml │ ├── it.yml │ ├── ja.yml │ ├── ko.yml │ ├── nl.yml │ ├── pt-BR.yml │ ├── pt.yml │ ├── ru.yml │ ├── tr.yml │ ├── uk.yml │ ├── vi.yml │ ├── zh-CN.yml │ ├── zh-HK.yml │ └── zh-TW.yml │ ├── layout │ ├── _custom │ │ ├── head.swig │ │ ├── header.swig │ │ └── sidebar.swig │ ├── _layout.swig │ ├── _macro │ │ ├── menu │ │ │ ├── menu-badge.swig │ │ │ └── menu-item.swig │ │ ├── post-collapse.swig │ │ ├── post.swig │ │ └── sidebar.swig │ ├── _partials │ │ ├── comments.swig │ │ ├── footer.swig │ │ ├── github-banner.swig │ │ ├── head │ │ │ ├── external-fonts.swig │ │ │ ├── head-unique.swig │ │ │ └── head.swig │ │ ├── header │ │ │ ├── brand.swig │ │ │ ├── index.swig │ │ │ ├── menu.swig │ │ │ └── sub-menu.swig │ │ ├── page │ │ │ ├── breadcrumb.swig │ │ │ └── page-header.swig │ │ ├── pagination.swig │ │ ├── post-edit.swig │ │ ├── post │ │ │ ├── post-copyright.swig │ │ │ ├── post-related.swig │ │ │ ├── reward.swig │ │ │ └── wechat-subscriber.swig │ │ ├── search │ │ │ ├── algolia-search.swig │ │ │ ├── index.swig │ │ │ ├── localsearch.swig │ │ │ └── swiftype.swig │ │ └── share │ │ │ ├── add-this.swig │ │ │ ├── baidushare.swig │ │ │ └── likely.swig │ ├── _scripts │ │ ├── commons.swig │ │ ├── exturl.swig │ │ ├── next-boot.swig │ │ ├── noscript.swig │ │ ├── pages │ │ │ └── post-details.swig │ │ ├── schemes │ │ │ ├── gemini.swig │ │ │ ├── mist.swig │ │ │ ├── muse.swig │ │ │ └── pisces.swig │ │ ├── scroll-cookie.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 │ │ │ ├── growingio.swig │ │ │ ├── index.swig │ │ │ ├── lean-analytics.swig │ │ │ ├── tencent-analytics.swig │ │ │ ├── tencent-mta.swig │ │ │ └── vkontakte-api.swig │ │ ├── baidu-push.swig │ │ ├── bookmark.swig │ │ ├── chatra.swig │ │ ├── comments │ │ │ ├── changyan.swig │ │ │ ├── disqus.swig │ │ │ ├── disqusjs.swig │ │ │ ├── gitalk.swig │ │ │ ├── gitment.swig │ │ │ ├── index.swig │ │ │ ├── livere.swig │ │ │ └── valine.swig │ │ ├── copy-code.swig │ │ ├── math │ │ │ ├── index.swig │ │ │ ├── katex.swig │ │ │ └── mathjax.swig │ │ ├── mermaid.swig │ │ ├── needsharebutton.swig │ │ ├── pangu.swig │ │ ├── pdf.swig │ │ ├── quicklink.swig │ │ ├── rating.swig │ │ ├── schedule.swig │ │ ├── search │ │ │ ├── algolia-search.swig │ │ │ ├── index.swig │ │ │ └── localsearch.swig │ │ └── tidio.swig │ ├── archive.swig │ ├── category.swig │ ├── index.swig │ ├── page.swig │ ├── post.swig │ ├── schedule.swig │ └── tag.swig │ ├── package.json │ ├── scripts │ ├── filters │ │ └── exturl.js │ ├── helpers │ │ ├── engine.js │ │ └── next-url.js │ ├── merge-configs.js │ ├── merge.js │ └── tags │ │ ├── button.js │ │ ├── center-quote.js │ │ ├── exturl.js │ │ ├── full-image.js │ │ ├── group-pictures.js │ │ ├── include-raw.js │ │ ├── label.js │ │ ├── mermaid.js │ │ ├── note.js │ │ ├── pdf.js │ │ ├── tabs.js │ │ └── video.js │ ├── source │ ├── css │ │ ├── _common │ │ │ ├── components │ │ │ │ ├── back-to-top-sidebar.styl │ │ │ │ ├── back-to-top.styl │ │ │ │ ├── buttons.styl │ │ │ │ ├── comments.styl │ │ │ │ ├── components.styl │ │ │ │ ├── footer │ │ │ │ │ └── footer.styl │ │ │ │ ├── header │ │ │ │ │ ├── github-banner.styl │ │ │ │ │ ├── header.styl │ │ │ │ │ ├── headerband.styl │ │ │ │ │ ├── menu.styl │ │ │ │ │ ├── site-meta.styl │ │ │ │ │ └── site-nav.styl │ │ │ │ ├── highlight │ │ │ │ │ ├── diff.styl │ │ │ │ │ ├── highlight.styl │ │ │ │ │ └── theme.styl │ │ │ │ ├── pages │ │ │ │ │ ├── archive.styl │ │ │ │ │ ├── breadcrumb.styl │ │ │ │ │ ├── categories.styl │ │ │ │ │ ├── pages.styl │ │ │ │ │ ├── post-detail.styl │ │ │ │ │ ├── schedule.styl │ │ │ │ │ └── tag-cloud.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-reading_progress.styl │ │ │ │ │ ├── post-reward.styl │ │ │ │ │ ├── post-rtl.styl │ │ │ │ │ ├── post-tags.styl │ │ │ │ │ ├── post-title.styl │ │ │ │ │ ├── post-type.styl │ │ │ │ │ ├── post-widgets.styl │ │ │ │ │ └── post.styl │ │ │ │ ├── rainbow.styl │ │ │ │ ├── scrollbar.styl │ │ │ │ ├── sidebar │ │ │ │ │ ├── sidebar-author-links.styl │ │ │ │ │ ├── sidebar-author.styl │ │ │ │ │ ├── sidebar-blogroll.styl │ │ │ │ │ ├── sidebar-button.styl │ │ │ │ │ ├── sidebar-dimmer.styl │ │ │ │ │ ├── sidebar-nav.styl │ │ │ │ │ ├── sidebar-toc.styl │ │ │ │ │ ├── sidebar-toggle.styl │ │ │ │ │ ├── sidebar.styl │ │ │ │ │ └── site-state.styl │ │ │ │ ├── tags │ │ │ │ │ ├── blockquote-center.styl │ │ │ │ │ ├── full-image.styl │ │ │ │ │ ├── group-pictures.styl │ │ │ │ │ ├── label.styl │ │ │ │ │ ├── note.styl │ │ │ │ │ ├── pdf.styl │ │ │ │ │ ├── tabs.styl │ │ │ │ │ └── tags.styl │ │ │ │ └── third-party │ │ │ │ │ ├── algolia-search.styl │ │ │ │ │ ├── copy-code.styl │ │ │ │ │ ├── gitalk.styl │ │ │ │ │ ├── gitment.styl │ │ │ │ │ ├── han.styl │ │ │ │ │ ├── localsearch.styl │ │ │ │ │ ├── math.styl │ │ │ │ │ ├── needsharebutton.styl │ │ │ │ │ ├── related-posts.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 │ │ │ │ ├── _sidebar.styl │ │ │ │ ├── _sub-menu.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 │ │ ├── background.jpg │ │ ├── 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 │ │ ├── chuyin.ico │ │ ├── cursor_1.png │ │ ├── favicon-16x16-next.png │ │ ├── favicon-32x32-next.png │ │ ├── loading.gif │ │ ├── loading.png │ │ ├── logo.svg │ │ ├── placeholder.gif │ │ ├── quote-l.svg │ │ ├── quote-r.svg │ │ ├── searchicon.png │ │ └── wechatpay.jpg │ ├── js │ │ ├── affix.js │ │ ├── algolia-search.js │ │ ├── exturl.js │ │ ├── js.cookie.js │ │ ├── motion.js │ │ ├── next-boot.js │ │ ├── post-details.js │ │ ├── schemes │ │ │ ├── muse.js │ │ │ └── pisces.js │ │ ├── scroll-cookie.js │ │ ├── scrollspy.js │ │ └── utils.js │ └── lib │ │ ├── jquery │ │ └── index.js │ │ └── velocity │ │ ├── velocity.js │ │ ├── velocity.min.js │ │ ├── velocity.ui.js │ │ └── velocity.ui.min.js │ └── test │ ├── .jshintrc │ ├── helpers.js │ └── intern.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | ./_config.yml 2 | .DS_Store 3 | .idea/ 4 | node_modules/ -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | zhaoolee.com -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [PPT的秘宝] 2 | 3 | PPT秘宝 网页地址: https://www.v2fy.com/ppt-piece/ 4 | 开源仓库地址: https://zhaoolee.com/ppt-piece/ 5 | 6 | PPT是一种艺术表现形式, 它包罗万象, 让你的想法得到传递 7 | 优秀的PPT可以直击灵魂, 让想象力生根发芽 8 | PPT不只是用心那么简单, 没有PPT相关的知识和方法, 只会"越用心越丑陋" 9 | 10 | ## 什么是PPT的秘宝? 11 | 12 | 这里有PPT知识的方方面面, 但不仅限于PPT本身的技巧, 也涉及找寻优质资源的捷径 13 | 14 | | 专题 | 访问地址 | 15 | | --- | --- | 16 | | 免费可商用字体 | [链接](https://www.v2fy.com/p/free-font-md/) | 17 | | 版式设计原则 | [链接](https://www.v2fy.com/p/design/) | 18 | | 特色图标哪里找? | [链接](https://www.v2fy.com/p/icon/) | 19 | | PPT不为人知的技巧 | [链接](https://www.v2fy.com/p/emoji_copy_paste/) | 20 | | 配色方案 | [链接] | 21 | | 使用在线样机 | [链接](https://www.v2fy.com/p/mockup/) | 22 | | 优秀作品借鉴 | [链接] | 23 | | 获取高清无码图片 | [链接] | 24 | | 搜图的技巧 | [链接] | 25 | | 如何提升自己的审美 | [链接] | 26 | | 在线制作炫酷特效 | [链接] | 27 | | 设计师养生指南 | [链接] | 28 | 29 | 30 | 31 | - 使用emoji填充图表 32 | ![emoji](https://user-images.githubusercontent.com/15868458/69109258-289c2680-0ab2-11ea-9b21-1f7d73758221.gif) 33 | 34 | 35 | - 中英文引号的不同 36 | 37 | > 在中文中使用引号,应为 「」, 如 **数「风流人物」,还看今朝!** 38 | 39 | > 在英文中使用引号,应为 "", **Where there is "love" there is life.** 40 | 41 | ![](https://user-images.githubusercontent.com/15868458/69488565-d0946400-0ea5-11ea-9d99-b3ff476c5291.png) 42 | 43 | - 饼状图使用规范 44 | 45 | ![](https://user-images.githubusercontent.com/15868458/69488354-611d7500-0ea3-11ea-9bfa-88ee3f982a99.png) -------------------------------------------------------------------------------- /docs/baidusitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://zhaoolee.com/ppt-piece/ppt-piece/design/ 5 | 2019-11-19 6 | 7 | https://zhaoolee.com/ppt-piece/ppt-piece/icon/ 8 | 2019-11-19 9 | 10 | https://zhaoolee.com/ppt-piece/ppt-piece/free_font/ 11 | 2019-11-19 12 | 13 | https://zhaoolee.com/ppt-piece/ppt-piece/yangji/ 14 | 2019-11-19 15 | 16 | https://zhaoolee.com/ppt-piece/ppt-piece/emoji_copy_paste/ 17 | 2019-11-19 18 | 19 | 20 | -------------------------------------------------------------------------------- /docs/images/apple-touch-icon-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/apple-touch-icon-next.png -------------------------------------------------------------------------------- /docs/images/avatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/avatar.gif -------------------------------------------------------------------------------- /docs/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/background.jpg -------------------------------------------------------------------------------- /docs/images/chuyin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/chuyin.ico -------------------------------------------------------------------------------- /docs/images/cursor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/cursor_1.png -------------------------------------------------------------------------------- /docs/images/favicon-16x16-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/favicon-16x16-next.png -------------------------------------------------------------------------------- /docs/images/favicon-32x32-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/favicon-32x32-next.png -------------------------------------------------------------------------------- /docs/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/loading.gif -------------------------------------------------------------------------------- /docs/images/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/loading.png -------------------------------------------------------------------------------- /docs/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | image/svg+xml 24 | -------------------------------------------------------------------------------- /docs/images/placeholder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/placeholder.gif -------------------------------------------------------------------------------- /docs/images/quote-l.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /docs/images/quote-r.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /docs/images/searchicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/searchicon.png -------------------------------------------------------------------------------- /docs/images/wechatpay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/docs/images/wechatpay.jpg -------------------------------------------------------------------------------- /docs/js/schemes/muse.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | function updateFooterPosition() { 3 | var containerHeight = $('#footer').attr('position') ? $('.container').height() + $('#footer').outerHeight(true) : $('.container').height(); 4 | if (containerHeight < window.innerHeight) $('#footer').css({ 'position': 'fixed', 'bottom': 0, 'left': 0, 'right': 0 }).attr('position', 'fixed'); 5 | else $('#footer').removeAttr('style position'); 6 | } 7 | updateFooterPosition(); 8 | $(window).on('resize scroll', updateFooterPosition); 9 | }); 10 | -------------------------------------------------------------------------------- /docs/js/scroll-cookie.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | /* global Cookies */ 4 | 5 | // Set relative link path (without domain) 6 | var rpath = window.location.href.replace(window.location.origin, ''); 7 | 8 | // Write position in cookie 9 | var timeout; 10 | $(window).on('scroll', function() { 11 | clearTimeout(timeout); 12 | timeout = setTimeout(function() { 13 | Cookies.set('scroll-cookie', $(window).scrollTop() + '|' + rpath, { expires: 365, path: '' }); 14 | }, 250); 15 | }); 16 | 17 | // Read position from cookie 18 | if (Cookies.get('scroll-cookie') !== undefined) { 19 | var cvalues = Cookies.get('scroll-cookie').split('|'); 20 | if (cvalues[1] === rpath) { 21 | $(window).scrollTop(cvalues[0]); 22 | } 23 | } 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /docs/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | https://zhaoolee.com/ppt-piece/design/ 6 | 7 | 2019-11-19T06:15:26.191Z 8 | 9 | 10 | 11 | 12 | https://zhaoolee.com/ppt-piece/icon/ 13 | 14 | 2019-11-19T06:13:47.855Z 15 | 16 | 17 | 18 | 19 | https://zhaoolee.com/ppt-piece/free_font/ 20 | 21 | 2019-11-19T05:45:25.382Z 22 | 23 | 24 | 25 | 26 | https://zhaoolee.com/ppt-piece/yangji/ 27 | 28 | 2019-11-19T03:15:20.048Z 29 | 30 | 31 | 32 | 33 | https://zhaoolee.com/ppt-piece/emoji_copy_paste/ 34 | 35 | 2019-11-19T01:52:46.735Z 36 | 37 | 38 | 39 | 40 | https://zhaoolee.com/ppt-piece/categories/index.html 41 | 42 | 2019-07-22T00:03:29.160Z 43 | 44 | 45 | 46 | 47 | https://zhaoolee.com/ppt-piece/about/index.html 48 | 49 | 2019-07-22T00:03:29.160Z 50 | 51 | 52 | 53 | 54 | https://zhaoolee.com/ppt-piece/tags/index.html 55 | 56 | 2019-07-22T00:03:29.160Z 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-site", 3 | "version": "0.0.0", 4 | "private": true, 5 | "hexo": { 6 | "version": "3.9.0" 7 | }, 8 | "scripts": { 9 | "test": "echo \"Error: no test specified\" && exit 1", 10 | "dev": "hexo server -p 5000", 11 | "build": "hexo clean && hexo g", 12 | "push": "hexo clean && hexo g && git add . && git commit -m 'zhaoolee commit' && git push && echo 'open https://zhaoolee.github.io/ppt-piece/' ", 13 | "clean": "hexo clean", 14 | "start": "hexo server", 15 | "new": "hexo new post article-$(date '+%Y-%m-%d-%H-%M-%S')" 16 | }, 17 | "dependencies": { 18 | "axios": "^0.19.0", 19 | "hexo": "^3.9.0", 20 | "hexo-generator-archive": "^0.1.5", 21 | "hexo-generator-baidu-sitemap": "^0.1.6", 22 | "hexo-generator-category": "^0.1.3", 23 | "hexo-generator-index": "^0.2.1", 24 | "hexo-generator-searchdb": "^1.0.8", 25 | "hexo-generator-sitemap": "^1.2.0", 26 | "hexo-generator-tag": "^0.2.0", 27 | "hexo-generator-topindex": "^0.3.0", 28 | "hexo-lazyload-image": "^1.0.4", 29 | "hexo-renderer-ejs": "^0.3.1", 30 | "hexo-renderer-marked": "^1.0.1", 31 | "hexo-renderer-stylus": "^0.3.3", 32 | "hexo-server": "^0.3.3", 33 | "hexo-symbols-count-time": "^0.6.0", 34 | "moment": "^2.24.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /piece/emoji_copy_paste/emoji.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/piece/emoji_copy_paste/emoji.pptx -------------------------------------------------------------------------------- /scaffolds/draft.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | tags: 4 | --- 5 | -------------------------------------------------------------------------------- /scaffolds/page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | date: {{ date }} 4 | --- 5 | -------------------------------------------------------------------------------- /scaffolds/post.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: {{ title }} 3 | date: {{ date }} 4 | tags: 5 | --- 6 | -------------------------------------------------------------------------------- /source/_posts/design.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 版式设计的原则 3 | date: 2019-11-19 06:46:18 4 | tags: Design 5 | --- 6 | 7 | 8 | 9 | - 对齐 10 | 11 | - 对比 12 | 13 | - 重复 14 | 15 | - 亲密性 -------------------------------------------------------------------------------- /source/_posts/emoji-copy-paste.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 使用emoji填充柱状图 3 | date: 2019-11-19 06:46:18 4 | tags: emoji 5 | --- 6 | 7 | ## emoji copy paste 8 | 9 | - 使用emoji填充图表 10 | 11 | ![emoji](https://user-images.githubusercontent.com/15868458/69109258-289c2680-0ab2-11ea-9b21-1f7d73758221.gif) 12 | -------------------------------------------------------------------------------- /source/_posts/free-font.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 免费可商用字体 3 | date: 2019-11-19 06:46:18 4 | tags: emoji 5 | --- 6 | 7 | 8 | ## 思源黑体 9 | 10 | 下载页面: [https://github.com/adobe-fonts/source-han-sans/tree/release](https://github.com/adobe-fonts/source-han-sans/tree/release) 11 | 12 | 思源黑体提供以下七种字重: 13 | 14 | [ExtraLight + Light + Normal + Regular](https://github.com/adobe-fonts/source-han-sans/raw/release/OTC/SourceHanSansOTC_EL-R.zip) 15 | 16 | [Medium + Bold + Heavy](https://github.com/adobe-fonts/source-han-sans/raw/release/OTC/SourceHanSansOTC_M-H.zip) 17 | 18 | 19 | 20 | ## 思源宋体 21 | 22 | 下载页面: [https://github.com/adobe-fonts/source-han-serif/tree/release](https://github.com/adobe-fonts/source-han-serif/tree/release) 23 | 24 | 25 | Simplified Chinese (简体中文): [ExtraLight + Light + Regular + Medium](https://github.com/adobe-fonts/source-han-serif/raw/release/OTF/SourceHanSerifSC_EL-M.zip) & [SemiBold + Bold + Heavy](https://github.com/adobe-fonts/source-han-serif/raw/release/OTF/SourceHanSerifSC_SB-H.zip) 26 | 27 | 28 | ## 庞梦正道标题体 29 | 30 | 链接: https://pan.baidu.com/s/1Xuxxmkv-w0q52ufTc7Dm-Q 提取码: atk1 31 | 32 | ## 站酷高端黑体 33 | 下载页面: [https://www.zcool.com.cn/special/zcoolfonts/](https://www.zcool.com.cn/special/zcoolfonts/) 34 | 35 | ## 站酷酷黑体 36 | 下载页面: [https://www.zcool.com.cn/special/zcoolfonts/](https://www.zcool.com.cn/special/zcoolfonts/) 37 | 38 | 39 | ## 站酷快乐体 40 | 41 | 下载页面: [https://www.zcool.com.cn/special/zcoolfonts/](https://www.zcool.com.cn/special/zcoolfonts/) 42 | -------------------------------------------------------------------------------- /source/_posts/icon.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 矢量图标获取 3 | date: 2019-11-19 06:40:18 4 | tags: 矢量图标 5 | --- 6 | 7 | 8 | ## iconfont (支持中文搜索) 9 | 10 | [https://www.iconfont.cn/](https://www.iconfont.cn/) 11 | 12 | ![](https://raw.githubusercontent.com/zhaoolee/GraphBed/master/zhaoolee_images000003/e586e85f762e70010617ff5232d5c143.png) 13 | 14 | ## thenounproject (英文搜索) 15 | 16 | 17 | [https://thenounproject.com/](https://thenounproject.com/) 18 | 19 | ![](https://raw.githubusercontent.com/zhaoolee/GraphBed/master/zhaoolee_images000003/7e2f53290467930ed49b185538f9b116.png) 20 | 21 | ## 搜索品牌logo图标 Instant Logo Search 22 | 23 | [http://instantlogosearch.com/](http://instantlogosearch.com/) 24 | 25 | ![](https://raw.githubusercontent.com/zhaoolee/GraphBed/master/zhaoolee_images000003/e942f300522d343b3242c0d1e46f990b.png) 26 | 27 | 28 | ## 火柴人图标 (英文或日文搜索) 29 | 30 | [http://pictogram2.com/](http://pictogram2.com/) 31 | 32 | ![](https://raw.githubusercontent.com/zhaoolee/GraphBed/master/zhaoolee_images000003/a11387a118a2c959801bed51625ff722.png) 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /source/_posts/mockup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 在线样机网站推荐 3 | date: 2019-11-19 06:40:18 4 | tags: 样机 5 | --- 6 | 7 | ## Magic Mockups 8 | 9 | https://magicmockups.com/ 10 | 11 | ## 原素材 12 | 13 | ![image](https://user-images.githubusercontent.com/15868458/69149844-544ef900-0b12-11ea-8b58-7da7ec2c7116.png) 14 | 15 | ## 使用在线样机工具 (套模板) 16 | 17 | ![image](https://user-images.githubusercontent.com/15868458/69149653-e73b6380-0b11-11ea-8f7a-3818799ab939.png) 18 | 19 | 20 | 21 | ![image](https://user-images.githubusercontent.com/15868458/69149731-19e55c00-0b12-11ea-85a7-1372bb7717e9.png) 22 | 23 | 24 | ## 在线样机库无法满足你? 试试Photoshop吧! 25 | 26 | 免费FDR样机PSD文件下载地址: 27 | 28 | https://freedesignresources.net/category/free-mockups/ 29 | 30 | 31 | ![image](https://user-images.githubusercontent.com/15868458/69150585-f15e6180-0b13-11ea-9eee-49701c5d0275.png) 32 | 33 | ## 小结 34 | 35 | 在线样机库,可以在短时间内, 提升图片展示效果 36 | -------------------------------------------------------------------------------- /source/about/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 关于站点 3 | --- 4 | 5 | 6 | > 这是zhaoolee的GitHub博客站点 -------------------------------------------------------------------------------- /source/categories/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 专题 | Categories 3 | date: 2019-07-02 11:30:47 4 | type: "categories" 5 | --- 6 | -------------------------------------------------------------------------------- /source/tags/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 标签 | Tags 3 | date: 2019-07-02 11:30:58 4 | type: "tags" 5 | --- 6 | -------------------------------------------------------------------------------- /themes/landscape/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | tmp -------------------------------------------------------------------------------- /themes/landscape/Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt){ 2 | grunt.initConfig({ 3 | gitclone: { 4 | fontawesome: { 5 | options: { 6 | repository: 'https://github.com/FortAwesome/Font-Awesome.git', 7 | directory: 'tmp/fontawesome' 8 | }, 9 | }, 10 | fancybox: { 11 | options: { 12 | repository: 'https://github.com/fancyapps/fancyBox.git', 13 | directory: 'tmp/fancybox' 14 | } 15 | } 16 | }, 17 | copy: { 18 | fontawesome: { 19 | expand: true, 20 | cwd: 'tmp/fontawesome/fonts/', 21 | src: ['**'], 22 | dest: 'source/css/fonts/' 23 | }, 24 | fancybox: { 25 | expand: true, 26 | cwd: 'tmp/fancybox/source/', 27 | src: ['**'], 28 | dest: 'source/fancybox/' 29 | } 30 | }, 31 | _clean: { 32 | tmp: ['tmp'], 33 | fontawesome: ['source/css/fonts'], 34 | fancybox: ['source/fancybox'] 35 | } 36 | }); 37 | 38 | require('load-grunt-tasks')(grunt); 39 | 40 | grunt.renameTask('clean', '_clean'); 41 | 42 | grunt.registerTask('fontawesome', ['gitclone:fontawesome', 'copy:fontawesome', '_clean:tmp']); 43 | grunt.registerTask('fancybox', ['gitclone:fancybox', 'copy:fancybox', '_clean:tmp']); 44 | grunt.registerTask('default', ['gitclone', 'copy', '_clean:tmp']); 45 | grunt.registerTask('clean', ['_clean']); 46 | }; -------------------------------------------------------------------------------- /themes/landscape/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Tommy Chen 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /themes/landscape/_config.yml: -------------------------------------------------------------------------------- 1 | # Header 2 | menu: 3 | Home: / 4 | Archives: /archives 5 | rss: /atom.xml 6 | 7 | # Content 8 | excerpt_link: Read More 9 | fancybox: true 10 | 11 | # Sidebar 12 | sidebar: right 13 | widgets: 14 | - category 15 | - tag 16 | - tagcloud 17 | - archive 18 | - recent_posts 19 | 20 | # display widgets at the bottom of index pages (pagination == 2) 21 | index_widgets: 22 | # - category 23 | # - tagcloud 24 | # - archive 25 | 26 | # widget behavior 27 | archive_type: 'monthly' 28 | show_count: false 29 | 30 | # Miscellaneous 31 | google_analytics: 32 | gauges_analytics: 33 | favicon: /favicon.png 34 | twitter: 35 | google_plus: 36 | fb_admins: 37 | fb_app_id: 38 | -------------------------------------------------------------------------------- /themes/landscape/languages/de.yml: -------------------------------------------------------------------------------- 1 | categories: Kategorien 2 | search: Suche 3 | tags: Tags 4 | tagcloud: Tag Cloud 5 | tweets: Tweets 6 | prev: zurück 7 | next: weiter 8 | comment: Kommentare 9 | archive_a: Archiv 10 | archive_b: "Archive: %s" 11 | page: Seite %d 12 | recent_posts: letzter Beitrag 13 | newer: Neuer 14 | older: Älter 15 | share: Teilen 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Kategorie 19 | tag: Tag 20 | -------------------------------------------------------------------------------- /themes/landscape/languages/default.yml: -------------------------------------------------------------------------------- 1 | categories: Categories 2 | search: Search 3 | tags: Tags 4 | tagcloud: Tag Cloud 5 | tweets: Tweets 6 | prev: Prev 7 | next: Next 8 | comment: Comments 9 | archive_a: Archives 10 | archive_b: "Archives: %s" 11 | page: Page %d 12 | recent_posts: Recent Posts 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/languages/es.yml: -------------------------------------------------------------------------------- 1 | categories: Categorías 2 | search: Buscar 3 | tags: Tags 4 | tagcloud: Nube de Tags 5 | tweets: Tweets 6 | prev: Previo 7 | next: Siguiente 8 | comment: Comentarios 9 | archive_a: Archivos 10 | archive_b: "Archivos: %s" 11 | page: Página %d 12 | recent_posts: Posts recientes 13 | newer: Nuevo 14 | older: Viejo 15 | share: Compartir 16 | powered_by: Construido por 17 | rss_feed: RSS 18 | category: Categoría 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/languages/fr.yml: -------------------------------------------------------------------------------- 1 | categories: Catégories 2 | search: Rechercher 3 | tags: Mot-clés 4 | tagcloud: Nuage de mot-clés 5 | tweets: Tweets 6 | prev: Précédent 7 | next: Suivant 8 | comment: Commentaires 9 | archive_a: Archives 10 | archive_b: "Archives: %s" 11 | page: Page %d 12 | recent_posts: Articles récents 13 | newer: Récent 14 | older: Ancien 15 | share: Partager 16 | powered_by: Propulsé par 17 | rss_feed: Flux RSS 18 | category: Catégorie 19 | tag: Mot-clé 20 | -------------------------------------------------------------------------------- /themes/landscape/languages/ja.yml: -------------------------------------------------------------------------------- 1 | categories: カテゴリ 2 | search: 検索 3 | tags: タグ 4 | tagcloud: タグクラウド 5 | tweets: ツイート 6 | prev: 戻る 7 | next: 次へ 8 | comment: コメント 9 | archive_a: アーカイブ 10 | archive_b: "アーカイブ: %s" 11 | page: ページ %d 12 | recent_posts: 最近の投稿 13 | newer: 次の記事 14 | older: 前の記事 15 | share: 共有 16 | powered_by: Powered by 17 | rss_feed: RSSフィード 18 | category: カテゴリ 19 | tag: タグ 20 | -------------------------------------------------------------------------------- /themes/landscape/languages/ko.yml: -------------------------------------------------------------------------------- 1 | categories: 카테고리 2 | search: 검색 3 | tags: 태그 4 | tagcloud: 태그 클라우드 5 | tweets: 트윗 6 | prev: 이전 7 | next: 다음 8 | comment: 댓글 9 | archive_a: 아카이브 10 | archive_b: "아카이브: %s" 11 | page: 페이지 %d 12 | recent_posts: 최근 포스트 13 | newer: 최신 14 | older: 이전 15 | share: 공유 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: 카테고리 19 | tag: 태그 20 | -------------------------------------------------------------------------------- /themes/landscape/languages/nl.yml: -------------------------------------------------------------------------------- 1 | 2 | categories: Categorieën 3 | search: Zoeken 4 | tags: Labels 5 | tagcloud: Tag Cloud 6 | tweets: Tweets 7 | prev: Vorige 8 | next: Volgende 9 | comment: Commentaren 10 | archive_a: Archieven 11 | archive_b: "Archieven: %s" 12 | page: Pagina %d 13 | recent_posts: Recente berichten 14 | newer: Nieuwer 15 | older: Ouder 16 | share: Delen 17 | powered_by: Powered by 18 | rss_feed: RSS Feed 19 | category: Categorie 20 | tag: Label 21 | -------------------------------------------------------------------------------- /themes/landscape/languages/no.yml: -------------------------------------------------------------------------------- 1 | categories: Kategorier 2 | search: Søk 3 | tags: Tags 4 | tagcloud: Tag Cloud 5 | tweets: Tweets 6 | prev: Forrige 7 | next: Neste 8 | comment: Kommentarer 9 | archive_a: Arkiv 10 | archive_b: "Arkiv: %s" 11 | page: Side %d 12 | recent_posts: Siste innlegg 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/languages/pt.yml: -------------------------------------------------------------------------------- 1 | categories: Categorias 2 | search: Buscar 3 | tags: Tags 4 | tagcloud: Nuvem de Tags 5 | tweets: Tweets 6 | prev: Anterior 7 | next: Próximo 8 | comment: Comentários 9 | archive_a: Arquivos 10 | archive_b: "Arquivos: %s" 11 | page: Página %d 12 | recent_posts: Postagens Recentes 13 | newer: Mais Recente 14 | older: Mais Antigo 15 | share: Compartilhar 16 | powered_by: Desenvolvido por 17 | rss_feed: Feed RSS 18 | category: Categoria 19 | tag: Tag 20 | -------------------------------------------------------------------------------- /themes/landscape/languages/ru.yml: -------------------------------------------------------------------------------- 1 | categories: Категории 2 | search: Поиск 3 | tags: Метки 4 | tagcloud: Облако меток 5 | tweets: Твиты 6 | prev: Назад 7 | next: Вперед 8 | comment: Комментарии 9 | archive_a: Архив 10 | archive_b: "Архив: %s" 11 | page: Страница %d 12 | recent_posts: Недавние записи 13 | newer: Следующий 14 | older: Предыдущий 15 | share: Поделиться 16 | powered_by: Создано с помощью 17 | rss_feed: RSS-каналы 18 | category: Категория 19 | tag: Метка -------------------------------------------------------------------------------- /themes/landscape/languages/zh-CN.yml: -------------------------------------------------------------------------------- 1 | categories: 分类 2 | search: 搜索 3 | tags: 标签 4 | tagcloud: 标签云 5 | tweets: 推文 6 | prev: 上一页 7 | next: 下一页 8 | comment: 留言 9 | archive_a: 归档 10 | archive_b: 归档:%s 11 | page: 第 %d 页 12 | recent_posts: 最新文章 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/languages/zh-TW.yml: -------------------------------------------------------------------------------- 1 | categories: 分類 2 | search: 搜尋 3 | tags: 標籤 4 | tagcloud: 標籤雲 5 | tweets: 推文 6 | prev: 上一頁 7 | next: 下一頁 8 | comment: 留言 9 | archive_a: 彙整 10 | archive_b: 彙整:%s 11 | page: 第 %d 頁 12 | recent_posts: 最新文章 13 | newer: Newer 14 | older: Older 15 | share: Share 16 | powered_by: Powered by 17 | rss_feed: RSS Feed 18 | category: Category 19 | tag: Tag -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/after-footer.ejs: -------------------------------------------------------------------------------- 1 | <% if (config.disqus_shortname){ %> 2 | 15 | <% } %> 16 | 17 | 18 | 19 | <% if (theme.fancybox){ %> 20 | <%- css('fancybox/jquery.fancybox') %> 21 | <%- js('fancybox/jquery.fancybox.pack') %> 22 | <% } %> 23 | 24 | <%- js('js/script') %> 25 | <%- partial('gauges-analytics') %> 26 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/archive-post.ejs: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | <%- partial('post/date', {class_name: 'archive-article-date', date_format: 'MMM D'}) %> 5 | <%- partial('post/title', {class_name: 'archive-article-title'}) %> 6 |
7 |
8 |
-------------------------------------------------------------------------------- /themes/landscape/layout/_partial/archive.ejs: -------------------------------------------------------------------------------- 1 | <% if (pagination == 2){ %> 2 | <% page.posts.each(function(post){ %> 3 | <%- partial('article', {post: post, index: true}) %> 4 | <% }) %> 5 | <% } else { %> 6 | <% var last; %> 7 | <% page.posts.each(function(post, i){ %> 8 | <% var year = post.date.year(); %> 9 | <% if (last != year){ %> 10 | <% if (last != null){ %> 11 | 12 | <% } %> 13 | <% last = year; %> 14 |
15 |
16 | <%= year %> 17 |
18 |
19 | <% } %> 20 | <%- partial('archive-post', {post: post, even: i % 2 == 0}) %> 21 | <% }) %> 22 | <% if (page.posts.length){ %> 23 |
24 | <% } %> 25 | <% } %> 26 | <% if (page.total > 1){ %> 27 | 34 | <% } %> 35 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/footer.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/gauges-analytics.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.gauges_analytics){ %> 2 | 3 | 17 | 18 | <% } %> 19 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/google-analytics.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.google_analytics){ %> 2 | 3 | 13 | 14 | <% } %> 15 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/head.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%- partial('google-analytics') %> 6 | <% 7 | var title = page.title; 8 | 9 | if (is_archive()){ 10 | title = __('archive_a'); 11 | 12 | if (is_month()){ 13 | title += ': ' + page.year + '/' + page.month; 14 | } else if (is_year()){ 15 | title += ': ' + page.year; 16 | } 17 | } else if (is_category()){ 18 | title = __('category') + ': ' + page.category; 19 | } else if (is_tag()){ 20 | title = __('tag') + ': ' + page.tag; 21 | } 22 | %> 23 | <% if (title){ %><%= title %> | <% } %><%= config.title %> 24 | 25 | <%- open_graph({twitter_id: theme.twitter, google_plus: theme.google_plus, fb_admins: theme.fb_admins, fb_app_id: theme.fb_app_id}) %> 26 | <% if (theme.rss){ %> 27 | 28 | <% } %> 29 | <% if (theme.favicon){ %> 30 | 31 | <% } %> 32 | <% if (config.highlight.enable){ %> 33 | 34 | <% } %> 35 | <%- css('css/style') %> 36 | 37 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/header.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/mobile-nav.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/category.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.categories && post.categories.length){ %> 2 |
3 | <%- list_categories(post.categories, { 4 | show_count: false, 5 | class: 'article-category', 6 | style: 'none', 7 | separator: '►' 8 | }) %> 9 |
10 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/date.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/gallery.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.photos && post.photos.length){ %> 2 |
3 |
4 | <% post.photos.forEach(function(photo, i){ %> 5 | 6 | 7 | 8 | <% }) %> 9 |
10 |
11 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/nav.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.prev || post.next){ %> 2 | 22 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/tag.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.tags && post.tags.length){ %> 2 | <%- list_tags(post.tags, { 3 | show_count: false, 4 | class: 'article-tag' 5 | }) %> 6 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/post/title.ejs: -------------------------------------------------------------------------------- 1 | <% if (post.link){ %> 2 |

3 | 4 |

5 | <% } else if (post.title){ %> 6 | <% if (index){ %> 7 |

8 | <%= post.title %> 9 |

10 | <% } else { %> 11 |

12 | <%= post.title %> 13 |

14 | <% } %> 15 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/_partial/sidebar.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/archive.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.posts.length){ %> 2 |
3 |

<%= __('archive_a') %>

4 |
5 | <%- list_archives({show_count: theme.show_count, type: theme.archive_type}) %> 6 |
7 |
8 | <% } %> 9 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/category.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.categories.length){ %> 2 |
3 |

<%= __('categories') %>

4 |
5 | <%- list_categories({show_count: theme.show_count}) %> 6 |
7 |
8 | <% } %> 9 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/recent_posts.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.posts.length){ %> 2 |
3 |

<%= __('recent_posts') %>

4 |
5 | 12 |
13 |
14 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/tag.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.tags.length){ %> 2 |
3 |

<%= __('tags') %>

4 |
5 | <%- list_tags({show_count: theme.show_count}) %> 6 |
7 |
8 | <% } %> 9 | -------------------------------------------------------------------------------- /themes/landscape/layout/_widget/tagcloud.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.tags.length){ %> 2 |
3 |

<%= __('tagcloud') %>

4 |
5 | <%- tagcloud() %> 6 |
7 |
8 | <% } %> -------------------------------------------------------------------------------- /themes/landscape/layout/archive.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.archive, index: true}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/category.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.category, index: true}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/index.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: 2, index: true}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/layout.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/head') %> 2 | 3 |
4 |
5 | <%- partial('_partial/header', null, {cache: !config.relative_link}) %> 6 |
7 |
<%- body %>
8 | <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %> 9 | <%- partial('_partial/sidebar', null, {cache: !config.relative_link}) %> 10 | <% } %> 11 |
12 | <%- partial('_partial/footer', null, {cache: !config.relative_link}) %> 13 |
14 | <%- partial('_partial/mobile-nav', null, {cache: !config.relative_link}) %> 15 | <%- partial('_partial/after-footer') %> 16 |
17 | 18 | -------------------------------------------------------------------------------- /themes/landscape/layout/page.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/article', {post: page, index: false}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/post.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/article', {post: page, index: false}) %> -------------------------------------------------------------------------------- /themes/landscape/layout/tag.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.tag, index: true}) %> -------------------------------------------------------------------------------- /themes/landscape/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-theme-landscape", 3 | "version": "0.0.2", 4 | "private": true, 5 | "devDependencies": { 6 | "grunt": "~0.4.2", 7 | "load-grunt-tasks": "~0.2.0", 8 | "grunt-git": "~0.2.2", 9 | "grunt-contrib-clean": "~0.5.0", 10 | "grunt-contrib-copy": "~0.4.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /themes/landscape/scripts/fancybox.js: -------------------------------------------------------------------------------- 1 | var rUrl = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/; 2 | 3 | /** 4 | * Fancybox tag 5 | * 6 | * Syntax: 7 | * {% fancybox /path/to/image [/path/to/thumbnail] [title] %} 8 | */ 9 | 10 | hexo.extend.tag.register('fancybox', function(args){ 11 | var original = args.shift(), 12 | thumbnail = ''; 13 | 14 | if (args.length && rUrl.test(args[0])){ 15 | thumbnail = args.shift(); 16 | } 17 | 18 | var title = args.join(' '); 19 | 20 | return '' + 21 | '' + title + '' 22 | '' + 23 | (title ? '' + title + '' : ''); 24 | }); -------------------------------------------------------------------------------- /themes/landscape/source/css/_extend.styl: -------------------------------------------------------------------------------- 1 | $block-caption 2 | text-decoration: none 3 | text-transform: uppercase 4 | letter-spacing: 2px 5 | color: color-grey 6 | margin-bottom: 1em 7 | margin-left: 5px 8 | line-height: 1em 9 | text-shadow: 0 1px #fff 10 | font-weight: bold 11 | 12 | $block 13 | background: #fff 14 | box-shadow: 1px 2px 3px #ddd 15 | border: 1px solid color-border 16 | border-radius: 3px 17 | 18 | $base-style 19 | h1 20 | font-size: 2em 21 | h2 22 | font-size: 1.5em 23 | h3 24 | font-size: 1.3em 25 | h4 26 | font-size: 1.2em 27 | h5 28 | font-size: 1em 29 | h6 30 | font-size: 1em 31 | color: color-grey 32 | hr 33 | border: 1px dashed color-border 34 | strong 35 | font-weight: bold 36 | em, cite 37 | font-style: italic 38 | sup, sub 39 | font-size: 0.75em 40 | line-height: 0 41 | position: relative 42 | vertical-align: baseline 43 | sup 44 | top: -0.5em 45 | sub 46 | bottom: -0.2em 47 | small 48 | font-size: 0.85em 49 | acronym, abbr 50 | border-bottom: 1px dotted 51 | ul, ol, dl 52 | margin: 0 20px 53 | line-height: line-height 54 | ul, ol 55 | ul, ol 56 | margin-top: 0 57 | margin-bottom: 0 58 | ul 59 | list-style: disc 60 | ol 61 | list-style: decimal 62 | dt 63 | font-weight: bold -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/comment.styl: -------------------------------------------------------------------------------- 1 | #comments 2 | background: #fff 3 | box-shadow: 1px 2px 3px #ddd 4 | padding: article-padding 5 | border: 1px solid color-border 6 | border-radius: 3px 7 | margin: block-margin 0 8 | a 9 | color: color-link -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/footer.styl: -------------------------------------------------------------------------------- 1 | #footer 2 | background: color-footer-background 3 | padding: 50px 0 4 | border-top: 1px solid color-border 5 | color: color-grey 6 | a 7 | color: color-link 8 | text-decoration: none 9 | &:hover 10 | text-decoration: underline 11 | 12 | #footer-info 13 | line-height: line-height 14 | font-size: 0.85em -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/mobile.styl: -------------------------------------------------------------------------------- 1 | @media mq-mobile 2 | #mobile-nav 3 | position: absolute 4 | top: 0 5 | left: 0 6 | width: mobile-nav-width 7 | height: 100% 8 | background: color-mobile-nav-background 9 | border-right: 1px solid #fff 10 | 11 | @media mq-mobile 12 | .mobile-nav-link 13 | display: block 14 | color: color-grey 15 | text-decoration: none 16 | padding: 15px 20px 17 | font-weight: bold 18 | &:hover 19 | color: #fff 20 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/sidebar-aside.styl: -------------------------------------------------------------------------------- 1 | #sidebar 2 | @media mq-normal 3 | column(sidebar-column) 4 | 5 | .widget-wrap 6 | margin: block-margin 0 7 | 8 | .widget-title 9 | @extend $block-caption 10 | 11 | .widget 12 | color: color-sidebar-text 13 | text-shadow: 0 1px #fff 14 | background: color-widget-background 15 | box-shadow: 0 -1px 4px color-widget-border inset 16 | border: 1px solid color-widget-border 17 | padding: 15px 18 | border-radius: 3px 19 | a 20 | color: color-link 21 | text-decoration: none 22 | &:hover 23 | text-decoration: underline 24 | ul, ol, dl 25 | ul, ol, dl 26 | margin-left: 15px 27 | list-style: disc -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/sidebar-bottom.styl: -------------------------------------------------------------------------------- 1 | .widget-wrap 2 | margin-bottom: block-margin !important 3 | @media mq-normal 4 | column(main-column) 5 | 6 | .widget-title 7 | color: #ccc 8 | text-transform: uppercase 9 | letter-spacing: 2px 10 | margin-bottom: .5em 11 | line-height: 1em 12 | font-weight: bold 13 | 14 | .widget 15 | color: color-grey 16 | ul, ol 17 | li 18 | display: inline-block 19 | zoom:1 20 | *display:inline 21 | padding-right: .75em 22 | /* Having problems getting balanced white space between items 23 | li:before 24 | content: " | " 25 | li:first-child:before 26 | content: none 27 | */ 28 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_partial/sidebar.styl: -------------------------------------------------------------------------------- 1 | if sidebar is bottom 2 | @import "sidebar-bottom" 3 | else 4 | @import "sidebar-aside" 5 | 6 | .widget 7 | @extend $base-style 8 | line-height: line-height 9 | word-wrap: break-word 10 | font-size: 0.9em 11 | ul, ol 12 | list-style: none 13 | margin: 0 14 | ul, ol 15 | margin: 0 20px 16 | ul 17 | list-style: disc 18 | ol 19 | list-style: decimal 20 | 21 | .category-list-count 22 | .tag-list-count 23 | .archive-list-count 24 | padding-left: 5px 25 | color: color-grey 26 | font-size: 0.85em 27 | &:before 28 | content: "(" 29 | &:after 30 | content: ")" 31 | 32 | .tagcloud 33 | a 34 | margin-right: 5px 35 | display: inline-block 36 | -------------------------------------------------------------------------------- /themes/landscape/source/css/_util/grid.styl: -------------------------------------------------------------------------------- 1 | ///////////////// 2 | // Semantic.gs // for Stylus: http://learnboost.github.com/stylus/ 3 | ///////////////// 4 | 5 | // Utility function — you should never need to modify this 6 | // _gridsystem-width = (column-width + gutter-width) * columns 7 | gridsystem-width(_columns = columns) 8 | (column-width + gutter-width) * _columns 9 | 10 | // Set @total-width to 100% for a fluid layout 11 | // total-width = gridsystem-width(columns) 12 | total-width = 100% 13 | 14 | ////////// 15 | // GRID // 16 | ////////// 17 | 18 | body 19 | clearfix() 20 | width: 100% 21 | 22 | row(_columns = columns) 23 | clearfix() 24 | display: block 25 | width: total-width * ((gutter-width + gridsystem-width(_columns)) / gridsystem-width(_columns)) 26 | margin: 0 total-width * (((gutter-width * .5) / gridsystem-width(_columns)) * -1) 27 | 28 | column(x, _columns = columns) 29 | display: inline 30 | float: left 31 | width: total-width * ((((gutter-width + column-width) * x) - gutter-width) / gridsystem-width(_columns)) 32 | margin: 0 total-width * ((gutter-width * .5) / gridsystem-width(_columns)) 33 | 34 | push(offset = 1) 35 | margin-left: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) 36 | 37 | pull(offset = 1) 38 | margin-right: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) -------------------------------------------------------------------------------- /themes/landscape/source/css/_util/mixin.styl: -------------------------------------------------------------------------------- 1 | // http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/ 2 | hide-text() 3 | text-indent: 100% 4 | white-space: nowrap 5 | overflow: hidden 6 | 7 | // http://codepen.io/shshaw/full/gEiDt 8 | absolute-center(width, height = width) 9 | // margin: auto 10 | // position: absolute 11 | // top: 50% 12 | // top: 0 13 | // left: 0 14 | // bottom: 0 15 | // right: 0 16 | // width: width 17 | // height: height 18 | // overflow: auto 19 | width: width 20 | height: height 21 | position: absolute 22 | top: 50% 23 | left: 50% 24 | margin-top: width * -0.5 25 | margin-left: height * -0.5 26 | 27 | avoid-column-break() 28 | vendor("column-break-inside", avoid, only: webkit) 29 | page-break-inside: avoid // for firefox 30 | overflow: hidden // fix for firefox 31 | break-inside: avoid-column 32 | -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/css/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /themes/landscape/source/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /themes/landscape/source/css/images/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/css/images/banner.jpg -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/blank.gif -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/fancybox_loading.gif -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/fancybox_loading@2x.gif -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/fancybox_overlay.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/fancybox_sprite.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/fancybox_sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/fancybox_sprite@2x.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/helpers/fancybox_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/landscape/source/fancybox/helpers/fancybox_buttons.png -------------------------------------------------------------------------------- /themes/landscape/source/fancybox/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 | } -------------------------------------------------------------------------------- /themes/next/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "source/lib" 3 | } 4 | -------------------------------------------------------------------------------- /themes/next/.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 | -------------------------------------------------------------------------------- /themes/next/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "theme-next", 3 | "root": true 4 | } 5 | -------------------------------------------------------------------------------- /themes/next/.gitattributes: -------------------------------------------------------------------------------- 1 | source/lib/* linguist-vendored 2 | scripts/merge.js linguist-vendored 3 | -------------------------------------------------------------------------------- /themes/next/.github/auto_assign.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Auto Assign - https://github.com/kentaro-m/auto-assign 2 | 3 | # Set to true to add reviewers to pull requests 4 | addReviewers: true 5 | 6 | # Set to true to add assignees to pull requests 7 | addAssignees: false 8 | 9 | # A list of reviewers to be added to pull requests (GitHub user name) 10 | reviewers: 11 | - ivan-nginx 12 | - maple3142 13 | - sli1989 14 | - stevenjoezhang 15 | 16 | # A number of reviewers added to the pull request 17 | # Set 0 to add all the reviewers (default: 0) 18 | numberOfReviewers: 0 19 | 20 | # A list of keywords to be skipped the process that add reviewers if pull requests include it 21 | skipKeywords: 22 | - wip 23 | -------------------------------------------------------------------------------- /themes/next/.github/eslint-disable-bot.yml: -------------------------------------------------------------------------------- 1 | # Configuration for ESLint Disable Watcher - https://github.com/koddsson/eslint-disable-probot 2 | 3 | # Change this to set the number of comments the watcher should comment on a given PR. 4 | commentLimit: 10 5 | # The message the bot will post on any lines containing a eslint disable comment. 6 | commentMessage: Please don't disable eslint rules :pray: 7 | # A optional regular expression that will match against the branch name and not comment on it if it matches. 8 | skipBranchMatching: null 9 | -------------------------------------------------------------------------------- /themes/next/.github/lock.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Lock Threads - https://github.com/dessant/lock-threads 2 | 3 | # Number of days of inactivity before a closed issue or pull request is locked 4 | daysUntilLock: 365 5 | 6 | # Skip issues and pull requests created before a given timestamp. Timestamp must 7 | # follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable 8 | skipCreatedBefore: false 9 | 10 | # Issues and pull requests with these labels will be ignored. Set to `[]` to disable 11 | exemptLabels: 12 | - backlog 13 | 14 | # Label to add before locking, such as `outdated`. Set to `false` to disable 15 | lockLabel: 🔒 Locked 16 | 17 | # Comment to post before locking. Set to `false` to disable 18 | lockComment: > 19 | This thread has been automatically locked since there has not been 20 | any recent activity after it was closed. It is possible issue was 21 | solved or at least outdated. Feel free to open new for related bugs. 22 | 23 | # Assign `resolved` as the reason for locking. Set to `false` to disable 24 | setLockReason: true 25 | 26 | # Limit to only `issues` or `pulls` 27 | only: issues 28 | 29 | # Optionally, specify configuration settings just for `issues` or `pulls` 30 | # issues: 31 | # exemptLabels: 32 | # - help-wanted 33 | # lockLabel: outdated 34 | 35 | # pulls: 36 | # daysUntilLock: 30 37 | 38 | # Repository to extend settings from 39 | # _extends: repo 40 | -------------------------------------------------------------------------------- /themes/next/.github/mergeable.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Mergeable - https://github.com/jusx/mergeable 2 | 3 | version: 2 4 | mergeable: 5 | - when: pull_request.* 6 | validate: 7 | - do: description 8 | no_empty: 9 | enabled: false 10 | 11 | - do: title 12 | must_exclude: 13 | regex: ^\[WIP\] 14 | 15 | - do: label 16 | must_include: 17 | regex: 'change|feat|imp|fix|doc|i18n' 18 | must_exclude: 19 | regex: 'wip|work in progress' 20 | 21 | #- do: project 22 | # no_empty: 23 | # enabled: true 24 | # must_include: 25 | # regex: 'change|feat|imp|fix|doc|loc' 26 | 27 | - do: milestone 28 | no_empty: 29 | enabled: true 30 | -------------------------------------------------------------------------------- /themes/next/.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Release Drafter - https://github.com/toolmantim/release-drafter 2 | 3 | name-template: 'v$NEXT_MINOR_VERSION' 4 | tag-template: 'v$NEXT_MINOR_VERSION' 5 | categories: 6 | - title: '💥 Breaking Changes' 7 | label: '💥 Breaking Change' 8 | 9 | - title: '🌀 External Changes' 10 | label: '🌀 External Change' 11 | 12 | - title: '🌟 New Features' 13 | label: '🌟 New Feature' 14 | 15 | - title: '⭐ Features' 16 | label: '⭐ Feature' 17 | 18 | - title: '🛠 Improvements' 19 | label: '🛠 Improvement' 20 | 21 | - title: '🐞 Bug Fixes' 22 | label: '🐞 Bug Fix' 23 | 24 | - title: '📖 Documentation' 25 | label: '📖 Docs' 26 | 27 | - title: '🌍 Localization' 28 | label: '🌍 i18n' 29 | 30 | change-template: '- $TITLE (#$NUMBER)' 31 | no-changes-template: '- No changes' 32 | template: | 33 | $CHANGES 34 | 35 | *** 36 | 37 | For full changes, see the [comparison between $PREVIOUS_TAG and v$NEXT_MINOR_VERSION](https://github.com/theme-next/hexo-theme-next/compare/$PREVIOUS_TAG...v$NEXT_MINOR_VERSION) 38 | -------------------------------------------------------------------------------- /themes/next/.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Configuration for probot-stale - https://github.com/probot/stale 2 | 3 | # Number of days of inactivity before an Issue or Pull Request becomes stale 4 | daysUntilStale: 30 5 | # Number of days of inactivity before a stale Issue or Pull Request is closed 6 | daysUntilClose: 7 7 | # Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable 8 | exemptLabels: 9 | - bug 10 | - feature request 11 | - improvement need 12 | - wait for answer 13 | - need verify 14 | - question 15 | - backlog 16 | - docs 17 | # Label to use when marking as stale 18 | staleLabel: stale 19 | # Comment to post when marking as stale. Set to `false` to disable 20 | markComment: > 21 | This issue has been automatically marked as stale because lack of 22 | recent activity. It will be closed if no further activity occurs. Thank you 23 | for your contributions. You can also use our [support channels](https://github.com/theme-next/hexo-theme-next#feedback) to get help with the project. 24 | # Comment to post when removing the stale label. Set to `false` to disable 25 | unmarkComment: false 26 | # Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable 27 | closeComment: false 28 | # Limit to only `issues` or `pulls` 29 | only: issues 30 | -------------------------------------------------------------------------------- /themes/next/.github/support.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Support Requests - https://github.com/dessant/support-requests 2 | 3 | # Label used to mark issues as support requests 4 | supportLabel: Support 5 | 6 | # Comment to post on issues marked as support requests, `{issue-author}` is an 7 | # optional placeholder. Set to `false` to disable 8 | supportComment: > 9 | :wave: @{issue-author}, we use the issue tracker exclusively for bug reports 10 | and feature requests. However, this issue appears to be a support request. 11 | Please use our [support channels](https://github.com/theme-next/hexo-theme-next/tree/master#feedback) to get help with the project. 12 | 13 | # Close issues marked as support requests 14 | close: true 15 | 16 | # Lock issues marked as support requests 17 | lock: false 18 | 19 | # Assign `off-topic` as the reason for locking. Set to `false` to disable 20 | setLockReason: true 21 | 22 | # Repository to extend settings from 23 | # _extends: repo 24 | -------------------------------------------------------------------------------- /themes/next/.github/topissuebot.yml: -------------------------------------------------------------------------------- 1 | # Configuration for top-issue-bot - https://github.com/adamzolyak/gh-vote-bot 2 | 3 | labelName: '👍 Top Issue!' 4 | labelColor: '006b75' 5 | numberOfIssuesToLabel: 10 6 | -------------------------------------------------------------------------------- /themes/next/.github/weekly-digest.yml: -------------------------------------------------------------------------------- 1 | # Configuration for weekly-digest - https://github.com/apps/weekly-digest 2 | 3 | publishDay: sun 4 | canPublishIssues: true 5 | canPublishPullRequests: true 6 | canPublishContributors: true 7 | canPublishStargazers: true 8 | canPublishCommits: true 9 | -------------------------------------------------------------------------------- /themes/next/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea/ 3 | *.log 4 | *.iml 5 | yarn.lock 6 | package-lock.json 7 | node_modules/ 8 | 9 | # Ignore optional external libraries 10 | source/lib/* 11 | 12 | # Track internal libraries & Ignore unused verdors files 13 | source/lib/font-awesome/less/ 14 | source/lib/font-awesome/scss/ 15 | !source/lib/font-awesome/* 16 | 17 | !source/lib/jquery/ 18 | 19 | !source/lib/velocity/ 20 | -------------------------------------------------------------------------------- /themes/next/.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 | -------------------------------------------------------------------------------- /themes/next/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | #node_js: node 3 | node_js: lts/* 4 | 5 | cache: 6 | directories: 7 | - node_modules 8 | 9 | install: npm install 10 | 11 | before_script: 12 | - npm install -g gulp 13 | 14 | addons: 15 | browserstack: 16 | username: "ivannginx1" 17 | access_key: 18 | secure: "NutOhdgtUdBUXMPZhy8X1F1Jq+tan1LeNOV0FArBt15SNlxtNArqhiyTi4XnG9MPruX4306aGF2RBrKso+OiGNRdGtRGngH613Q0GWNtlC/boMqnI7fHqLIyCs6S12y2uA8PK4Ifxg9bZ0VtCTYYbMy+p1KvBM//L12vmtfdnby8z5Qvex3tB3dLoPOR50CKkINHJVDLm+iVRFrdz4/83oDsulZSRRGIaxu5taDWPIcp3fYZtre2Nc+RXcsyFDyjN7U0Hvr5tKBbloJxXEQEBv2xLkMOtp85nmCPD06s1Il8Wus1ux3raVsfUyaW5FpNX37Jeb5e00RQUM1wgU5m75H6qiGwDvQswbugJG0i/a2nNfsgVmbrSZdMnkHcx2Uxmrw4ejyEP5NSrJSBi05Ck1fQ4UsZ4Qkdf1fd04SI0LpLWt43eoNO/7rHKsQoP4LCX9gxKUuC075NEBLODyJ529RYfA6dKKwwH6o0ZbOgASmCoAWaM65g4+FHRnJcKL/Kj9ZWklQtRa7/ynlHaA65jefFS2lB8Ut6d3rXDDBih9mIrwV1uUaEH96xgAN42bgU/vY6FGzNkDOYZqj4YfsepDM0wbOsslFie7JZq7iFjsYvrXqLvYUMk37AZwQ2Sb6uH4tIT4Qw/4oZfDzA1En3/8HdZJ28nKW/lzjwMSqheIY=" 19 | -------------------------------------------------------------------------------- /themes/next/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "theme-next", 3 | "version": "7.1.2", 4 | "homepage": "https://theme-next.org", 5 | "authors": [ 6 | "NexT (https://theme-next.org)" 7 | ], 8 | "description": "Elegant theme for Hexo", 9 | "repository": "https://github.com/theme-next/hexo-theme-next", 10 | "keywords": [ 11 | "hexo", 12 | "theme", 13 | "next" 14 | ], 15 | "license": "AGPL", 16 | "ignore": [ 17 | "**/.*", 18 | "node_modules", 19 | "bower_components", 20 | "source/lib", 21 | "test", 22 | "tests", 23 | "screenshots" 24 | ], 25 | "dependencies": { 26 | "font-awesome": "fontawesome#*", 27 | "jquery": "http://code.jquery.com/jquery-2.1.3.min.js", 28 | "velocity": "~1.2.1" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /themes/next/crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /languages/en.yml 3 | translation: /languages/%two_letters_code%.%file_extension% 4 | languages_mapping: 5 | two_letters_code: 6 | zh-CN: zh-CN 7 | zh-TW: zh-TW 8 | zh-HK: zh-HK 9 | pt-BR: pt-BR 10 | -------------------------------------------------------------------------------- /themes/next/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/utils.js', 12 | './source/js/motion.js', 13 | './source/js/algolia-search.js', 14 | './source/js/bootstrap.js', 15 | './source/js/post-details.js', 16 | './source/js/schemes/pisces.js' 17 | ]).pipe jshint() 18 | .pipe jshint.reporter(stylish) 19 | 20 | gulp.task 'lint:stylus', shell.task [ 21 | '"./node_modules/.bin/stylint" ./source/css/' 22 | ] 23 | 24 | gulp.task 'validate:config', (cb) -> 25 | themeConfig = fs.readFileSync path.join(__dirname, '_config.yml') 26 | 27 | try 28 | yaml.safeLoad(themeConfig) 29 | cb() 30 | catch error 31 | cb new Error(error) 32 | 33 | gulp.task 'validate:languages', (cb) -> 34 | languagesPath = path.join __dirname, 'languages' 35 | languages = fs.readdirSync languagesPath 36 | errors = [] 37 | 38 | for lang in languages 39 | languagePath = path.join languagesPath, lang 40 | try 41 | yaml.safeLoad fs.readFileSync(languagePath), { 42 | filename: path.relative(__dirname, languagePath) 43 | } 44 | catch error 45 | errors.push error 46 | 47 | if errors.length == 0 48 | cb() 49 | else 50 | cb(errors) 51 | 52 | 53 | gulp.task 'default', ['lint', 'validate:config', 'validate:languages'] 54 | -------------------------------------------------------------------------------- /themes/next/languages/default.yml: -------------------------------------------------------------------------------- 1 | en.yml -------------------------------------------------------------------------------- /themes/next/layout/_custom/head.swig: -------------------------------------------------------------------------------- 1 | {# 2 | Custom head. 3 | #} 4 | -------------------------------------------------------------------------------- /themes/next/layout/_custom/header.swig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /themes/next/layout/_custom/sidebar.swig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /themes/next/layout/_macro/menu/menu-badge.swig: -------------------------------------------------------------------------------- 1 | {% macro render(name) %} 2 | 3 | {% set badges = { 4 | archives: site.posts.length, 5 | categories: site.categories.length, 6 | tags: site.tags.length } 7 | %} 8 | {% for menu, count in badges %} 9 | {% if name == menu %} 10 | {{ count }} 11 | {% endif %} 12 | {% endfor %} 13 | 14 | {% endmacro %} 15 | -------------------------------------------------------------------------------- /themes/next/layout/_macro/menu/menu-item.swig: -------------------------------------------------------------------------------- 1 | {% macro render(name, value) %} 2 | {% import 'menu-badge.swig' as menu_badge %} 3 | 4 | {% set itemURL = value.split('||')[0] | trim %} 5 | {% if itemURL.indexOf('http') != 0 %} 6 | {% set itemURL = itemURL | replace('//', '/', 'g') %} 7 | {% endif %} 8 | 23 | 24 | {% endmacro %} 25 | -------------------------------------------------------------------------------- /themes/next/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 | {% set postTitleIcon = '' %} 9 | {% set postText = post.title or post.link %} 10 | {{ next_url(post.link, postText + postTitleIcon, {class: 'post-title-link post-title-link-external', itemprop: 'url' }) }} 11 | {% else %} 12 | 19 | {% endif %} 20 | 21 | 22 | 29 | 30 |
31 |
32 | 33 | {% endmacro %} 34 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/github-banner.swig: -------------------------------------------------------------------------------- 1 | {% if theme.github_banner.enable %} 2 | {% set github_URL = theme.github_banner.permalink %} 3 | {% set github_title = theme.github_banner.title %} 4 | 5 | {% set github_image = '' %} 6 | 7 | {{ next_url(github_URL, github_image, {class: 'github-corner', title: github_title, "aria-label": github_title}) }} 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/head/head-unique.swig: -------------------------------------------------------------------------------- 1 | {{ 2 | open_graph({ 3 | twitter_id: theme.twitter, 4 | google_plus: theme.google_plus, 5 | fb_admins: theme.fb_admins, 6 | fb_app_id: theme.fb_app_id 7 | }) 8 | }} 9 | 10 | {% if theme.rss === '' and config.feed and config.feed.path %} 11 | {% set theme.rss = config.feed.path %} 12 | {% endif %} 13 | {% if theme.rss %} 14 | 15 | {% endif %} 16 | 17 | {% if theme.canonical %} 18 | {% set without_index = url.replace('index.html', '') %} 19 | {% set without_html = without_index.replace('.html', '') %} 20 | 21 | {% endif %} 22 | 23 | {# Exports some front-matter variables to Front-End #} 24 | 29 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/header/brand.swig: -------------------------------------------------------------------------------- 1 |
2 |
3 | {% if theme.custom_logo.enable and theme.custom_logo.image and theme.scheme === 'Muse' %} 4 |
5 | 6 | {{ title }} 7 | 8 |
9 | {% endif %} 10 | 11 | 18 | {% if subtitle %} 19 | {% if theme.seo %} 20 |

{{ subtitle }}

21 | {% else %} 22 |

{{ subtitle }}

23 | {% endif %} 24 | {% endif %} 25 | {% if theme.custom_logo.enable and theme.custom_logo.image and (theme.scheme === 'Gemini' or theme.scheme === 'Pisces') %} 26 | 27 | {{ title }} 28 | 29 | {% endif %} 30 |
31 | 32 | 39 |
40 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/header/index.swig: -------------------------------------------------------------------------------- 1 | {{ partial('_partials/header/brand.swig', {}, {cache: theme.cache.enable}) }} 2 | {% include 'menu.swig' %} 3 | 4 | {% if theme.custom_file_path.header %} 5 | {% set custom_header = '../../../../../' + theme.custom_file_path.header %} 6 | {% else %} 7 | {% set custom_header = '../../_custom/header.swig' %} 8 | {% endif %} 9 | {% include custom_header %} 10 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/page/breadcrumb.swig: -------------------------------------------------------------------------------- 1 | {% set paths = page.path.split('/') %} 2 | {% set count = paths.length %} 3 | {% if count > 2 %} 4 | {% set current = 0 %} 5 | {% set link = '' %} 6 | 27 | {% endif %} 28 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/page/page-header.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 | <{% if theme.seo %}h2{% else %}h1{% endif %} class="post-title" itemprop="name headline"> 4 | {{- page.title -}} 5 | {% include '../post-edit.swig' %} 6 | 7 | 8 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/pagination.swig: -------------------------------------------------------------------------------- 1 | {% if page.prev or page.next %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post-edit.swig: -------------------------------------------------------------------------------- 1 | {% if theme.post_edit.enable -%} 2 | {% set editIcon = '' -%} 3 | {{ next_url(theme.post_edit.url + page.source, editIcon, {class: 'post-edit-link', title: __('post.edit') }) }} 4 | {%- endif %} 5 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/post-copyright.swig: -------------------------------------------------------------------------------- 1 | {% set ccLicense = theme.creative_commons.license | lower %} 2 | {% set ccLanguage = theme.creative_commons.language %} 3 | {% set ccIcon = '' %} 4 | {% set ccText = ccLicense | upper %} 5 | {% if ccLicense === 'zero' %} 6 | {% set ccType = 'publicdomain/zero/1.0/' + ccLanguage %} 7 | {% else %} 8 | {% set ccType = 'licenses/' + ccLicense + '/4.0/' + ccLanguage %} 9 | {% endif %} 10 | {% set ccURL = 'https://creativecommons.org/' + ccType %} 11 | 12 | 27 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/post-related.swig: -------------------------------------------------------------------------------- 1 | {% set popular_posts = popular_posts_json(theme.related_posts.params, post) %} 2 | {% if popular_posts.json and popular_posts.json.length > 0 %} 3 | 4 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/reward.swig: -------------------------------------------------------------------------------- 1 |
2 |
{{ theme.reward_settings.comment }}
3 | 6 | 22 |
23 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/post/wechat-subscriber.swig: -------------------------------------------------------------------------------- 1 |
2 | {{ author }} wechat 3 |
{{ theme.wechat_subscriber.description }}
4 |
5 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/algolia-search.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/index.swig: -------------------------------------------------------------------------------- 1 | {% if theme.algolia_search.enable %} 2 | {% include 'algolia-search.swig' %} 3 | {% elif theme.swiftype_key %} 4 | {% include 'swiftype.swig' %} 5 | {% elif theme.local_search.enable %} 6 | {% include 'localsearch.swig' %} 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/localsearch.swig: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/search/swiftype.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | 13 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/share/add-this.swig: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | -------------------------------------------------------------------------------- /themes/next/layout/_partials/share/likely.swig: -------------------------------------------------------------------------------- 1 | {% set likely_js_url = '//cdn.jsdelivr.net/npm/ilyabirman-likely@2/release/likely.js' %} 2 | {% if theme.vendors.likely_js %} 3 | {% set likely_js_url = theme.vendors.likely_js %} 4 | {% endif %} 5 | 6 | 7 | {% set likely_css_url = '//cdn.jsdelivr.net/npm/ilyabirman-likely@2/release/likely.css' %} 8 | {% if theme.vendors.likely_css %} 9 | {% set likely_css_url = theme.vendors.likely_css %} 10 | {% endif %} 11 | 12 | 13 | {% if theme.likely.look == 'normal' %} 14 | {% set likely_look = 'likely' %} 15 | {% else %} 16 | {% set likely_look = 'likely likely-' + theme.likely.look %} 17 | {% endif %} 18 | 19 |
20 | {% for x in theme.likely.networks %} 21 |
{{ x }}
22 | {% endfor %} 23 |
24 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/commons.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set js_commons = [ 3 | 'utils.js', 4 | 'motion.js' 5 | ] 6 | %} 7 | 8 | {% for common in js_commons %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/exturl.swig: -------------------------------------------------------------------------------- 1 | {% if theme.exturl %} 2 | 3 | {% endif %} 4 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/next-boot.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set boot_scripts = [ 3 | 'next-boot.js' 4 | ] 5 | %} 6 | 7 | {% for bs in boot_scripts %} 8 | 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/noscript.swig: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/pages/post-details.swig: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/gemini.swig: -------------------------------------------------------------------------------- 1 | {% include 'pisces.swig' %} 2 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/mist.swig: -------------------------------------------------------------------------------- 1 | {% include 'muse.swig' %} 2 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/muse.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set scripts = [ 3 | 'schemes/muse.js' 4 | ] 5 | %} 6 | 7 | {% for script in scripts %} 8 | 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/schemes/pisces.swig: -------------------------------------------------------------------------------- 1 | {% 2 | set scripts = [ 3 | 'affix.js', 4 | 'schemes/pisces.js' 5 | ] 6 | %} 7 | 8 | {% for script in scripts %} 9 | 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /themes/next/layout/_scripts/scroll-cookie.swig: -------------------------------------------------------------------------------- 1 | {% if theme.save_scroll %} 2 | 3 | 4 | {% endif %} 5 | -------------------------------------------------------------------------------- /themes/next/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' %} 5 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/application-insights.swig: -------------------------------------------------------------------------------- 1 | {% if theme.application_insights %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/baidu-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidu_analytics %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/busuanzi-counter.swig: -------------------------------------------------------------------------------- 1 | {% if theme.busuanzi_count.enable %} 2 |
3 | 4 | 5 | {% if theme.busuanzi_count.total_visitors %} 6 | 9 | 10 | 11 | 12 | {% endif %} 13 | 14 | {% if theme.busuanzi_count.total_visitors and theme.busuanzi_count.total_views %} 15 | 16 | {% endif %} 17 | 18 | {% if theme.busuanzi_count.total_views %} 19 | 22 | 23 | 24 | 25 | {% endif %} 26 |
27 | {% endif %} 28 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/cnzz-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.cnzz_siteid %} 2 |
3 | 4 |
5 | {% endif %} 6 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/facebook-sdk.swig: -------------------------------------------------------------------------------- 1 | {% if theme.facebook_sdk.enable %} 2 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/google-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.google_analytics.tracking_id %} 2 | 3 | 12 | {% endif %} 13 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/growingio.swig: -------------------------------------------------------------------------------- 1 | {% if theme.growingio_analytics %} 2 | 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /themes/next/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 | {% include 'growingio.swig' %} 7 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/tencent-analytics.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tencent_analytics %} 2 | 10 | {% endif %} 11 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/tencent-mta.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tencent_mta %} 2 | 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/analytics/vkontakte-api.swig: -------------------------------------------------------------------------------- 1 | {% if theme.vkontakte_api.enable %} 2 |
3 | 25 | {% endif %} 26 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/baidu-push.swig: -------------------------------------------------------------------------------- 1 | {% if theme.baidu_push %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/bookmark.swig: -------------------------------------------------------------------------------- 1 | {% if theme.bookmark and theme.bookmark.enable %} 2 | {% set bookmark_uri = url_for(theme.vendors._internal + '/bookmark/bookmark.min.js?v=1.0') %} 3 | {% if theme.vendors.bookmark %} 4 | {% set bookmark_uri = theme.vendors.bookmark %} 5 | {% endif %} 6 | 7 | 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/chatra.swig: -------------------------------------------------------------------------------- 1 | {% if theme.chatra.enable %} 2 | {% if theme.chatra.embed %} 3 | 9 | {% endif %} 10 | 22 | {% endif %} 23 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/changyan.swig: -------------------------------------------------------------------------------- 1 | {% if is_home() %} 2 | 3 | {% elif page.comments %} 4 | 17 | 18 | {% endif %} 19 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/disqusjs.swig: -------------------------------------------------------------------------------- 1 | {% set disqusjs_css_url = '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqusjs.css' %} 2 | {% if theme.vendors.disqusjs_css %} 3 | {% set disqusjs_css_url = theme.vendors.disqusjs_css %} 4 | {% endif %} 5 | 6 | 7 | {% set disqusjs_js_url = '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js' %} 8 | {% if theme.vendors.disqusjs_js %} 9 | {% set disqusjs_js_url = theme.vendors.disqusjs_js %} 10 | {% endif %} 11 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/gitalk.swig: -------------------------------------------------------------------------------- 1 | {% set gitalk_js_url = '//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js' %} 2 | {% if theme.vendors.gitalk_js %} 3 | {% set gitalk_js_url = theme.vendors.gitalk_js %} 4 | {% endif %} 5 | 6 | 7 | {% set gitalk_css_url = '//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css' %} 8 | {% if theme.vendors.gitalk_css %} 9 | {% set gitalk_css_url = theme.vendors.gitalk_css %} 10 | {% endif %} 11 | 12 | 13 | {% set md5_url = '//cdn.jsdelivr.net/npm/js-md5@0.7.3/src/md5.min.js' %} 14 | {% if theme.vendors.md5 %} 15 | {% set md5_url = theme.vendors.md5 %} 16 | {% endif %} 17 | 18 | 19 | 36 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/index.swig: -------------------------------------------------------------------------------- 1 | {% if theme.disqus.enable %} 2 | {% include 'disqus.swig' %} 3 | {% elif theme.changyan.enable and theme.changyan.appid and theme.changyan.appkey %} 4 | {% include 'changyan.swig' %} 5 | {% elif theme.valine.enable and theme.valine.appid and theme.valine.appkey %} 6 | {% include 'valine.swig' %} 7 | {% endif %} 8 | 9 | {% if page.comments %} 10 | {% if theme.livere_uid %} 11 | {% include 'livere.swig' %} 12 | {% elif theme.gitment.enable and theme.gitment.client_id %} 13 | {% include 'gitment.swig' %} 14 | {% elif theme.gitalk.enable %} 15 | {% include 'gitalk.swig' %} 16 | {% elif theme.disqusjs.enable and theme.disqusjs.apikey and theme.disqusjs.shortname %} 17 | {% include 'disqusjs.swig' %} 18 | {% endif %} 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/livere.swig: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/comments/valine.swig: -------------------------------------------------------------------------------- 1 | {% set leancloud_uri = '//cdn1.lncld.net/static/js/3.11.1/av-min.js' %} 2 | {% if theme.vendors.leancloud %} 3 | {% set leancloud_uri = theme.vendors.leancloud %} 4 | {% endif %} 5 | 6 | 7 | {% set valine_uri = '//unpkg.com/valine/dist/Valine.min.js' %} 8 | {% if theme.vendors.valine %} 9 | {% set valine_uri = theme.vendors.valine %} 10 | {% endif %} 11 | 12 | 13 | 33 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/copy-code.swig: -------------------------------------------------------------------------------- 1 | {% if theme.codeblock.copy_button.enable %} 2 | 36 | {% endif %} 37 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/math/index.swig: -------------------------------------------------------------------------------- 1 | {% if theme.math.enable %} 2 | {% set is_index_has_math = false %} 3 | 4 | {# At home, check if there has `mathjax: true` post #} 5 | {% if is_home() %} 6 | {% for post in page.posts %} 7 | {% if post.mathjax and not is_index_has_math %} 8 | {% set is_index_has_math = true %} 9 | {% endif %} 10 | {% endfor %} 11 | {% endif %} 12 | 13 | {% if not theme.math.per_page or (is_index_has_math or page.mathjax) %} 14 | {% if theme.math.engine == 'mathjax' %} 15 | {% include 'mathjax.swig' %} 16 | {% elif theme.math.engine == 'katex' %} 17 | {% include 'katex.swig' %} 18 | {% endif %} 19 | {% endif %} 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/math/katex.swig: -------------------------------------------------------------------------------- 1 | 2 | {% if theme.math.katex.copy_tex.enable %} 3 | {% if theme.math.katex.copy_tex.copy_tex_js %} 4 | 5 | {% endif %} 6 | {% if theme.math.katex.copy_tex.copy_tex_css %} 7 | 8 | {% endif %} 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/math/mathjax.swig: -------------------------------------------------------------------------------- 1 | 31 | 32 | 40 | 41 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/mermaid.swig: -------------------------------------------------------------------------------- 1 | {% if theme.mermaid.enable %} 2 | 21 | {% endif %} 22 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/needsharebutton.swig: -------------------------------------------------------------------------------- 1 | {% if theme.needmoreshare2.enable %} 2 | {% set needmoreshare2_js = url_for(theme.vendors._internal + '/needsharebutton/needsharebutton.js') %} 3 | {% if theme.vendors.needmoreshare2_js %} 4 | {% set needmoreshare2_js = theme.vendors.needmoreshare2_js %} 5 | {% endif %} 6 | 7 | 23 | {% endif %} 24 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/pangu.swig: -------------------------------------------------------------------------------- 1 | {% if theme.pangu %} 2 | {% set pangu_uri = url_for(theme.vendors._internal + '/pangu/dist/pangu.min.js?v=3.3') %} 3 | {% if theme.vendors.pangu %} 4 | {% set pangu_uri = theme.vendors.pangu %} 5 | {% endif %} 6 | 7 | 8 | {% endif %} 9 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/pdf.swig: -------------------------------------------------------------------------------- 1 | {% if theme.pdf.enable %} 2 | 27 | {% endif %} 28 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/quicklink.swig: -------------------------------------------------------------------------------- 1 | {% if theme.quicklink.enable %} 2 | {% set quicklink_uri = url_for(theme.vendors._internal + '/quicklink/quicklink.umd.js') %} 3 | {% if theme.vendors.quicklink %} 4 | {% set quicklink_uri = theme.vendors.quicklink %} 5 | {% endif %} 6 | 7 | {% if is_home() %} 8 | {% if theme.quicklink.home %} 9 | {% set loadQL = true %} 10 | {% endif %} 11 | {% endif %} 12 | 13 | {% if is_archive() %} 14 | {% if theme.quicklink.archive %} 15 | {% set loadQL = true %} 16 | {% endif %} 17 | {% endif %} 18 | 19 | {% if loadQL or (page.quicklink or post.quicklink) %} 20 | 21 | 34 | {% endif %} 35 | {% endif %} 36 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/rating.swig: -------------------------------------------------------------------------------- 1 | {% if theme.rating.enable and (not is_home() and is_post()) %} 2 | 20 | {% endif %} 21 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/search/algolia-search.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 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/search/index.swig: -------------------------------------------------------------------------------- 1 | {% include 'localsearch.swig' %} 2 | {% include 'algolia-search.swig' %} 3 | -------------------------------------------------------------------------------- /themes/next/layout/_third-party/tidio.swig: -------------------------------------------------------------------------------- 1 | {% if theme.tidio.enable %} 2 | 3 | {% endif %} 4 | -------------------------------------------------------------------------------- /themes/next/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 }} | {{ 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 | -------------------------------------------------------------------------------- /themes/next/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 %}{{ title }}{% if theme.index_with_subtitle and subtitle %} – {{ 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 | -------------------------------------------------------------------------------- /themes/next/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 | {% block title %}{{ page.title }} | {{ title }}{% endblock %} 6 | 7 | {% block page_class %}page-post-detail{% endblock %} 8 | 9 | {% block content %} 10 | 11 |
12 | {{ post_template.render(page) }} 13 |
14 | 15 | {% endblock %} 16 | 17 | {% block sidebar %} 18 | {{ sidebar_template.render(true) }} 19 | {% endblock %} 20 | 21 | {% block script_extra %} 22 | {% include '_scripts/pages/post-details.swig' %} 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /themes/next/layout/schedule.swig: -------------------------------------------------------------------------------- 1 | {% block content %} 2 | {######################} 3 | {### SCHEDULE BLOCK ###} 4 | {######################} 5 |
6 |
7 |
    8 |
9 |
10 |
11 | {##########################} 12 | {### END SCHEDULE BLOCK ###} 13 | {##########################} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /themes/next/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 }} | {{ 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 | 34 | {% endblock %} 35 | 36 | {% block sidebar %} 37 | {{ sidebar_template.render(false) }} 38 | {% endblock %} 39 | -------------------------------------------------------------------------------- /themes/next/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hexo-theme-next", 3 | "version": "7.1.2", 4 | "description": "Elegant and powerful theme for Hexo", 5 | "main": "index.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "scripts": { 10 | "test": "gulp", 11 | "contributors:add": "all-contributors add", 12 | "contributors:generate": "all-contributors generate" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "git+https://github.com/theme-next/hexo-theme-next.git" 17 | }, 18 | "keywords": [ 19 | "hexo", 20 | "theme", 21 | "next" 22 | ], 23 | "author": "NexT (https://theme-next.org)", 24 | "license": "AGPL", 25 | "bugs": { 26 | "url": "https://github.com/theme-next/hexo-theme-next/issues" 27 | }, 28 | "homepage": "https://theme-next.org", 29 | "devDependencies": { 30 | "all-contributors-cli": "^5.4.0", 31 | "coffee-script": "^1.10.0", 32 | "gulp": "^3.9.0", 33 | "gulp-jshint": "^1.12.0", 34 | "gulp-shell": "^0.6.1", 35 | "js-yaml": "^3.8.1", 36 | "jshint-stylish": "^2.1.0", 37 | "stylint": "^1.5.9" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /themes/next/scripts/filters/exturl.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 3 | 'use strict'; 4 | 5 | hexo.extend.filter.register('after_post_render', function(data) { 6 | var theme = hexo.theme.config; 7 | // Exit if `exturl` option disable in NexT. 8 | if (!theme.exturl) return; 9 | 10 | var url = require('url'); 11 | var cheerio; 12 | 13 | var config = this.config; 14 | 15 | if (!cheerio) cheerio = require('cheerio'); 16 | 17 | var $ = cheerio.load(data.content, {decodeEntities: false}); 18 | var siteHost = url.parse(config.url).hostname || config.url; 19 | 20 | $('a').each(function() { 21 | var href = $(this).attr('href'); 22 | // Exit if the href attribute doesn't exists. 23 | if (!href) return; 24 | 25 | var data = url.parse(href); 26 | 27 | // Exit if the link doesn't have protocol, which means it's an internal link. 28 | if (!data.protocol) return; 29 | 30 | // Exit if the url has same host with `config.url`. 31 | if (data.hostname === siteHost) return; 32 | 33 | // If title atribute filled, set it as title; if not, set url as title. 34 | var title = $(this).attr('title') || href; 35 | 36 | var encoded = Buffer.from(href).toString('base64'); 37 | 38 | $(this).replaceWith(function() { 39 | return $(`${$(this).html()}`); 40 | }); 41 | 42 | }); 43 | 44 | data.content = $.html(); 45 | }, 0); 46 | -------------------------------------------------------------------------------- /themes/next/scripts/helpers/engine.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 3 | 'use strict'; 4 | 5 | hexo.extend.helper.register('hexo_env', function(type) { 6 | return this.env[type]; 7 | }); 8 | 9 | hexo.extend.helper.register('next_env', function(type) { 10 | var path = require('path'); 11 | var env = require(path.normalize('../../package.json')); 12 | return env[type]; 13 | }); 14 | 15 | hexo.extend.helper.register('item_active', function(path, className) { 16 | var canonical = this.page.canonical_path; 17 | var current = this.url_for(canonical).replace('index.html', '', 'g'); 18 | var result = ''; 19 | 20 | if (current.indexOf(path) !== -1) { 21 | if (path !== '/' || path === current) { 22 | result = ' ' + className; 23 | } 24 | } 25 | return result; 26 | }); 27 | -------------------------------------------------------------------------------- /themes/next/scripts/merge-configs.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 3 | 'use strict'; 4 | 5 | var merge = require('./merge'); 6 | 7 | hexo.on('generateBefore', function() { 8 | if (hexo.locals.get) { 9 | var data = hexo.locals.get('data'); 10 | 11 | /** 12 | * Merge configs from _data/next.yml into hexo.theme.config. 13 | * If `override`, configs in next.yml will rewrite configs in hexo.theme.config. 14 | * If next.yml not exists, merge all `theme_config.*` into hexo.theme.config. 15 | */ 16 | if (data && data.next) { 17 | if (data.next.override) { 18 | hexo.theme.config = data.next; 19 | } else { 20 | merge(hexo.config, data.next); 21 | merge(hexo.theme.config, data.next); 22 | } 23 | } else { 24 | merge(hexo.theme.config, hexo.config.theme_config); 25 | } 26 | 27 | // Custom languages support. Introduced in NexT v6.3.0. 28 | if (data && data.languages) { 29 | var lang = this.config.language; 30 | var i18n = this.theme.i18n; 31 | 32 | var mergeLang = function(lang) { 33 | i18n.set(lang, merge(i18n.get([lang]), data.languages[lang])); 34 | }; 35 | 36 | if (Array.isArray(lang)) { 37 | for (var i = 0; i < lang.length; i++) { 38 | mergeLang(lang[i]); 39 | } 40 | } else { 41 | mergeLang(lang); 42 | } 43 | } 44 | } 45 | }); 46 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/button.js: -------------------------------------------------------------------------------- 1 | /** 2 | * button.js | https://theme-next.org/docs/tag-plugins/button 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postButton(args) { 10 | args = args.join(' ').split(','); 11 | var url = args[0]; 12 | var text = args[1] || ''; 13 | var icon = args[2] || ''; 14 | var title = args[3] || ''; 15 | 16 | if (!url) { 17 | hexo.log.warn('URL can NOT be empty'); 18 | } 19 | 20 | text = text.trim(); 21 | icon = icon.trim(); 22 | title = title.trim(); 23 | 24 | var result = [` 0 && result.push(` title="${title}"`); 26 | result.push('>'); 27 | icon.length > 0 && result.push(``); 28 | text.length > 0 && result.push(text); 29 | result.push(''); 30 | 31 | return result.join(''); 32 | } 33 | 34 | hexo.extend.tag.register('button', postButton, {ends: false}); 35 | hexo.extend.tag.register('btn', postButton, {ends: false}); 36 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/center-quote.js: -------------------------------------------------------------------------------- 1 | /** 2 | * center-quote.js | https://theme-next.org/docs/tag-plugins/ 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function centerQuote(args, content) { 10 | return '
' 11 | + hexo.render.renderSync({text: content, engine: 'markdown'}) 12 | + '
'; 13 | } 14 | 15 | hexo.extend.tag.register('centerquote', centerQuote, {ends: true}); 16 | hexo.extend.tag.register('cq', centerQuote, {ends: true}); 17 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/full-image.js: -------------------------------------------------------------------------------- 1 | /** 2 | * full-image.js | https://theme-next.org/docs/tag-plugins/full-image 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function fullImage(args) { 10 | args = args.join(' ').split(','); 11 | var mixed = args[0].split('@'); 12 | var img = mixed[0]; 13 | var src = mixed[1] === 'lazy' ? '/images/loading.gif" data-original="' + img : img; 14 | var alt = args[1] || ''; 15 | var title = args[2] || ''; 16 | var width = args[3] || ''; 17 | 18 | if (!img) { 19 | hexo.log.warn('Image src can NOT be empty'); 20 | } 21 | 22 | var image = [` 0 && image.push(`alt="${alt.trim()}"`); 24 | title.length > 0 && image.push(`title="${title.trim()}"`); 25 | width.length > 0 && image.push(`style="max-width: none; width:${width};"`); 26 | image.push('/>'); 27 | 28 | return image.join(' '); 29 | } 30 | 31 | hexo.extend.tag.register('fullimage', fullImage, {ends: false}); 32 | hexo.extend.tag.register('fi', fullImage, {ends: false}); 33 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/include-raw.js: -------------------------------------------------------------------------------- 1 | /** 2 | * include-raw.js | https://theme-next.org/docs/tag-plugins/ 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | var pathFn = require('path'); 10 | var fs = require('hexo-fs'); 11 | 12 | function includeRaw(args) { 13 | var path = pathFn.join(hexo.source_dir, args[0]); 14 | 15 | return fs.exists(path).then(function(exist) { 16 | if (!exist) { 17 | hexo.log.error('Include file not found!'); 18 | return; 19 | } 20 | return fs.readFile(path).then(function(contents) { 21 | if (!contents) { 22 | hexo.log.warn('Include file empty.'); 23 | return; 24 | } 25 | return contents; 26 | }); 27 | }); 28 | } 29 | 30 | hexo.extend.tag.register('include_raw', includeRaw, {ends: false, async: true}); 31 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/label.js: -------------------------------------------------------------------------------- 1 | /** 2 | * label.js | https://theme-next.org/docs/tag-plugins/label 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postLabel(args) { 10 | args = args.join(' ').split('@'); 11 | var classes = args[0] || 'default'; 12 | var text = args[1] || ''; 13 | 14 | !text && hexo.log.warn('Label text must be defined!'); 15 | 16 | return `${text}`; 17 | } 18 | 19 | hexo.extend.tag.register('label', postLabel, {ends: false}); 20 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/mermaid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * mermaid.js | https://theme-next.org/docs/tag-plugins/mermaid 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function mermaid(args, content) { 10 | return `
11 |             ${args.join(' ')}
12 |             ${content}
13 |           
`; 14 | } 15 | 16 | hexo.extend.tag.register('mermaid', mermaid, {ends: true}); 17 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/note.js: -------------------------------------------------------------------------------- 1 | /** 2 | * note.js | https://theme-next.org/docs/tag-plugins/note 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postNote(args, content) { 10 | return `
11 | ${hexo.render.renderSync({text: content, engine: 'markdown'}).split('\n').join('')} 12 |
`; 13 | } 14 | 15 | hexo.extend.tag.register('note', postNote, {ends: true}); 16 | hexo.extend.tag.register('subnote', postNote, {ends: true}); 17 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/pdf.js: -------------------------------------------------------------------------------- 1 | /** 2 | * pdf.js | https://theme-next.org/docs/tag-plugins/pdf 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function pdf(args) { 10 | return `
`; 11 | } 12 | 13 | hexo.extend.tag.register('pdf', pdf, {ends: false}); 14 | -------------------------------------------------------------------------------- /themes/next/scripts/tags/video.js: -------------------------------------------------------------------------------- 1 | /** 2 | * video.js | https://theme-next.org/docs/tag-plugins/video 3 | */ 4 | 5 | /* global hexo */ 6 | 7 | 'use strict'; 8 | 9 | function postVideo(args) { 10 | return ``; 11 | } 12 | 13 | hexo.extend.tag.register('video', postVideo, {ends: false}); 14 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/back-to-top-sidebar.styl: -------------------------------------------------------------------------------- 1 | .back-to-top { 2 | visibility: hidden; 3 | margin: (20px - $sidebar-offset) -10px -20px; 4 | background: $b2t-sidebar-bg-color; 5 | font-size: $b2t-font-size; 6 | opacity: $b2t-opacity; 7 | cursor: pointer; 8 | text-align: center; 9 | &:hover { opacity: $b2t-opacity-hover; } 10 | 11 | +tablet-mobile() { 12 | hide() if not hexo-config('sidebar.onmobile'); 13 | } 14 | 15 | &.back-to-top-on { 16 | visibility: visible; 17 | the-transition(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /themes/next/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('back2top.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 | transition-property: bottom; 16 | the-transition(); 17 | 18 | &.back-to-top-on { 19 | bottom: $b2t-position-bottom-on; 20 | } 21 | +tablet-mobile() { 22 | opacity: $b2t-opacity-hover; 23 | right: $b2t-position-right-mobile; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /themes/next/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 | show(); 32 | width: 22px; 33 | height: 2px; 34 | background: $text-color; 35 | border-radius: 1px; 36 | 37 | &+.btn-bar { margin-top: 4px; } 38 | } 39 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/comments.styl: -------------------------------------------------------------------------------- 1 | .comments { margin: 60px 20px 0; } 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/components.styl: -------------------------------------------------------------------------------- 1 | @import "highlight"; 2 | @import "tags"; 3 | 4 | @import "buttons"; 5 | @import "pagination"; 6 | @import "comments"; 7 | @import (hexo-config('back2top.sidebar') ? "back-to-top-sidebar" : "back-to-top") if (hexo-config('back2top.enable')); 8 | 9 | @import "header"; 10 | @import "post"; 11 | @import "sidebar"; 12 | @import "footer"; 13 | @import "third-party"; 14 | 15 | @import "pages"; 16 | 17 | @import "rainbow" if hexo-config('safari_rainbow'); 18 | @import "scrollbar" if hexo-config('custom_scrollbar'); 19 | -------------------------------------------------------------------------------- /themes/next/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 | @keyframes iconAnimate { 11 | 0%, 100% { transform: scale(1); } 12 | 10%, 30% { transform: scale(0.9); } 13 | 20%, 40%, 60%, 80% { transform: scale(1.1); } 14 | 50%, 70% { transform: scale(1.1); } 15 | } 16 | 17 | if hexo-config('footer.icon.animated') { 18 | #animate { 19 | animation: iconAnimate 1.33s ease-in-out infinite; 20 | } 21 | } 22 | 23 | .with-love { 24 | display: inline-block; 25 | margin: 0 5px; 26 | color: unquote(hexo-config('footer.icon.color')); 27 | } 28 | 29 | .powered-by, 30 | .theme-info { display: inline-block; } 31 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/github-banner.styl: -------------------------------------------------------------------------------- 1 | @keyframes octocat-wave { 2 | 0%, 100% { 3 | transform: rotate(0); 4 | } 5 | 20%, 60% { 6 | transform: rotate(-25deg); 7 | } 8 | 40%, 80% { 9 | transform: rotate(10deg); 10 | } 11 | } 12 | 13 | .github-corner { 14 | scheme = hexo-config('scheme'); 15 | bg_color = unquote(hexo-config('android_chrome_color')); 16 | mobile_layout_economy = hexo-config('mobile_layout_economy'); 17 | 18 | :hover .octo-arm { 19 | animation: octocat-wave 560ms ease-in-out; 20 | } 21 | > svg { 22 | fill: bg_color; 23 | color: #fff; 24 | position: absolute; 25 | top: 0; 26 | border: 0; 27 | right: 0; 28 | } 29 | +tablet-mobile() { 30 | > svg { 31 | if (scheme == 'Pisces') || (scheme == 'Gemini') { 32 | fill: #fff; 33 | color: bg_color; 34 | } 35 | } 36 | .github-corner:hover .octo-arm { 37 | animation: none; 38 | } 39 | .github-corner .octo-arm { 40 | animation: octocat-wave 560ms ease-in-out; 41 | } 42 | } 43 | +mobile() { 44 | > svg { 45 | if (scheme == 'Mist') { 46 | top: inherit; 47 | if mobile_layout_economy { 48 | +mobile-small() { 49 | margin-top: initial; 50 | } 51 | } 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/header.styl: -------------------------------------------------------------------------------- 1 | .header { background: $head-bg; } 2 | 3 | .header-inner { position: relative; } 4 | 5 | @import "headerband"; 6 | @import "site-meta"; 7 | @import "site-nav"; 8 | @import "menu"; 9 | @import "github-banner" if hexo-config('github_banner.enable'); 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/headerband.styl: -------------------------------------------------------------------------------- 1 | .headband { 2 | height: $headband-height; 3 | background: $headband-bg; 4 | } 5 | -------------------------------------------------------------------------------- /themes/next/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 | +mobile() { 15 | margin-top: 10px; 16 | } 17 | 18 | a, span.exturl { 19 | show(); 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 | -------------------------------------------------------------------------------- /themes/next/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, .custom-logo-image { 44 | opacity: 0; 45 | position: relative; 46 | top: -10px; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/header/site-nav.styl: -------------------------------------------------------------------------------- 1 | .site-nav-toggle { 2 | hide(); 3 | position: absolute; 4 | top: 10px; 5 | left: 10px; 6 | +mobile() { 7 | show(); 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 | hide(); 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 | -------------------------------------------------------------------------------- /themes/next/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 = #800000 8 | $highlight-addition = #008000 9 | -------------------------------------------------------------------------------- /themes/next/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 | .fa-external-link { 31 | font-size: 15px; 32 | margin-left: 5px; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/breadcrumb.styl: -------------------------------------------------------------------------------- 1 | ul.breadcrumb { 2 | list-style: none; 3 | margin: 1em 0; 4 | padding: 0 2em; 5 | text-align: center; 6 | font-size: $font-size-small 7 | 8 | & li { 9 | display: inline; 10 | } 11 | 12 | & li+li:before { 13 | padding: 0.5em; 14 | font-weight: normal; 15 | content: "/\00a0"; 16 | } 17 | 18 | & li+li:last-child { 19 | font-weight: bold; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/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 | @import "breadcrumb"; 8 | @import "tag-cloud"; 9 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/pages/tag-cloud.styl: -------------------------------------------------------------------------------- 1 | .tag-cloud { 2 | text-align: center; 3 | 4 | a { 5 | display: inline-block; 6 | margin: 10px; 7 | } 8 | 9 | a:hover { 10 | color: $link-hover-color !important; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /themes/next/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 | +mobile() { 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 | } 58 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-button.styl: -------------------------------------------------------------------------------- 1 | .post-button { 2 | margin-top: 40px; 3 | } 4 | -------------------------------------------------------------------------------- /themes/next/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 | i.fa { 9 | font-size: 15px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-eof.styl: -------------------------------------------------------------------------------- 1 | .posts-expand { 2 | .post-eof { 3 | margin: $post-eof-margin-top auto $post-eof-margin-bottom; 4 | width: 8%; 5 | height: 1px; 6 | background: $grey-light; 7 | text-align: center; 8 | } 9 | } 10 | 11 | .post:last-child { 12 | .post-eof { 13 | hide(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-expand.styl: -------------------------------------------------------------------------------- 1 | // TODO: Refactor. 2 | 3 | .posts-expand { 4 | padding-top: 40px; 5 | } 6 | 7 | +mobile() { 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() { 32 | text-align: unquote(hexo-config('text_align.desktop')); 33 | } 34 | +tablet-mobile() { 35 | text-align: unquote(hexo-config('text_align.mobile')); 36 | } 37 | 38 | h2, h3, h4, h5, h6 { 39 | padding-top: 10px; 40 | 41 | .header-anchor { 42 | float: right; 43 | margin-left: 10px; 44 | color: $grey-light; 45 | border-bottom-style: none; 46 | visibility: hidden; 47 | 48 | &:hover { 49 | color: inherit; 50 | } 51 | } 52 | 53 | &:hover .header-anchor { 54 | visibility: visible; 55 | } 56 | } 57 | 58 | img { 59 | box-sizing: border-box; 60 | margin: 0 auto 25px; 61 | padding: 3px; 62 | border: 1px solid $gray-lighter; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /themes/next/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 { 9 | display: table-row; 10 | } 11 | 12 | .post-gallery .post-gallery-img { 13 | display: table-cell; 14 | text-align: center; 15 | vertical-align: middle; 16 | border: none; 17 | 18 | img { 19 | max-width: 100%; 20 | max-height: 100%; 21 | border: none; 22 | } 23 | } 24 | 25 | .fancybox-close, .fancybox-close:hover { 26 | border: none; 27 | } 28 | -------------------------------------------------------------------------------- /themes/next/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 | time { 21 | border-bottom: 1px dashed $grey-dark; 22 | cursor: help; 23 | } 24 | } 25 | 26 | .post-symbolscount { 27 | if !hexo-config('symbols_count_time.separated_meta') { display: inline-block; } 28 | } 29 | 30 | .post-meta-divider { 31 | margin: 0 .5em; 32 | } 33 | 34 | .post-meta-item-icon { 35 | margin-right: 3px; 36 | +tablet() { 37 | display: inline-block; 38 | } 39 | +mobile() { 40 | display: inline-block; 41 | } 42 | } 43 | 44 | .post-meta-item-text { 45 | +tablet() { 46 | hide(); 47 | } 48 | +mobile() { 49 | hide(); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /themes/next/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 | show(); 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 | font-size: 12px; 37 | margin-right: 5px; 38 | } 39 | } 40 | 41 | .post-nav-next { 42 | a { padding-left: 5px; } 43 | } 44 | 45 | .post-nav-prev { 46 | text-align: right; 47 | 48 | a { padding-right: 5px; } 49 | 50 | .fa { margin-left: 5px; } 51 | } 52 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-reading_progress.styl: -------------------------------------------------------------------------------- 1 | .reading-progress-bar { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | z-index: 9999; 6 | show(); 7 | width: 0; 8 | height: unquote(hexo-config('reading_progress.height')); 9 | background: unquote(hexo-config('reading_progress.color')); 10 | } 11 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-reward.styl: -------------------------------------------------------------------------------- 1 | #reward-container { 2 | padding: 10px 0; 3 | margin: 20px auto; 4 | width: 90%; 5 | text-align: center; 6 | } 7 | 8 | #reward-button { 9 | cursor: pointer; 10 | border: 0; 11 | outline: 0; 12 | display: inline-block; 13 | vertical-align: text-top; 14 | margin: 0; 15 | padding: 0 15px; 16 | border-radius: 5px; 17 | height: $font-size-large * 2; 18 | line-height: $font-size-large * 2; 19 | font-size: $font-size-large; 20 | color: #fff; 21 | background: #F44336; 22 | letter-spacing: normal; 23 | text-transform: none; 24 | text-indent: 0px; 25 | text-shadow: none; 26 | } 27 | 28 | #reward-button span:hover { 29 | background: #F7877F; 30 | } 31 | 32 | #qr { 33 | padding-top: 20px; 34 | 35 | a { 36 | border: 0; 37 | } 38 | 39 | img { 40 | width: 180px; 41 | max-width: 100%; 42 | display: inline-block; 43 | margin: 0.8em 2em 0 2em; 44 | } 45 | 46 | p { 47 | text-align: center; 48 | } 49 | 50 | if hexo-config('reward_settings.animation') { 51 | & > div:hover p { 52 | animation: roll 0.1s infinite linear; 53 | } 54 | 55 | @keyframes roll { 56 | from { 57 | transform: rotateZ(30deg); 58 | } 59 | to { 60 | transform: rotateZ(-30deg); 61 | } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/post/post-title.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-title { 2 | word-wrap(); 3 | text-align: center; 4 | font-weight: $posts-expand-title-font-weight; 5 | 6 | if hexo-config('post_edit.enable') { 7 | .post-edit-link { 8 | color: #bbb; 9 | display: inline-block; 10 | float: right; 11 | border-bottom: none; 12 | the-transition-ease-in(); 13 | margin-left: -1.2em; 14 | +mobile-small() { 15 | margin-left: initial; 16 | } 17 | &:hover { 18 | color: black; 19 | } 20 | } 21 | } 22 | } 23 | 24 | .posts-expand .post-title-link { 25 | display: inline-block; 26 | position: relative; 27 | color: $black-light; 28 | border-bottom: none; 29 | line-height: 1.2; 30 | vertical-align: top; 31 | 32 | &::before { 33 | content: ""; 34 | position: absolute; 35 | width: 100%; 36 | height: 2px; 37 | bottom: 0; 38 | left: 0; 39 | background-color: #000; 40 | visibility: hidden; 41 | transform: scaleX(0); 42 | the-transition(); 43 | } 44 | 45 | &:hover::before { 46 | visibility: visible; 47 | transform: scaleX(1); 48 | } 49 | 50 | .fa { 51 | font-size: 20px; 52 | margin-left: 5px; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /themes/next/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 | hide(); 8 | } 9 | 10 | blockquote { 11 | @extend .blockquote-center 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /themes/next/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: 25px; 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 | 43 | .bdsharebuttonbox { 44 | margin-top: 10px; 45 | display: flex; 46 | justify-content: center; 47 | a { border: none; } 48 | } 49 | 50 | .bdshare-slide-button-box a { border: none; } 51 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/rainbow.styl: -------------------------------------------------------------------------------- 1 | body { 2 | overscroll-behavior: none; 3 | } 4 | @media screen and (-webkit-min-device-pixel-ratio: 0) { 5 | body:before { 6 | right: 0; 7 | top: 0; 8 | left: 0; 9 | height: 100px; 10 | z-index: 2147483647; 11 | position: fixed; 12 | content: ""; 13 | show(); 14 | transform: translateY(-99.99px); 15 | background: linear-gradient(124deg, 16 | #FF0000, 17 | #FF7F00, 18 | #FFFF00, 19 | #7FFF00, 20 | #00FF00, 21 | #00FF7F, 22 | #00FFFF, 23 | #007FFF, 24 | #0000FF, 25 | #7F00FF, 26 | #FF00FF, 27 | #FF007F, 28 | #FF0000); 29 | animation: rainbow 15s ease infinite; 30 | background-size: 1000% 1000%; 31 | } 32 | } 33 | @keyframes rainbow { 34 | 0% { 35 | background-position: 0% 80%; 36 | } 37 | 50% { 38 | background-position: 100% 20%; 39 | } 40 | 100% { 41 | background-position: 0% 80%; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/scrollbar.styl: -------------------------------------------------------------------------------- 1 | // scrollbar 2 | ::-webkit-scrollbar { 3 | width: 8px; 4 | height: 8px; 5 | } 6 | 7 | // track 8 | ::-webkit-scrollbar-track { 9 | 10 | } 11 | 12 | // Handle style 13 | ::-webkit-scrollbar-thumb { 14 | border-radius: 10px; 15 | background: rgba(0, 0, 0, 0.2); 16 | } 17 | 18 | // inactive style 19 | ::-webkit-scrollbar-thumb:window-inactive { 20 | background: rgba(0, 0, 0, 0.1); 21 | } 22 | 23 | // hover style 24 | ::-webkit-scrollbar-thumb:hover{ 25 | background-color: rgba(0, 0, 0, 0.3); 26 | } 27 | 28 | // active style 29 | ::-webkit-scrollbar-thumb:active{ 30 | background-color: rgba(0, 0, 0, 0.4); 31 | } 32 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-author-links.styl: -------------------------------------------------------------------------------- 1 | .links-of-author { 2 | margin-top: 20px; 3 | 4 | a, span.exturl { 5 | display: inline-block; 6 | vertical-align: middle; 7 | margin-right: 10px; 8 | margin-bottom: 10px; 9 | border-bottom-color: $black-light; 10 | font-size: 13px; 11 | if hexo-config('social_icons.transition') { the-transition(); } 12 | 13 | &:before { 14 | display: inline-block; 15 | vertical-align: middle; 16 | margin-right: 3px; 17 | content: " "; 18 | width: 4px; 19 | height: 4px; 20 | circle(); 21 | background: rgb(random-color(0, 255) - 50%, random-color(0, 255) - 50%, random-color(0, 255) - 50%); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-author.styl: -------------------------------------------------------------------------------- 1 | .site-author-image { 2 | show(); 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 | opacity: hexo-config('avatar.opacity') is a 'unit' ? hexo-config('avatar.opacity') : 1; 9 | } 10 | 11 | if hexo-config('avatar.rounded') { 12 | .site-author-image { 13 | border-radius: 100%; 14 | } 15 | } 16 | 17 | if hexo-config('avatar.rotated') { 18 | .site-author-image { 19 | transition: transform 1.0s ease-out; 20 | } 21 | 22 | .site-author-image:hover { 23 | transform: rotateZ(360deg); 24 | } 25 | } 26 | 27 | .site-author-name { 28 | margin: $site-author-name-margin; 29 | text-align: $site-author-name-align; 30 | color: $site-author-name-color; 31 | font-weight: $site-author-name-weight; 32 | } 33 | 34 | .site-description { 35 | margin-top: $site-description-margin-top; 36 | text-align: $site-description-align; 37 | font-size: $site-description-font-size; 38 | color: $site-description-color; 39 | } 40 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll { 2 | margin-top: 10px; 3 | font-size: 13px; 4 | } 5 | 6 | .links-of-blogroll-title { 7 | margin-top: 0; 8 | font-size: 14px; 9 | font-weight: $font-weight-bold; 10 | } 11 | .links-of-blogroll-list { 12 | margin: 0; 13 | padding: 0; 14 | list-style: none; 15 | } 16 | 17 | .links-of-blogroll-item { 18 | padding: 2px 10px; 19 | 20 | a, span.exturl { 21 | max-width: 280px; 22 | box-sizing: border-box; 23 | display: inline-block; 24 | overflow: hidden; 25 | white-space: nowrap; 26 | text-overflow: ellipsis; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-button.styl: -------------------------------------------------------------------------------- 1 | .feed-link, .chat { 2 | margin-top: 10px; 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) !important; 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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-dimmer.styl: -------------------------------------------------------------------------------- 1 | .sidebar-active + #sidebar-dimmer { 2 | +mobile() { 3 | opacity: .7; 4 | transition: opacity .5s; 5 | } 6 | transform: translateX(-100%); 7 | } 8 | 9 | #sidebar-dimmer { 10 | show(); 11 | position: fixed; 12 | top: 0; 13 | left: 100%; 14 | width: 100%; 15 | height: 100%; 16 | background: #000; 17 | opacity: 0; 18 | } 19 | -------------------------------------------------------------------------------- /themes/next/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 | 8 | .sidebar-nav li { 9 | display: inline-block; 10 | cursor: pointer; 11 | border-bottom: 1px solid transparent; 12 | font-size: 14px; 13 | color: $sidebar-nav-color; 14 | 15 | &:hover { color: $sidebar-nav-hover-color; } 16 | } 17 | 18 | .page-post-detail .sidebar-nav-toc { padding: 0 5px; } 19 | 20 | .page-post-detail .sidebar-nav-overview { margin-left: 10px; } 21 | 22 | .sidebar-nav .sidebar-nav-active { 23 | color: $sidebar-highlight; 24 | border-bottom-color: $sidebar-highlight; 25 | 26 | &:hover { color: $sidebar-highlight; } 27 | } 28 | 29 | .sidebar-panel { display: none; } 30 | .sidebar-panel-active { display: block; } 31 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/sidebar-toc.styl: -------------------------------------------------------------------------------- 1 | .post-toc-empty { 2 | font-size: 14px; 3 | color: $grey-dim; 4 | } 5 | 6 | .post-toc-wrap { overflow: hidden; } 7 | 8 | .post-toc { overflow: auto; } 9 | 10 | .post-toc ol { 11 | margin: 0; 12 | padding: 0 2px 5px 10px; 13 | text-align: left; 14 | list-style: none; 15 | font-size: 14px; 16 | 17 | & > ol { padding-left: 0; } 18 | 19 | a { 20 | the-transition(); 21 | transition-property: all; 22 | color: $toc-link-color; 23 | border-bottom-color: $toc-link-border-color; 24 | 25 | &:hover { 26 | color: $toc-link-hover-color; 27 | border-bottom-color: $toc-link-hover-border-color; 28 | } 29 | } 30 | } 31 | 32 | .post-toc .nav-item { 33 | overflow: hidden; 34 | text-overflow: ellipsis; 35 | //text-align: justify; 36 | white-space: nowrap if !hexo-config('toc.wrap'); 37 | line-height: 1.8; 38 | } 39 | 40 | .post-toc .nav .nav-child { 41 | display: hexo-config('toc.expand_all') ? block : none; 42 | } 43 | 44 | .post-toc .nav .active > .nav-child { display: block; } 45 | 46 | .post-toc .nav .active-current > .nav-child { 47 | show(); 48 | & > .nav-item { display: block; } 49 | } 50 | 51 | .post-toc .nav .active > a { 52 | color: $toc-link-active-color; 53 | border-bottom-color: $toc-link-active-border-color; 54 | } 55 | 56 | .post-toc .nav .active-current > a { 57 | color: $toc-link-active-current-color; 58 | &:hover { 59 | color: $toc-link-active-current-border-color; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /themes/next/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 | 13 | +tablet-mobile() { 14 | opacity: $b2t-opacity-hover; 15 | right: $b2t-position-right-mobile; 16 | hide() if not hexo-config('sidebar.onmobile'); 17 | } 18 | } 19 | 20 | .sidebar-toggle-line { 21 | position: relative; 22 | display: inline-block; 23 | vertical-align: top; 24 | height: 2px; 25 | width: 100%; 26 | background: white; 27 | margin-top: 3px; 28 | 29 | &:first-child { margin-top: 0; } 30 | } 31 | -------------------------------------------------------------------------------- /themes/next/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 | 12 | a, span.exturl { 13 | color: $grey-dark; 14 | border-bottom-color: $black-light; 15 | &:hover { 16 | color: $gainsboro; 17 | border-bottom-color: $gainsboro; 18 | } 19 | } 20 | 21 | +tablet-mobile() { 22 | hide() if not hexo-config('sidebar.onmobile'); 23 | } 24 | } 25 | 26 | .sidebar-inner { 27 | position: relative; 28 | padding: 20px 10px; 29 | color: $grey-dark; 30 | text-align: center; 31 | } 32 | 33 | .site-overview-wrap { 34 | overflow: hidden; 35 | } 36 | 37 | .site-overview { 38 | overflow-y: auto; 39 | overflow-x: hidden; 40 | } 41 | 42 | .cc-license { 43 | margin-top: 10px; 44 | text-align: center; 45 | 46 | .cc-opacity { 47 | opacity: 0.7; 48 | border-bottom: none; 49 | 50 | &:hover { opacity: 0.9; } 51 | } 52 | 53 | img { display: inline-block; } 54 | } 55 | 56 | @import "sidebar-toggle"; 57 | @import "sidebar-author"; 58 | @import "sidebar-author-links"; 59 | @import "sidebar-button"; 60 | @import "sidebar-blogroll"; 61 | @import "sidebar-nav"; 62 | @import "site-state" if hexo-config('site_state'); 63 | @import "sidebar-toc" if hexo-config('toc.enable'); 64 | @import "sidebar-dimmer" if hexo-config('sidebar.dimmer'); 65 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/sidebar/site-state.styl: -------------------------------------------------------------------------------- 1 | .site-state { 2 | display: flex; 3 | justify-content: center; 4 | overflow: hidden; 5 | line-height: 1.4; 6 | white-space: nowrap; 7 | text-align: $site-state-align; 8 | margin-top: 10px; 9 | } 10 | 11 | .site-state-item { 12 | padding: 0 15px; 13 | border-left: 1px solid $site-state-item-border-color; 14 | 15 | &:first-child { border-left: none; } 16 | 17 | a { border-bottom: none; } 18 | } 19 | 20 | .site-state-item-count { 21 | show(); 22 | text-align: center; 23 | color: $site-state-item-count-color; 24 | font-weight: $font-weight-bold; 25 | font-size: $site-state-item-count-font-size; 26 | } 27 | 28 | .site-state-item-name { 29 | font-size: $site-state-item-name-font-size; 30 | color: $site-state-item-name-color; 31 | } 32 | -------------------------------------------------------------------------------- /themes/next/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 | show(); 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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/full-image.styl: -------------------------------------------------------------------------------- 1 | .posts-expand .post-body img.full-image { 2 | border: none; 3 | //max-width: 100%; 4 | //width: auto; 5 | //margin: 20px auto 25px; 6 | } 7 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/label.styl: -------------------------------------------------------------------------------- 1 | .post-body .label { 2 | display: inline; 3 | padding: 0 2px; 4 | 5 | &.default { background-color: $label-default; } 6 | &.primary { background-color: $label-primary; } 7 | &.info { background-color: $label-info; } 8 | &.success { background-color: $label-success; } 9 | &.warning { background-color: $label-warning; } 10 | &.danger { background-color: $label-danger; } 11 | } 12 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/pdf.styl: -------------------------------------------------------------------------------- 1 | .pdfobject-container { 2 | position: relative; 3 | overflow: auto; 4 | width: 100%; 5 | height: unquote(hexo-config('pdf.height')); 6 | } 7 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/tags/tags.styl: -------------------------------------------------------------------------------- 1 | @import "full-image"; 2 | @import "blockquote-center"; 3 | @import "group-pictures"; 4 | @import "label"; 5 | @import "note" if not hexo-config('note.style') == 'disabled'; 6 | @import "tabs" if hexo-config('tabs.enable'); 7 | @import "pdf" if hexo-config('pdf.enable'); 8 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/copy-code.styl: -------------------------------------------------------------------------------- 1 | .copy-btn { 2 | display: inline-block; 3 | padding: 6px 12px; 4 | font-size: 13px; 5 | font-weight: 700; 6 | line-height: 20px; 7 | color: #333; 8 | white-space: nowrap; 9 | vertical-align: middle; 10 | cursor: pointer; 11 | if hexo-config('codeblock.copy_button.style') == 'flat' { 12 | background-color: #fff; 13 | border: none; 14 | } 15 | else { 16 | background-color: #eee; 17 | background-image: linear-gradient(#fcfcfc, #eee); 18 | border: 1px solid #d5d5d5; 19 | border-radius: 3px; 20 | } 21 | user-select: none; 22 | outline: 0; 23 | } 24 | 25 | .highlight-wrap .copy-btn { 26 | transition: opacity .3s ease-in-out; 27 | opacity: 0; 28 | padding: 2px 6px; 29 | position: absolute; 30 | if hexo-config('codeblock.copy_button.style') == 'flat' { 31 | right: 0px; 32 | height: 42px; 33 | } 34 | else { 35 | right: 4px; 36 | top: 8px; 37 | } 38 | } 39 | 40 | .highlight-wrap:hover .copy-btn, 41 | .highlight-wrap .copy-btn:focus { 42 | opacity: 1; 43 | } 44 | 45 | .highlight-wrap { 46 | position: relative; 47 | } 48 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/gitalk.styl: -------------------------------------------------------------------------------- 1 | .gt-header a, .gt-comments a, .gt-popup a 2 | border-bottom: none; 3 | .gt-container .gt-popup .gt-action.is--active:before 4 | top: 0.7em; -------------------------------------------------------------------------------- /themes/next/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 | 11 | #gitment-display-button:hover { 12 | color: #fff; 13 | background: #0a9caf; 14 | } 15 | 16 | #gitment-container a { 17 | border-bottom: none; 18 | } 19 | 20 | if hexo-config('gitment.cleanly') { 21 | a.gitment-editor-footer-tip, .gitment-container.gitment-footer-container { 22 | hide(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/han.styl: -------------------------------------------------------------------------------- 1 | i.fa { 2 | font-family: FontAwesome !important; 3 | } 4 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/math.styl: -------------------------------------------------------------------------------- 1 | .has-jax { 2 | overflow-x: auto; 3 | overflow-y: hidden; 4 | } 5 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/related-posts.styl: -------------------------------------------------------------------------------- 1 | .popular-posts-header { 2 | margin-top: $post-eof-margin-bottom; 3 | margin-bottom: 10px; 4 | font-size: $font-size-headings-base; 5 | border-bottom: 1px solid $gainsboro; 6 | show(); 7 | } 8 | 9 | ul.popular-posts { 10 | padding: 0; 11 | 12 | .popular-posts-item { 13 | // list-style: none; 14 | margin-left: 2em; 15 | .popular-posts-title { 16 | font-weight: normal; 17 | font-size: $font-size-base; 18 | margin: 0; 19 | line-height: $line-height-base * 1.2; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/components/third-party/third-party.styl: -------------------------------------------------------------------------------- 1 | @import "gitment" if hexo-config('gitment.enable'); 2 | @import "gitalk" if hexo-config('gitalk.enable'); 3 | @import "han" if hexo-config('han'); 4 | @import "localsearch"; 5 | @import "algolia-search" if hexo-config('algolia_search.enable'); 6 | @import "needsharebutton" if hexo-config('needmoreshare2.enable'); 7 | @import "related-posts" if hexo-config('related_posts.enable'); 8 | @import "copy-code" if hexo-config('codeblock.copy_button.enable'); 9 | @import "math" if hexo-config('math.enable') and hexo-config('math.engine') == 'mathjax'; 10 | -------------------------------------------------------------------------------- /themes/next/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 | } 13 | 14 | 15 | // Header Section 16 | // -------------------------------------------------- 17 | .header-inner { 18 | margin: 0 auto; 19 | padding: 100px 0 70px; 20 | width: $content-desktop; 21 | 22 | +desktop-large() { 23 | .container & { width: $content-desktop-large; } 24 | } 25 | +desktop-largest() { 26 | .container & { width: $content-desktop-largest; } 27 | } 28 | } 29 | 30 | 31 | // Main Section 32 | // -------------------------------------------------- 33 | .main-inner { 34 | margin: 0 auto; 35 | width: $content-desktop; 36 | 37 | +desktop-large() { 38 | .container & { width: $content-desktop-large; } 39 | } 40 | +desktop-largest() { 41 | .container & { width: $content-desktop-largest; } 42 | } 43 | } 44 | 45 | 46 | // Footer Section 47 | // -------------------------------------------------- 48 | .footer { 49 | padding: 20px 0; 50 | } 51 | .footer-inner { 52 | box-sizing: border-box; 53 | margin: 0px auto; 54 | width: $content-desktop; 55 | 56 | +desktop-large() { 57 | .container & { width: $content-desktop-large; } 58 | } 59 | +desktop-largest() { 60 | .container & { width: $content-desktop-largest; } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/scaffolding/helpers.styl: -------------------------------------------------------------------------------- 1 | // 2 | // Helpers 3 | // ================================================= 4 | 5 | 6 | // Alignment 7 | .text-left { text-align: left; } 8 | .text-center { text-align: center; } 9 | .text-right { text-align: right; } 10 | .text-justify { text-align: justify; } 11 | .text-nowrap { white-space: nowrap; } 12 | 13 | 14 | // Transformation 15 | .text-lowercase { text-transform: lowercase; } 16 | .text-uppercase { text-transform: uppercase; } 17 | .text-capitalize { text-transform: capitalize; } 18 | 19 | 20 | // Center-align a block level element. 21 | .center-block { 22 | show(); 23 | margin-left: auto; 24 | margin-right: auto; 25 | } 26 | 27 | 28 | // Clearfix. http://nicolasgallagher.com/micro-clearfix-hack/ 29 | .clearfix { 30 | clearfix(); 31 | } 32 | 33 | .pullquote { 34 | width: 45%; 35 | 36 | &.left { 37 | float: left; 38 | margin-left: 5px; 39 | margin-right: 10px; 40 | } 41 | 42 | &.right { 43 | float: right; 44 | margin-left: 10px; 45 | margin-right: 5px; 46 | } 47 | } 48 | 49 | .affix { 50 | position: fixed; 51 | } 52 | 53 | .translation { 54 | margin-top: -20px; 55 | font-size: 14px; 56 | color: $grey-dark; 57 | } 58 | 59 | // https://davidwalsh.name/detect-scrollbar-width 60 | .scrollbar-measure { 61 | width: 100px; 62 | height: 100px; 63 | overflow: scroll; 64 | position: absolute; 65 | top: -9999px; 66 | } 67 | 68 | .use-motion .motion-element { opacity: 0; } 69 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_common/scaffolding/tables.styl: -------------------------------------------------------------------------------- 1 | .table-container { 2 | margin: 20px 0; 3 | overflow: auto; 4 | -webkit-overflow-scrolling: touch; 5 | } 6 | 7 | .highlight .table-container { 8 | margin: 0px; 9 | } 10 | 11 | table { 12 | width: $table-width; 13 | border-collapse: collapse; 14 | border-spacing: 0; 15 | font-size: $table-font-size; 16 | } 17 | 18 | table > tbody > tr { 19 | &:nth-of-type(odd) { background-color: $table-row-odd-bg-color; } 20 | &:hover { background-color: $table-row-hover-bg-color; } 21 | } 22 | 23 | caption, th, td { 24 | padding: $table-cell-padding; 25 | text-align: $table-content-alignment; 26 | vertical-align: $table-content-vertical; 27 | font-weight: normal; 28 | } 29 | 30 | th, td { 31 | border: 1px solid $table-border-color; 32 | border-bottom: 3px solid $table-cell-border-bottom-color; 33 | } 34 | 35 | th { 36 | padding-bottom: 10px; 37 | font-weight: $table-th-font-weight; 38 | } 39 | 40 | td { 41 | border-bottom-width: 1px; 42 | } 43 | -------------------------------------------------------------------------------- /themes/next/source/css/_custom/custom.styl: -------------------------------------------------------------------------------- 1 | // Custom styles. 2 | 3 | .post { 4 | margin-top: 0px; 5 | margin-bottom: 60px; 6 | padding: 25px; 7 | -webkit-box-shadow: 0 0 5px rgba(202, 203, 203, .8); 8 | -moz-box-shadow: 0 0 5px rgba(202, 203, 204, .8); 9 | background-color: #FBF6E7; 10 | } 11 | 12 | //* { 13 | // cursor: url("https://raw.githubusercontent.com/zhaoolee/GBlog/master/themes/next/source/images/chuyin.ico"),auto!important 14 | //} 15 | :active { 16 | cursor: url("https://raw.githubusercontent.com/zhaoolee/GBlog/master/themes/next/source/images/chuyin.ico"),auto!important 17 | } 18 | 19 | 20 | h1, h2,h3, h4, h5,h6{ 21 | color: #009688 !important; 22 | } 23 | 24 | body{ 25 | background-color:#FBF6E7; 26 | } 27 | //背景图片 28 | 29 | -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Gemini.styl: -------------------------------------------------------------------------------- 1 | @import "Pisces.styl"; 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Mist.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/css/_mixins/Mist.styl -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/Muse.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/css/_mixins/Muse.styl -------------------------------------------------------------------------------- /themes/next/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, span.exturl { 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 | } 16 | } 17 | -------------------------------------------------------------------------------- /themes/next/source/css/_mixins/custom.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/css/_mixins/custom.styl -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_base.styl: -------------------------------------------------------------------------------- 1 | // Tags 2 | // -------------------------------------------------- 3 | 4 | a { border-bottom-color: $grey-light; } 5 | 6 | hr { 7 | margin: 20px 0; 8 | height: 2px; 9 | } 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_header.styl: -------------------------------------------------------------------------------- 1 | // Header 2 | // -------------------------------------------------- 3 | .header { background: $whitesmoke; } 4 | .header-inner { 5 | clearfix(); 6 | padding: 20px 0; 7 | display: flex; 8 | align-items: center; 9 | justify-content: center; 10 | 11 | +mobile() { 12 | show(); 13 | width: auto; 14 | padding: 10px; 15 | } 16 | } 17 | 18 | .site-meta { 19 | float: left; 20 | margin-left: -20px; 21 | line-height: normal; 22 | 23 | +mobile() { 24 | margin-left: 10px; 25 | } 26 | 27 | .brand { 28 | padding: 2px 1px; 29 | background: none; 30 | 31 | +mobile() { display: block; } 32 | } 33 | 34 | .logo { display: none; } 35 | 36 | .site-title { 37 | font-size: 22px; 38 | font-weight: bolder; 39 | 40 | +mobile() { line-height: 34px; } 41 | } 42 | } 43 | 44 | .logo-line-before, 45 | .logo-line-after { 46 | show(); 47 | overflow: hidden; 48 | margin: 0 auto; 49 | width: 75%; 50 | 51 | +mobile() { display: none; } 52 | 53 | i { 54 | position: relative; 55 | show(); 56 | height: 2px; 57 | background: $black-deep; 58 | +mobile() { height: 3px; } 59 | } 60 | } 61 | 62 | .use-motion { 63 | .logo-line-before i { left: -100%; } 64 | .logo-line-after i { right: -100%; } 65 | } 66 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_logo.styl: -------------------------------------------------------------------------------- 1 | .site-subtitle { display: none; } 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_menu.styl: -------------------------------------------------------------------------------- 1 | // Menu 2 | // -------------------------------------------------- 3 | .site-brand-wrapper { 4 | flex-shrink: 0; 5 | } 6 | 7 | .site-nav-toggle { 8 | position: static; 9 | float: right; 10 | } 11 | 12 | .site-nav { 13 | flex-grow: 1; 14 | +mobile() { 15 | transform: translateY(10px); 16 | } 17 | } 18 | 19 | .menu-item-active a { 20 | background: #e1e1e1; 21 | } 22 | 23 | .menu { 24 | //float: right; 25 | margin: 0; 26 | 27 | +mobile() { 28 | margin: 10px 0; 29 | padding: 0; 30 | } 31 | 32 | br { display: none; } 33 | 34 | .menu-item { 35 | margin: 0; 36 | +mobile() { 37 | show(); 38 | margin-top: 5px; 39 | } 40 | 41 | .badge { 42 | display: inline-block; 43 | padding: 1px 4px; 44 | margin-left: 5px; 45 | font-weight: 700; 46 | line-height: 1; 47 | color: $black-light; 48 | text-align: center; 49 | white-space: nowrap; 50 | background-color: #fff; 51 | border-radius: 10px; 52 | text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.1); 53 | +mobile() { 54 | float: right; 55 | margin: 0.35em 0 0 0; 56 | } 57 | } 58 | 59 | a, span.exturl { 60 | padding: 0 10px; 61 | border: none; 62 | border-radius: 2px; 63 | transition-property: background; 64 | 65 | +mobile() { 66 | text-align: left; 67 | } 68 | 69 | &:hover { 70 | @extend .menu-item-active a; 71 | } 72 | 73 | disable-touch-hover(); 74 | } 75 | } 76 | 77 | a::before { 78 | hide(); 79 | +mobile() { display: block; } 80 | } 81 | 82 | +mobile() { float: none; } 83 | } 84 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/_search.styl: -------------------------------------------------------------------------------- 1 | // Search 2 | // -------------------------------------------------- 3 | .site-search form { 4 | hide(); 5 | } 6 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/outline/outline.styl: -------------------------------------------------------------------------------- 1 | .main-inner { margin-top: 80px; } 2 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Mist/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll-inline .links-of-blogroll-item { display: inline-block; } 2 | -------------------------------------------------------------------------------- /themes/next/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 | show(); 8 | margin: 0px auto 25px auto; 9 | } 10 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/_logo.styl: -------------------------------------------------------------------------------- 1 | .custom-logo { 2 | .site-meta-headline { 3 | text-align: center; 4 | } 5 | 6 | .brand { 7 | background: none; 8 | } 9 | 10 | .site-title { 11 | margin: 10px auto 0; 12 | font-size: 24px; 13 | color: $black-deep; 14 | a { 15 | border: none; 16 | } 17 | } 18 | } 19 | 20 | .custom-logo-image { 21 | margin: 0 auto; 22 | padding: 5px; 23 | max-width: 150px; 24 | background: white; 25 | } 26 | -------------------------------------------------------------------------------- /themes/next/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 | 19 | .menu-item-active a { 20 | border-bottom-color: $menu-link-hover-border !important; 21 | color: $black-deep; 22 | 23 | +mobile() { 24 | border-bottom: 1px dotted $gray-lighter !important; 25 | } 26 | } 27 | 28 | .menu .menu-item { 29 | +mobile() { 30 | show(); 31 | margin: 0 10px; 32 | vertical-align: top; 33 | } 34 | 35 | .badge { 36 | display: inline-block; 37 | padding: 1px 4px; 38 | margin-left: 5px; 39 | font-weight: 700; 40 | line-height: 1; 41 | text-align: center; 42 | white-space: nowrap; 43 | background-color: $gainsboro; 44 | +mobile() { 45 | float: right; 46 | margin: 0.35em 0 0 0; 47 | } 48 | } 49 | 50 | br { 51 | +mobile() { display: none; } 52 | } 53 | 54 | a, span.exturl { 55 | +mobile() { 56 | padding: 5px 10px; 57 | } 58 | 59 | &:hover { 60 | @extend .menu-item-active a; 61 | } 62 | 63 | // To prevent hover on external links with touch devices after click. 64 | @media (hover:none) { 65 | &:hover { 66 | border-bottom-color: transparent !important; 67 | } 68 | } 69 | } 70 | .fa { 71 | +tablet() { 72 | width: 100%; 73 | } 74 | +desktop() { 75 | width: 100%; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/_search.styl: -------------------------------------------------------------------------------- 1 | // Search 2 | // -------------------------------------------------- 3 | .site-search form { 4 | hide(); 5 | } 6 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Muse/sidebar/sidebar-blogroll.styl: -------------------------------------------------------------------------------- 1 | .links-of-blogroll-inline .links-of-blogroll-item { display: inline-block; } 2 | -------------------------------------------------------------------------------- /themes/next/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-mobile() { 11 | box-shadow: 0 0 16px rgba(0, 0, 0, 0.5); 12 | } 13 | } 14 | 15 | .brand { 16 | padding: 0; 17 | background: none; 18 | 19 | &:hover { 20 | color: white; 21 | } 22 | } 23 | 24 | .site-subtitle { 25 | margin: 10px 10px 0; 26 | font-weight: initial; 27 | } 28 | 29 | .custom-logo-image { 30 | margin-top: 20px; 31 | +tablet-mobile() { 32 | hide(); 33 | } 34 | } 35 | 36 | .site-search form { 37 | hide(); 38 | } 39 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Pisces/_sub-menu.styl: -------------------------------------------------------------------------------- 1 | .sub-menu { 2 | margin: 0; 3 | padding: 6px 0; 4 | background: #fff !important; 5 | border-bottom: 1px solid $table-border-color; 6 | } 7 | 8 | .sub-menu .menu-item { 9 | display: inline-block !important; 10 | 11 | & a, span.exturl { 12 | padding: initial !important; 13 | margin: 5px 10px; 14 | } 15 | 16 | & a:hover, span.exturl:hover { 17 | background: initial !important; 18 | color: $sidebar-highlight; 19 | } 20 | } 21 | 22 | .sub-menu .menu-item-active a { 23 | background: #fff !important; 24 | color: $sidebar-highlight; 25 | border-bottom-color: $sidebar-highlight; 26 | 27 | &:hover { 28 | background: #fff !important; 29 | border-bottom-color: $sidebar-highlight; 30 | } 31 | 32 | badges = hexo-config('menu_settings.badges'); 33 | if not badges { 34 | &:after { 35 | content: initial; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /themes/next/source/css/_schemes/Pisces/index.styl: -------------------------------------------------------------------------------- 1 | @import "_layout"; 2 | @import "_brand"; 3 | @import "_menu"; 4 | @import "_sub-menu"; 5 | @import "_sidebar"; 6 | -------------------------------------------------------------------------------- /themes/next/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 | 10 | // Borders. 11 | // -------------------------------------------------- 12 | $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) 13 | $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) 14 | 15 | $border-radius-inner = initial 16 | $border-radius = initial 17 | //$border-radius-inner = 0 0 3px 3px; 18 | //$border-radius = 3px; 19 | 20 | // Back to top 21 | $b2t-sidebar-bg-color = $body-bg-color 22 | -------------------------------------------------------------------------------- /themes/next/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 | -------------------------------------------------------------------------------- /themes/next/source/css/_variables/Muse.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/css/_variables/Muse.styl -------------------------------------------------------------------------------- /themes/next/source/css/_variables/custom.styl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/css/_variables/custom.styl -------------------------------------------------------------------------------- /themes/next/source/css/main.styl: -------------------------------------------------------------------------------- 1 | // CSS Style Guide: http://codeguide.co/#css 2 | 3 | 4 | $scheme = hexo-config('scheme') ? hexo-config('scheme') : 'Muse'; 5 | 6 | $custom_styles = hexo-config('custom_file_path.styles') ? "../../../../../" + hexo-config('custom_file_path.styles') : custom; 7 | $custom_mixins = hexo-config('custom_file_path.mixins') ? "../../../../../" + hexo-config('custom_file_path.mixins') : custom; 8 | $custom_variables = hexo-config('custom_file_path.variables') ? "../../../../../" + hexo-config('custom_file_path.variables') : custom; 9 | 10 | $variables = base $scheme $custom_variables; 11 | $mixins = base $scheme $custom_mixins; 12 | 13 | 14 | // Variables Layer 15 | // -------------------------------------------------- 16 | for $variable in $variables 17 | @import "_variables/" + $variable; 18 | 19 | 20 | // Mixins Layer 21 | // -------------------------------------------------- 22 | for $mixin in $mixins 23 | @import "_mixins/" + $mixin; 24 | 25 | 26 | // Common Layer 27 | // -------------------------------------------------- 28 | 29 | // Scaffolding 30 | @import "_common/scaffolding"; 31 | 32 | // Layout 33 | @import "_common/outline"; 34 | 35 | // Components 36 | @import "_common/components"; 37 | 38 | 39 | // Schemes Layer 40 | // -------------------------------------------------- 41 | @import "_schemes/" + $scheme; 42 | 43 | 44 | // Custom Layer 45 | // -------------------------------------------------- 46 | @import "_custom/" + $custom_styles; 47 | -------------------------------------------------------------------------------- /themes/next/source/fonts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/fonts/.gitkeep -------------------------------------------------------------------------------- /themes/next/source/images/apple-touch-icon-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/apple-touch-icon-next.png -------------------------------------------------------------------------------- /themes/next/source/images/avatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/avatar.gif -------------------------------------------------------------------------------- /themes/next/source/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/background.jpg -------------------------------------------------------------------------------- /themes/next/source/images/chuyin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/chuyin.ico -------------------------------------------------------------------------------- /themes/next/source/images/cursor_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/cursor_1.png -------------------------------------------------------------------------------- /themes/next/source/images/favicon-16x16-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/favicon-16x16-next.png -------------------------------------------------------------------------------- /themes/next/source/images/favicon-32x32-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/favicon-32x32-next.png -------------------------------------------------------------------------------- /themes/next/source/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/loading.gif -------------------------------------------------------------------------------- /themes/next/source/images/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/loading.png -------------------------------------------------------------------------------- /themes/next/source/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | image/svg+xml 24 | -------------------------------------------------------------------------------- /themes/next/source/images/placeholder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/placeholder.gif -------------------------------------------------------------------------------- /themes/next/source/images/quote-l.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /themes/next/source/images/quote-r.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /themes/next/source/images/searchicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/searchicon.png -------------------------------------------------------------------------------- /themes/next/source/images/wechatpay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhaoolee/ppt-piece/005423f00395198b380d62de8bf10ef1f6da8538/themes/next/source/images/wechatpay.jpg -------------------------------------------------------------------------------- /themes/next/source/js/schemes/muse.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | function updateFooterPosition() { 3 | var containerHeight = $('#footer').attr('position') ? $('.container').height() + $('#footer').outerHeight(true) : $('.container').height(); 4 | if (containerHeight < window.innerHeight) $('#footer').css({ 'position': 'fixed', 'bottom': 0, 'left': 0, 'right': 0 }).attr('position', 'fixed'); 5 | else $('#footer').removeAttr('style position'); 6 | } 7 | updateFooterPosition(); 8 | $(window).on('resize scroll', updateFooterPosition); 9 | }); 10 | -------------------------------------------------------------------------------- /themes/next/source/js/scroll-cookie.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | /* global Cookies */ 4 | 5 | // Set relative link path (without domain) 6 | var rpath = window.location.href.replace(window.location.origin, ''); 7 | 8 | // Write position in cookie 9 | var timeout; 10 | $(window).on('scroll', function() { 11 | clearTimeout(timeout); 12 | timeout = setTimeout(function() { 13 | Cookies.set('scroll-cookie', $(window).scrollTop() + '|' + rpath, { expires: 365, path: '' }); 14 | }, 250); 15 | }); 16 | 17 | // Read position from cookie 18 | if (Cookies.get('scroll-cookie') !== undefined) { 19 | var cvalues = Cookies.get('scroll-cookie').split('|'); 20 | if (cvalues[1] === rpath) { 21 | $(window).scrollTop(cvalues[0]); 22 | } 23 | } 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /themes/next/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 | --------------------------------------------------------------------------------