├── .gitignore ├── LICENSE ├── README.md ├── README_zh.md ├── _config.yml ├── languages ├── default.yml ├── zh-CN.yml └── zh-TW.yml ├── layout ├── _partial │ ├── after_footer.ejs │ ├── analytics.ejs │ ├── archive.ejs │ ├── article.ejs │ ├── article_row.ejs │ ├── categories.ejs │ ├── footer.ejs │ ├── head.ejs │ ├── header.ejs │ ├── mathjax.ejs │ ├── pagination.ejs │ ├── post │ │ ├── article.ejs │ │ ├── catetags.ejs │ │ ├── comment.ejs │ │ ├── footer.ejs │ │ ├── gallery.ejs │ │ ├── header.ejs │ │ ├── jiathis.ejs │ │ └── pagination.ejs │ ├── search.ejs │ ├── sidebar.ejs │ ├── tags.ejs │ ├── tinysou_search.ejs │ └── totop.ejs ├── _widget │ ├── archive.ejs │ ├── category.ejs │ ├── douban.ejs │ ├── github-card.ejs │ ├── links.ejs │ ├── rss.ejs │ ├── tag.ejs │ ├── tagcloud.ejs │ └── weibo.ejs ├── archive.ejs ├── category.ejs ├── index.ejs ├── layout.ejs ├── page.ejs ├── post.ejs └── tag.ejs ├── scripts └── fancybox.js └── source ├── css ├── _base │ ├── font.styl │ ├── highlight │ │ ├── highlight.styl │ │ └── theme.styl │ ├── public.styl │ └── variable.styl ├── _partial │ ├── article.styl │ ├── aside.styl │ ├── duoshuo.styl │ ├── footer.styl │ ├── gallery.styl │ ├── header.styl │ ├── helper.styl │ ├── index.styl │ └── totop.styl └── 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 ├── font ├── FontAwesome.otf ├── coveredbyyourgrace-webfont.eot ├── coveredbyyourgrace-webfont.svg ├── coveredbyyourgrace-webfont.ttf ├── coveredbyyourgrace-webfont.woff ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff ├── fontdiao.eot ├── fontdiao.svg ├── fontdiao.ttf └── fontdiao.woff ├── img ├── author.jpg ├── banner.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 ├── favicon.ico ├── jacman.jpg ├── logo.png ├── logo.svg └── scrollup.png └── js ├── gallery.js ├── jquery-2.0.3.min.js ├── jquery.imagesloaded.min.js ├── jquery.qrcode-0.12.0.min.js └── totop.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Wu Chong 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jacman 2 | 3 | [中文说明](/README_zh.md) 4 | 5 | Jacman is a fresh looking and responsive theme for [Hexo](http://hexo.io) with more features and some build-in Chinese service based on [Pacman](https://github.com/A-limon/pacman). 6 | 7 | **Jacman support Hexo 3.0 now !** 8 | 9 | [Demo](http://jacman.wuchong.me) 10 | 11 | [如何使用 Jacman 主题](http://jacman.wuchong.me/2014/11/20/how-to-use-jacman/) 12 | 13 | ## Installation 14 | ### Install 15 | ``` 16 | $ git clone https://github.com/wuchong/jacman.git themes/jacman 17 | ``` 18 | **Jacman requires Hexo 2.7 and above.** 19 | ### Enable 20 | Modify `theme` setting in blog folder` _config.yml` to `jacman`. 21 | ### Update 22 | ``` 23 | cd themes/jacman 24 | git pull origin master 25 | ``` 26 | **please backup your `_config.yml` file before update.** 27 | 28 | ## Configuration 29 | 30 | Modify settings in `/themes/jacman/_config.yml`. [Learn More](https://github.com/wuchong/jacman/wiki/%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97). 31 | 32 | ## Features 33 | - **menu** 34 | Main navigation menu. 35 | - **widget** 36 | Widgets displaying in sidebar.The category,tag,rss,archive,tagcloud,links,weibo are supported. 37 | - **Image** 38 | Images about favicon, site logo, author image, banner image. Support different image styles like `img-logo`,`img-topic`,`img-center` etc. 39 | - **index** 40 | Two different home page display modes.You can visit [Demo](http://jacman.wuchong.me) to check the difference. 41 | - **author** 42 | Author imformation, used to show your social network links on the bottom right. Including github, stackoverflow, twitter, facebook, linkedin, google+, weibo, douban, zhihu, email. 43 | - **toc** 44 | Show Table Of Contents in article & aside. 45 | - **comments** 46 | [duoshuo](http://duoshuo.com/) & [disqus](https://disqus.com/) & [网易云跟帖](https://gentie.163.com/index.html) & [畅言](http://changyan.kuaizhan.com/) are supported. 47 | - **jiathis** 48 | Build-in share tool or [JiaThis](http://www.jiathis.com/) share buttons at the bottom of articles. 49 | - **Analytiscs** 50 | [Google analytics](http://www.google.com/analytics/) & [Baidu tongji](http://tongji.baidu.com/) & [CNZZ tongji](http://www.cnzz.com/) are all supported. 51 | - **Search** 52 | [Googlle Custom Search](https://www.google.com/cse/ ) & [Baidu Site Search](http://zn.baidu.com/) & [Tiny Search](http://tinysou.com/) are supported. 53 | - **totop** 54 | Scroll to top 55 | - **rss** 56 | RSS subscription link (change if using Feedburner). 57 | - **fancybox** 58 | Enable [Fancybox](http://fancyapps.com/fancybox/) 59 | - **custom theme color** 60 | Mondify theme color in `_config.yaml` instead of finding unfamiliar stylus files. 61 | - **others** 62 | You can configure sidebar not show in post pages. 63 | 64 | You can learn how to use them from [Configuration](https://github.com/wuchong/jacman/wiki/配置指南). 65 | 66 | ## Sites 67 | - [Jacman Theme](http://jacman.wuchong.me) - The demo site of Jacman Theme 68 | - [阿杜个人博客](http://ralphadu.com) - 阿杜个人博客 69 | - [PhiloSky's Blog](http://philosky.ml/) - Personal blog 70 | - [hiluSdream](http://hiluluke.cn) - 梦想是无所谓无的,无所谓有的 71 | - [Melface](http://melface.tk) - Personal blog 72 | - [heamon7's Utopia](http://heamon7.com) - 修行绝尘,悟道涉俗 73 | - [PegasusWang's Blog](http://ningning.today) - 你的问题主要在于读书不多而想得太多 74 | - [青劲草](http://www.caoqq.net) - 学会记录成长点滴 75 | - [Vigorass](http://cscao.com) - Learn to record dripping growth 76 | - [MoqiZhan](http://moqizhan.com) - 人生就是不停的战斗 77 | - [Think Differently](http://think-diff.me/) - If You Can Think Differently, You Can Act Differently. 78 | - [ylf](http://wangyangyang.gitcafe.com) - 王洋洋 79 | - [Gevin's blog](http://blog.igevin.info/) - Stay hungry, stay foolish; Stop when you are perfect. 80 | - [keychar](http://keychar.com) - A technology blog, design & programming. 81 | - [peng的博客](http://chenpengdsp.com) - 人生就是不停的战斗 82 | - [More and More](http://aeesky.github.io) -刚起步:) 83 | - [好久不见](http://dpast.org) - Julian Zhu 84 | - [keke2014's blog](http://jukezhang.com/) - Stay hungry, stay foolish - Steve Jobs 85 | - [Eurry](http://www.eurry.net) - Eurry's Blog. 86 | - [sencle's blog](http://isencle.com) -just do it 87 | - [Oxymoron's Blog](http://ioxymoron.me) - Let's start from here. 88 | - [HelloDog](http://wsgzao.github.io) - Keep Clam and Carry On 89 | - [屠城|屠夫9441的博客](http://haomwei.com) - 苟全性命于乱世,不求闻达于诸侯。 90 | - [Ice He. 何志遠](http://icehe.github.io/) - Less is more. 寧靜致遠。 91 | - [prokitty,侏罗纪公园](http://www.prokitty.com) -Belive yourself,belive Cherry. 92 | - [Ceclinux](http://ceclinux.org) - Arch is the best 93 | - [BruceGe's blog](http://brucege.com) - Start Blogging 94 | - [Yangxiaolei's blog](http://yangxiaolei.me) - 让知识成为信仰,让优秀成为习惯 95 | - [CC's blog](http://ccloveyou.org) - CC 96 | - [TadGuo's pages](http://watermeion.github.io) - More is different. 97 | - [Mutse's blog](http://mutse.github.io) - Love Life, Love open source 98 | - [唐巧的技术博客](http://blog.devtang.com/) - 巧神 99 | - [Salogs](http://salogs.com/) - 拥抱开源,分享经验! 100 | - [graysongs's club](http://www.graysongs.club/) - share video games here! 101 | - [叉叉哥的博客](http://xxgblog.com/) - 叉叉哥的博客 102 | 103 | If you are using Jacman,you can add your site [here](https://github.com/wuchong/jacman/wiki/Sites) ! I'll push the available sites here. 104 | 105 | ## License 106 | [MIT](/LICENSE) 107 | -------------------------------------------------------------------------------- /README_zh.md: -------------------------------------------------------------------------------- 1 | # Jacman 2 | 3 | [README](/README.md) 4 | 5 | Jacman 是为 [Hexo](http://hexo.io) 设计的一款清新且具有响应式的主题,拥有更丰富的特性并支持了很多的国内服务。Jacman 始于 [Pacman](https://github.com/A-limon/pacman) 修改而来。 6 | 7 | **Jacman 现已支持 Hexo 3.0 !** 8 | 9 | [主题演示](http://jacman.wuchong.me) 10 | 11 | [如何使用 Jacman 主题](http://jacman.wuchong.me/2014/11/20/how-to-use-jacman/) 12 | 13 | ## 安装教程 14 | ### 安装 15 | ``` 16 | $ git clone https://github.com/wuchong/jacman.git themes/jacman 17 | ``` 18 | **Jacman 需要 Hexo 2.7 及以上版本** 19 | ### 启用 20 | 修改博客根目录下的配置文件 `_config.yml`,把`theme`的值修改为 `jacman`. 21 | ### 更新 22 | ``` 23 | cd themes/jacman 24 | git pull origin master 25 | ``` 26 | **请先备份您主题目录下的 `_config.yml` 文件后再升级。** 27 | 28 | ## 配置指南 29 | 30 | 修改 `/themes/jacman/_config.yml` 中的配置。通过[配置指南wiki](https://github.com/wuchong/jacman/wiki/%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97)了解更多 31 | 32 | ## 功能 33 | - **菜单 menu** 34 | 主导航菜单 35 | - **控件 widget** 36 | 侧边栏的控件。包括:分类、标签、RSS、归档、标签云、友情链接、微博秀。 37 | - **图片相关 Image** 38 | 设置网站图标、网站logo、作者头像、博客顶部大图等。还提供了多种图片样式`img-logo`,`img-topic`,`img-center`等 39 | - **首页模式 index** 40 | 主题提供了两种首页展示模式,你可以访问 [主题演示](http://jacman.wuchong.me) 来了解其不同。 41 | - **作者 author** 42 | 作者信息,主要用于展示网站右下角的社交网络链接。包括:微博、豆瓣、知乎、邮箱、GitHub、StackOverflow、Twitter、Facebook、Linkedin、Google+。 43 | - **目录 toc** 44 | 在文章中和侧边栏可以显示目录。 45 | - **评论 comments** 46 | 支持 [多说](http://duoshuo.com/) & [disqus](https://disqus.com/) & [网易云跟帖](https://gentie.163.com/index.html) & [畅言](http://changyan.kuaizhan.com/) 评论。 47 | - **分享 jiathis** 48 | 启用 内建分享工具 或 [加网](http://www.jiathis.com/) 分享系统。 49 | - **网站统计 Analytiscs** 50 | 支持 [谷歌统计](http://www.google.com/analytics/) & [百度统计](http://tongji.baidu.com/) & [CNZZ站长统计](http://www.cnzz.com/)。 51 | - **Search** 52 | 支持 [谷歌自定义搜索](https://www.google.com/cse/ ) & [百度站内搜索](http://zn.baidu.com/) &[微搜索](http://tinysou.com/)。 53 | - **totop** 54 | 回到顶部。 55 | - **rss** 56 | RSS 订阅链接。 57 | - **fancybox** 58 | 图片查看的 [Fancybox](http://fancyapps.com/fancybox/) 工具。 59 | - **自定义主题颜色** 60 | 在`_config.yaml`中就可以修改主题的颜色,而不用去找那些奇怪的 stylus 文件。 61 | - **其他** 62 | 你可以设置侧边栏在博文页面中不显示。 63 | 64 | 你可以通过[配置指南](https://github.com/wuchong/jacman/wiki/配置指南)了解更多使用细节。 65 | 66 | ## 网站列表 67 | - [Jacman Theme](http://jacman.wuchong.me) - The demo site of Jacman Theme 68 | - [Jark's Blog](http://wuchong.me) - The author's blog of Jacman 69 | - [阿杜个人博客](http://ralphadu.com) - 阿杜个人博客 70 | - [PhiloSky's Blog](http://philosky.ml/) - Personal blog 71 | - [hiluSdream](http://hiluluke.cn) - 梦想是无所谓无的,无所谓有的 72 | - [Melface](http://melface.tk) - Personal blog 73 | - [heamon7's Utopia](http://heamon7.com) - 修行绝尘,悟道涉俗 74 | - [PegasusWang's Blog](http://ningning.today) - 你的问题主要在于读书不多而想得太多 75 | - [青劲草](http://www.caoqq.net) - 学会记录成长点滴 76 | - [Vigorass](http://cscao.com) - Learn to record dripping growth 77 | - [MoqiZhan](http://moqizhan.com) - 人生就是不停的战斗 78 | - [Think Differently](http://think-diff.me/) - If You Can Think Differently, You Can Act Differently. 79 | - [ylf](http://wangyangyang.gitcafe.com) - 王洋洋 80 | - [Gevin's blog](http://blog.igevin.info/) - Stay hungry, stay foolish; Stop when you are perfect. 81 | - [keychar](http://keychar.com) - A technology blog, design & programming. 82 | - [peng的博客](http://chenpengdsp.com) - 人生就是不停的战斗 83 | - [More and More](http://aeesky.github.io) -刚起步:) 84 | - [好久不见](http://dpast.org) - Julian Zhu 85 | - [keke2014's blog](http://jukezhang.com/) - Stay hungry, stay foolish - Steve Jobs 86 | - [Eurry](http://www.eurry.net) - Eurry's Blog. 87 | - [sencle's blog](http://isencle.com) -just do it 88 | - [Oxymoron's Blog](http://ioxymoron.me) - Let's start from here. 89 | - [HelloDog](http://wsgzao.github.io) - Keep Clam and Carry On 90 | - [屠城|屠夫9441的博客](http://haomwei.com) - 苟全性命于乱世,不求闻达于诸侯。 91 | - [Ice He. 何志遠](http://icehe.github.io/) - Less is more. 寧靜致遠。 92 | - [prokitty,侏罗纪公园](http://www.prokitty.com) -Belive yourself,belive Cherry. 93 | - [Ceclinux](http://ceclinux.org) - Arch is the best 94 | - [BruceGe's blog](http://brucege.com) - Start Blogging 95 | - [Yangxiaolei's blog](http://yangxiaolei.me) - 让知识成为信仰,让优秀成为习惯 96 | - [CC's blog](http://ccloveyou.org) - CC 97 | - [TadGuo's pages](http://watermeion.github.io) - More is different. 98 | - [Mutse's blog](http://mutse.github.io) - 爱生活,爱开源 99 | - [Salogs](http://salogs.com/) - 拥抱开源,分享经验! 100 | - [叉叉哥的博客](http://xxgblog.com/) - 叉叉哥的博客 101 | 102 | 如果你正在使用 Jacman主题,欢迎将网址添加到[wiki的网站列表](https://github.com/wuchong/jacman/wiki/Sites)。我会不定期进行整理。 103 | 104 | ## 协议 105 | [MIT](/LICENSE) 106 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | ##### Menu 2 | menu: 3 | Home: / 4 | Archives: /archives 5 | About: /about 6 | ## you can create `tags` and `categories` folders in `../source`. 7 | ## And create a `index.md` file in each of them. 8 | ## set `front-matter`as 9 | ## layout: tags (or categories) 10 | ## title: tags (or categories) 11 | ## --- 12 | 13 | #### Widgets 14 | widgets: 15 | - github-card 16 | - category 17 | - tag 18 | - links 19 | - douban 20 | - rss 21 | - weibo 22 | ## provide eight widgets:github-card,category,tag,rss,archive,tagcloud,links,weibo 23 | 24 | 25 | 26 | #### RSS 27 | rss: /atom.xml ## RSS address. 28 | 29 | #### Image 30 | imglogo: 31 | enable: true ## display image logo true/false. 32 | src: img/logo.png ## `.svg` and `.png` are recommended,please put image into the theme folder `/jacman/source/img`. 33 | favicon: img/favicon.ico ## size:32px*32px,`.ico` is recommended,please put image into the theme folder `/jacman/source/img`. 34 | apple_icon: img/jacman.jpg ## size:114px*114px,please put image into the theme folder `/jacman/source/img`. 35 | author_img: img/author.jpg ## size:220px*220px.display author avatar picture.if don't want to display,please don't set this. 36 | banner_img: #img/banner.jpg ## size:1920px*200px+. Banner Picture 37 | ### Theme Color 38 | theme_color: 39 | theme: '#2ca6cb' ##the defaut theme color is blue 40 | 41 | # 代码高亮主题 42 | # available: default | night 43 | highlight_theme: default 44 | 45 | #### index post is expanding or not 46 | index: 47 | expand: true ## default is unexpanding,so you can only see the short description of each post. 48 | excerpt_link: Read More 49 | 50 | close_aside: false #close sidebar in post page if true 51 | mathjax: false #enable mathjax if true 52 | 53 | ### Creative Commons License Support, see http://creativecommons.org/ 54 | ### you can choose: by , by-nc , by-nc-nd , by-nc-sa , by-nd , by-sa , zero 55 | creative_commons: none 56 | 57 | #### Author information 58 | author: 59 | intro_line1: "Hello ,I'm Larry Page in Google." ## your introduction on the bottom of the page 60 | intro_line2: "This is my blog,believe it or not." ## the 2nd line 61 | weibo: 2176287895 ## e.g. wuchong1014 or 2176287895 for http://weibo.com/2176287895 62 | weibo_verifier: b3593ceb ## e.g. b3593ceb Your weibo-show widget verifier ,if you use weibo-show it is needed. 63 | tsina: ## e.g. 2176287895 Your weibo ID,It will be used in share button. 64 | douban: ## e.g. wuchong1014 or your id for https://www.douban.com/people/wuchong1014 65 | zhihu: ## e.g. jark for http://www.zhihu.com/people/jark 66 | email: ## e.g. imjark@gmail.com 67 | twitter: ## e.g. jarkwu for https://twitter.com/jarkwu 68 | github: ## e.g. wuchong for https://github.com/wuchong 69 | facebook: ## e.g. imjark for https://facebook.com/imjark 70 | linkedin: ## e.g. wuchong1014 for https://www.linkedin.com/in/wuchong1014 71 | google_plus: ## e.g. "111190881341800841449" for https://plus.google.com/u/0/111190881341800841449, the "" is needed! 72 | stackoverflow: ## e.g. 3222790 for http://stackoverflow.com/users/3222790/jark 73 | ## if you set them, the corresponding share button will show on the footer 74 | 75 | #### Toc 76 | toc: 77 | article: true ## show contents in article. 78 | aside: true ## show contents in aside. 79 | ## you can set both of the value to true of neither of them. 80 | ## if you don't want display contents in a specified post,you can modify `front-matter` and add `toc: false`. 81 | 82 | #### Links 83 | links: 84 | 码农圈: https://coderq.com,一个面向程序员交流分享的新一代社区 85 | Jark's Blog: http://wuchong.me 86 | 87 | 88 | 89 | #### Comment 90 | duoshuo_shortname: ## e.g. wuchong your duoshuo short name. 91 | disqus_shortname: ## e.g. wuchong your disqus short name. 92 | gentie_key: ## your 163 gentie key, see https://gentie.163.com/ 93 | changyan_appid: ## changyan app id, see http://changyan.kuaizhan.com/ 94 | changyan_appkey: ## changyan app key, see http://changyan.kuaizhan.com/ 95 | 96 | 97 | #### Share button 98 | jiathis: 99 | enable: false ## if you use jiathis as your share tool,the built-in share tool won't be display. 100 | id: ## e.g. 1889330 your jiathis ID. 101 | tsina: ## e.g. 2176287895 Your weibo id,It will be used in share button. 102 | 103 | #### Analytics 104 | google_analytics: 105 | enable: false 106 | id: ## e.g. UA-46321946-2 your google analytics ID. 107 | site: ## e.g. wuchong.me your google analytics site or set the value as auto. 108 | ## You MUST upgrade to Universal Analytics first! 109 | ## https://developers.google.com/analytics/devguides/collection/upgrade/?hl=zh_CN 110 | baidu_tongji: 111 | enable: true 112 | sitecode: e6d1f421bbc9962127a50488f9ed37d1 ## e.g. e6d1f421bbc9962127a50488f9ed37d1 your baidu tongji site code 113 | cnzz_tongji: 114 | enable: false 115 | siteid: ## e.g. 1253575964 your cnzz tongji site id 116 | 117 | #### Miscellaneous 118 | ShowCustomFont: true ## you can change custom font in `variable.styl` and `font.styl` which in the theme folder `/jacman/source/css`. 119 | fancybox: true ## if you use gallery post or want use fancybox please set the value to true. 120 | totop: true ## if you want to scroll to top in every post set the value to true 121 | 122 | 123 | #### Custom Search 124 | google_cse: 125 | enable: false 126 | cx: ## e.g. 018294693190868310296:abnhpuysycw your Custom Search ID. 127 | ## https://www.google.com/cse/ 128 | ## To enable the custom search You must create a "search" folder in '/source' and a "index.md" file 129 | ## set the 'front-matter' as 130 | ## layout: search 131 | ## title: search 132 | ## --- 133 | baidu_search: ## http://zn.baidu.com/ 134 | enable: false 135 | id: ## e.g. "783281470518440642" for your baidu search id 136 | site: http://zhannei.baidu.com/cse/search ## your can change to your site instead of the default site 137 | 138 | tinysou_search: ## http://tinysou.com/ 139 | enable: false 140 | id: ## e.g. "4ac092ad8d749fdc6293" for your tiny search id 141 | -------------------------------------------------------------------------------- /languages/default.yml: -------------------------------------------------------------------------------- 1 | categories: Categories 2 | search: Search 3 | tags: Tags 4 | tagcloud: Tag Cloud 5 | prev: Prev 6 | next: Next 7 | comment: Comments 8 | contents: Contents 9 | archive_a: Archives 10 | archive_b: "Archives: %s" 11 | archive_date: "MMM YYYY" 12 | page: Page %d 13 | recent_posts: Recent Posts 14 | menu: Menu 15 | weibo: Weibo 16 | links: Links 17 | rss: RSS 18 | doubanshow: Douban Show 19 | github-card: Github Card 20 | showsidebar: Show Sidebar 21 | hidesidebar: Hide Sidebar 22 | updated: Updated 23 | totop: Back to Top 24 | datepublished: Published 25 | -------------------------------------------------------------------------------- /languages/zh-CN.yml: -------------------------------------------------------------------------------- 1 | categories: 分类 2 | search: 搜索 3 | tags: 标签 4 | tagcloud: 标签云 5 | prev: 上一页 6 | next: 下一页 7 | comment: 文章评论 8 | contents: 文章目录 9 | archive_a: 归档 10 | archive_b: 归档:%s 11 | archive_date: "YYYY 年 MM 月" 12 | page: 第 %d 页 13 | recent_posts: 近期文章 14 | menu: 菜单 15 | links: 友情链接 16 | weibo: 新浪微博 17 | rss: RSS 订阅 18 | doubanshow: 豆瓣秀 19 | github-card: Github 名片 20 | showsidebar: 显示侧边栏 21 | hidesidebar: 隐藏侧边栏 22 | updated: 更新日期 23 | totop: 返回顶部 24 | datepublished: 发表于 25 | -------------------------------------------------------------------------------- /languages/zh-TW.yml: -------------------------------------------------------------------------------- 1 | categories: 分類 2 | search: 搜索 3 | tags: 標簽 4 | tagcloud: 標簽雲 5 | prev: 上一頁 6 | next: 下一頁 7 | comment: 文章評論 8 | contents: 文章目錄 9 | archive_a: 歸檔 10 | archive_b: 歸檔:%s 11 | archive_date: "YYYY 年 MM 月" 12 | page: 第 %d 頁 13 | recent_posts: 近期文章 14 | menu: 菜單 15 | links: 友情鏈接 16 | weibo: 新浪微博 17 | rss: RSS 訂閱 18 | doubanshow: 豆瓣秀 19 | github-card: Github 名片 20 | showsidebar: 顯示側邊欄 21 | hidesidebar: 隱藏側邊欄 22 | updated: 更新日期 23 | totop: 返回頂部 24 | datepublished: 發表於 25 | -------------------------------------------------------------------------------- /layout/_partial/after_footer.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 57 | <% if (is_post()) { %> 58 | 83 | <% } %> 84 | <% if ((page.layout=='post'||page.layout=='page'||page.layout=='photo')&&!theme.jiathis.enable) { %> 85 | 133 | <% } %> 134 | 135 | <% if (theme.duoshuo_shortname && page.comments){ %> 136 | 147 | <% } %> 148 | <% if( (config.disqus_shortname || theme.disqus_shortname) && page.comments) { %> 149 | 170 | <% } %> 171 | <% if (theme.gentie_key && page.comments){ %> 172 | 180 | 181 | <% } %> 182 | 183 | <% if (theme.changyan_appid && page.comments){ %> 184 | 192 | <% } %> 193 | 194 | 195 | <% if (page.layout=='tags'||page.layout=='categories'){ %> 196 | 213 | <% } %> 214 | <% if (theme.fancybox){ %> 215 | 216 | 217 | 235 | <% } %> 236 | 237 | 238 | 239 | <%- partial('analytics') %> 240 | 241 | 242 | 243 | <%- partial('totop') %> 244 | 245 | 246 | 247 | <%- partial('mathjax') %> 248 | 249 | 250 | 251 | <%- partial('tinysou_search') %> 252 | 253 | -------------------------------------------------------------------------------- /layout/_partial/analytics.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.google_analytics.enable){ %> 2 | 10 | <% } %> 11 | 12 | <% if (theme.baidu_tongji.enable){ %> 13 | 22 | <% } %> 23 | 24 | <% if (theme.cnzz_tongji.enable){ %> 25 | 26 | <% } %> -------------------------------------------------------------------------------- /layout/_partial/archive.ejs: -------------------------------------------------------------------------------- 1 | <% 2 | var title = ''; 3 | var icon = ''; 4 | if (page.category){ 5 | title = page.category; 6 | icon = 'category'; 7 | }; 8 | if (page.tag){ 9 | title = page.tag; 10 | icon = 'tag'; 11 | }; 12 | if (page.archive){ 13 | icon = 'archive'; 14 | if (page.year) title = page.year+ (page.month ? '/' + page.month : ''); 15 | else title = __('archive_a'); 16 | }; 17 | %> 18 | 19 |
20 |

<%= title %>

21 | <% if(page.archive){ %> 22 |
23 | <%- list_archives({format:__('archive_date')}) %> 24 |
25 | <% } %> 26 |
27 |
28 |
29 | <% page.posts.each(function(item){ %> 30 | <%- partial('_partial/article_row', {item: item, index: true}) %> 31 | <% }); %> 32 | <% if (page.total > 1){ %> 33 | 39 | <% } %> 40 |
41 |
42 | -------------------------------------------------------------------------------- /layout/_partial/article.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.index.expand == true) { %> 2 | <% if (page.layout=='photo' && item.photos && item.photos.length){ %> 3 | <%- partial('post/gallery') %> 4 | <% } %> 5 |
6 | <%- partial('post/header') %> 7 |
8 | <% if (item.excerpt && index){ %> 9 | <%- item.excerpt %> 10 | <% } else { %> 11 | <%- item.content %> 12 | <% } %> 13 | 14 |

15 | <% if (item.excerpt && index && theme.index.excerpt_link){ %> 16 | <%= theme.index.excerpt_link %> 17 | <% } %> 18 |

19 |
20 | <%- partial('post/footer', {index: true}) %> 21 |
22 | <% }else{ %> 23 |
24 | <% if (item.link) { %> 25 | 26 | <% } else{ %> 27 | 41 |
42 | <% } %> 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /layout/_partial/article_row.ejs: -------------------------------------------------------------------------------- 1 |
2 | <% if (item.link) { %> 3 | 4 | <% } else{ %> 5 | 14 |
-------------------------------------------------------------------------------- /layout/_partial/categories.ejs: -------------------------------------------------------------------------------- 1 | <% 2 | page.category = ' '; 3 | %> 4 |
5 |

<%= __('categories') %>

6 | <% site.categories.sort('name').each(function(item){ %> 7 | <%= item.name %><%= item.posts.length %> 8 | <% }); %> 9 |
10 |
11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /layout/_partial/footer.ejs: -------------------------------------------------------------------------------- 1 | 70 | -------------------------------------------------------------------------------- /layout/_partial/head.ejs: -------------------------------------------------------------------------------- 1 | 2 | lang="<%= config.language %>"<% } %>> 3 | 4 | 5 | <% 6 | var title = page.title; 7 | 8 | if (is_archive()){ 9 | title = __('archive_a'); 10 | 11 | if (is_month()){ 12 | title += ': ' + page.year + '/' + page.month; 13 | } else if (is_year()){ 14 | title += ': ' + page.year; 15 | } 16 | } else if (is_category()){ 17 | title = __('categories')+' : ' + page.category; 18 | } else if (is_tag()){ 19 | title = __('tags')+' : ' + page.tag; 20 | } 21 | %> 22 | <% if (title){ %><%= title %> | <% } %><%= config.title %> 23 | 24 | <% if (config.author){ %> 25 | 26 | <% } %> 27 | 28 | <% if (page.keywords){ %><% } %> 29 | <%- open_graph({twitter_id: theme.author.twitter, google_plus: theme.author.google_plus}) %> 30 | 31 | <% if (theme.rss){ %> 32 | 33 | <% } %> 34 | <% if (theme.favicon){ %> 35 | 36 | <% } %> 37 | <% if (theme.apple_icon){ %> 38 | 39 | 40 | <% } %> 41 | <%- css('css/style') %> 42 | 43 | -------------------------------------------------------------------------------- /layout/_partial/header.ejs: -------------------------------------------------------------------------------- 1 | <% 2 | function root_for(path){ 3 | path = path || '/' 4 | var root = config.root; 5 | if (path.substring(0, root.length) !== root){ 6 | if (path.substring(0, 1) === '/'){ 7 | path = root.substring(0, root.length - 1) + path; 8 | } else { 9 | path = root + path; 10 | } 11 | } 12 | return path; 13 | } 14 | %> 15 |
16 | <% if (theme.imglogo.enable&&theme.imglogo.src){ %> 17 | 20 | <% } %> 21 | 25 | 27 | 59 |
-------------------------------------------------------------------------------- /layout/_partial/mathjax.ejs: -------------------------------------------------------------------------------- 1 | 2 | <% if (theme.mathjax || page.mathjax){ %> 3 | 11 | 12 | 19 | 20 | 28 | 29 | 31 | <% } %> 32 | -------------------------------------------------------------------------------- /layout/_partial/pagination.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layout/_partial/post/article.ejs: -------------------------------------------------------------------------------- 1 |
2 | <% if (page.layout=='photo' && item.photos && item.photos.length){ %> 3 | <%- partial('gallery') %> 4 | <% } %> 5 |
6 | <%- partial('header') %> 7 |
8 | <% if( table&&(item.toc !== false) && theme.toc.article){ %> 9 |
10 | <%= __('contents') %> 11 | <% if(item.list_number == false) {%> 12 | <%- toc(item.content,{list_number:false}) %> 13 | <% }else{ %> 14 | <%- toc(item.content) %> 15 | <% } %> 16 |
17 | <% } %> 18 | <%- item.content %> 19 |
20 | <%- partial('footer') %> 21 |
22 | <%- partial('pagination') %> 23 | <%- partial('comment') %> 24 |
-------------------------------------------------------------------------------- /layout/_partial/post/catetags.ejs: -------------------------------------------------------------------------------- 1 |
2 | <% if (item.categories && item.categories.length){ %> 3 |
4 | 5 | <%- list_categories(item.categories, { 6 | show_count: false, 7 | class: 'article-category', 8 | style: 'none', 9 | separator: '►' 10 | }) %> 11 |
12 | <% } %> 13 | <% if (item.tags && item.tags.length){ %> 14 |
15 | <% var tags = []; 16 | item.tags.forEach(function(tag){ 17 | tags.push('' + tag.name + ''); 18 | }); %> 19 | <%- tags.join('') %> 20 |
21 | <% } %> 22 |
23 | 24 | -------------------------------------------------------------------------------- /layout/_partial/post/comment.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.duoshuo_shortname && page.comments){ %> 2 |
3 |
4 |
5 | <% } %> 6 | <% if( (config.disqus_shortname || theme.disqus_shortname) && page.comments) { %> 7 |
8 |
9 | 10 |
11 |
12 | <% } %> 13 | <% if (theme.gentie_key && page.comments){ %> 14 |
15 | <% } %> 16 | <% if (theme.changyan_appid && page.comments){ %> 17 |
18 | <% } %> -------------------------------------------------------------------------------- /layout/_partial/post/footer.ejs: -------------------------------------------------------------------------------- 1 | 27 | 28 | -------------------------------------------------------------------------------- /layout/_partial/post/gallery.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layout/_partial/post/header.ejs: -------------------------------------------------------------------------------- 1 |
2 |

3 | <% if(item.link) { %> 4 | <%= item.title %><% } else { %> 5 | <% } %> 6 |

7 |

By 8 | <% if(theme.author.google_plus){ %> 9 | 10 | <% }else{ %> 11 | 12 | <% } %> 13 |

14 | 15 | 16 |

17 |
-------------------------------------------------------------------------------- /layout/_partial/post/jiathis.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.jiathis.enable){ %> 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 21 | 23 | <% } %> -------------------------------------------------------------------------------- /layout/_partial/post/pagination.ejs: -------------------------------------------------------------------------------- 1 | <% if (page.prev || page.next){ %> 2 | 22 | <% } %> -------------------------------------------------------------------------------- /layout/_partial/search.ejs: -------------------------------------------------------------------------------- 1 | <% if(theme.google_cse.enable) { %> 2 |
3 |
正在加载搜索结果,请稍等。
4 |
5 | 6 | 21 | <% } %> -------------------------------------------------------------------------------- /layout/_partial/sidebar.ejs: -------------------------------------------------------------------------------- 1 |
2 | <% if( table&&(item.toc !== false) && theme.toc.aside){ %> 3 |
4 | <%= __('contents') %> 5 | <% if(item.list_number == false) {%> 6 | <%- toc(item.content,{list_number:false}) %> 7 | <% }else{ %> 8 | <%- toc(item.content) %> 9 | <% } %> 10 |
11 | <% } %> 12 |
13 |
14 | 19 |
-------------------------------------------------------------------------------- /layout/_partial/tags.ejs: -------------------------------------------------------------------------------- 1 | <% 2 | page.tag = ' '; 3 | %> 4 |
5 |

<%= __('tags') %>

6 | <% site.tags.sort('name').each(function(item){ %> 7 | <%= item.name %><%= item.posts.length %> 8 | <% }); %> 9 |
10 |
11 |
12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /layout/_partial/tinysou_search.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.tinysou_search.enable){ %> 2 | 18 | <% } %> -------------------------------------------------------------------------------- /layout/_partial/totop.ejs: -------------------------------------------------------------------------------- 1 | <% if (theme.totop){ %> 2 |
3 | 4 |
5 | 6 | <% } %> -------------------------------------------------------------------------------- /layout/_widget/archive.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.posts.length){ %> 2 |
3 |

<%= __('archive_a') %>

4 | <%- list_archives() %> 5 |
6 | <% } %> -------------------------------------------------------------------------------- /layout/_widget/category.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.categories.length){ %> 2 |
3 |

<%= __('categories') %>

4 | 11 |
12 | <% } %> -------------------------------------------------------------------------------- /layout/_widget/douban.ejs: -------------------------------------------------------------------------------- 1 | 2 | <% if(theme.author.douban) { %> 3 |
4 |

<%= __('doubanshow') %>

5 |
6 | 7 |
8 |
9 | <% } %> -------------------------------------------------------------------------------- /layout/_widget/github-card.ejs: -------------------------------------------------------------------------------- 1 | <% if(theme.author.github) { %> 2 |
3 |

<%= __('github-card') %>

4 |
5 | 6 |
7 | <% } %> 8 | -------------------------------------------------------------------------------- /layout/_widget/links.ejs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layout/_widget/rss.ejs: -------------------------------------------------------------------------------- 1 |
2 | <%= __('rss') %> 3 |
-------------------------------------------------------------------------------- /layout/_widget/tag.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.tags.length){ %> 2 |
3 |

<%= __('tags') %>

4 | 11 |
12 | <% } %> -------------------------------------------------------------------------------- /layout/_widget/tagcloud.ejs: -------------------------------------------------------------------------------- 1 | <% if (site.tags.length){ %> 2 |
3 |

<%= __('tagcloud') %>

4 |
5 | <%- tagcloud() %> 6 |
7 |
8 | <% } %> -------------------------------------------------------------------------------- /layout/_widget/weibo.ejs: -------------------------------------------------------------------------------- 1 |
2 |

<%= __('weibo') %>

3 | 4 |
5 | -------------------------------------------------------------------------------- /layout/archive.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.archive}) %> -------------------------------------------------------------------------------- /layout/category.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.category}) %> -------------------------------------------------------------------------------- /layout/index.ejs: -------------------------------------------------------------------------------- 1 |
2 | <% page.posts.each(function(item){ %> 3 | <%- partial('_partial/article', {item: item, index: true,desc: true}) %> 4 | <% }); %> 5 | <% if (page.total > 1){ %> 6 | 12 | <% } %> 13 |
-------------------------------------------------------------------------------- /layout/layout.ejs: -------------------------------------------------------------------------------- 1 | <% if (page.layout=='post' || page.layout=='photo'){ %> 2 | <%- partial('_partial/head') %> 3 | 4 |
5 | <%- partial('_partial/header') %> 6 |
7 |
8 | <%- body %> 9 | <%- partial('_partial/sidebar',{item: page,table: true}) %> 10 |
11 | 12 | <%- partial('_partial/after_footer') %> 13 | 14 | 15 | <% } else if(page.layout=='page'){ %> 16 | <% if(page.source.match(/\.md$/)){ %> 17 | <%- partial('_partial/head') %> 18 | 19 |
20 | <%- partial('_partial/header') %> 21 |
22 |
23 | <%- body %> 24 |
25 | 26 | <%- partial('_partial/after_footer') %> 27 | 28 | 29 | <% }else{ %> 30 | <%- page.content %> 31 | <% } %> 32 | <% } else if(page.layout=='search'){ %> 33 | <%- partial('_partial/head') %> 34 | 35 |
36 | <%- partial('_partial/header') %> 37 |
38 |
39 | <%- partial('_partial/search')%> 40 |
41 | 42 | <%- partial('_partial/after_footer') %> 43 | 44 | 45 | <% } else if(page.layout=='tags'){ %> 46 | <%- partial('_partial/head') %> 47 | 48 |
49 | <%- partial('_partial/header') %> 50 |
51 |
52 | <%- partial('_partial/tags')%> 53 |
54 | 55 | <%- partial('_partial/after_footer') %> 56 | 57 | 58 | <% } else if(page.layout=='categories'){ %> 59 | <%- partial('_partial/head') %> 60 | 61 |
62 | <%- partial('_partial/header') %> 63 |
64 |
65 | <%- partial('_partial/categories')%> 66 |
67 | 68 | <%- partial('_partial/after_footer') %> 69 | 70 | 71 | <% } else if(page.category!=null||page.tag!=null||page.archive!=null) { %> 72 | <%- partial('_partial/head') %> 73 | 74 |
75 | <%- partial('_partial/header') %> 76 |
77 |
78 | <%- body %> 79 |
80 | 81 | <%- partial('_partial/after_footer') %> 82 | 83 | 84 | <% } else { %> 85 | <%- partial('_partial/head') %> 86 | 87 |
88 | <%- partial('_partial/header') %> 89 |
90 |
91 | <%- body %> 92 | <%- partial('_partial/sidebar',{item: page,table: false}) %> 93 |
94 | 95 | <%- partial('_partial/after_footer') %> 96 | 97 | 98 | <% } %> -------------------------------------------------------------------------------- /layout/page.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/post/article', {item: page, index: false,table: false}) %> -------------------------------------------------------------------------------- /layout/post.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/post/article', {item: page, index: false,table: true}) %> -------------------------------------------------------------------------------- /layout/tag.ejs: -------------------------------------------------------------------------------- 1 | <%- partial('_partial/archive', {pagination: config.tag}) %> -------------------------------------------------------------------------------- /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 | }); -------------------------------------------------------------------------------- /source/css/_base/font.styl: -------------------------------------------------------------------------------- 1 | /*! custom Font*/ 2 | font-url(filename) 3 | return '../font/' + filename 4 | 5 | customfont(family, filename) 6 | @font-face 7 | font-family family 8 | font-weight normal 9 | font-style normal 10 | src url(font-url(filename + '.eot')) 11 | src url(font-url(filename + '.eot?#iefix')) format('embedded-opentype'), 12 | url(font-url(filename + '.svg#'+ family)) format('svg'), 13 | url(font-url(filename + '.woff')) format('woff'), 14 | url(font-url(filename + '.ttf')) format('truetype') 15 | 16 | customfont(font-custom-family,font-custom-filename) 17 | 18 | /*! icon Font */ 19 | iconfont(family, filename,font-icon-version) 20 | @font-face 21 | font-family family 22 | font-style normal 23 | font-weight normal 24 | src url(font-url(filename + ".eot?v=#" + font-icon-version)) 25 | src url(font-url(filename + ".eot?#iefix&v=#" + font-icon-version)) format("embedded-opentype"), 26 | url(font-url(filename + ".woff?v=#" + font-icon-version)) format("woff"), 27 | url(font-url(filename + ".ttf?v=#" + font-icon-version)) format("truetype"), 28 | url(font-url(filename + ".svg#fontawesomeregular?v=#" + font-icon-version)) format("svg") 29 | 30 | iconfont(font-icon-family,font-icon-filename,font-icon-version) 31 | 32 | customfont(font-icon-diao,font-icon-diao-filename) -------------------------------------------------------------------------------- /source/css/_base/highlight/highlight.styl: -------------------------------------------------------------------------------- 1 | // More theme here http//softwaremaniacs.org/media/soft/highlight/test.html 2 | // Just change those colors 3 | // https//github.com/chriskempson/tomorrow-theme 4 | 5 | @require "theme" 6 | 7 | highlight-font-size = 0.9em 8 | 9 | $code-block 10 | background highlight-background 11 | margin 0.5em 0 12 | padding 0.5em 2% 13 | color highlight-foreground 14 | line-height line-height 15 | font-size 0.8em 16 | -webkit-border-radius 0.35em 17 | border-radius 0.35em 18 | word-wrap break-word 19 | @media phone 20 | font-size highlight-font-size 21 | 22 | $line-numbers 23 | color highlight-line-numbers 24 | font-size 0.4em 25 | @media phone 26 | font-size highlight-font-size 27 | line-height line-height 28 | 29 | .article-content 30 | pre 31 | font-family font-mono 32 | @extend $code-block 33 | .highlight 34 | @extend $code-block 35 | overflow auto 36 | font-size 0.4em 37 | @media phone 38 | font-size highlight-font-size 39 | pre 40 | @extend $code-block 41 | border none 42 | margin 0 43 | padding 0 44 | table 45 | margin 0 46 | width auto 47 | td 48 | border none 49 | padding 0 50 | figcaption 51 | clearfix() 52 | font-size 0.85em 53 | text-align left 54 | color highlight-comment 55 | line-height 1em 56 | padding 0.5em 0 57 | margin-bottom 0.5em 58 | a 59 | float right 60 | .gutter pre 61 | @extend $line-numbers 62 | text-align right 63 | padding-right 1.5em 64 | .line 65 | height: 20px 66 | .gist 67 | margin 0.5em 0 68 | background highlight-background 69 | padding 1em 2% 70 | -webkit-border-radius 0.35em 71 | border-radius 0.35em 72 | .gist-file 73 | border none 74 | font-family font-mono 75 | margin 0 76 | .gist-data 77 | background none 78 | border none 79 | .line-numbers 80 | @extend $line-numbers 81 | background none 82 | border none 83 | padding 0 1.5em 0 0 84 | .line-data 85 | padding 0 !important 86 | .highlight 87 | margin 0 88 | padding 0 89 | border none 90 | background highlight-background 91 | .gist-meta 92 | background highlight-background 93 | color highlight-comment 94 | font 0.85em font-serif 95 | text-shadow 0 0 96 | padding 0 97 | margin-top 1em 98 | a 99 | color color-blue 100 | font-weight normal 101 | &:hover 102 | color color-theme 103 | 104 | pre 105 | .comment 106 | .title 107 | color highlight-comment 108 | .variable 109 | .attribute 110 | .tag 111 | .regexp 112 | .ruby .constant 113 | .xml .tag .title 114 | .xml .pi 115 | .xml .doctype 116 | .html .doctype 117 | .css .id 118 | .css .class 119 | .css .pseudo 120 | color highlight-red 121 | .number 122 | .preprocessor 123 | .built_in 124 | .literal 125 | .params 126 | .constant 127 | color highlight-orange 128 | .class 129 | .ruby .class .title 130 | .css .rules .attribute 131 | color highlight-green 132 | .string 133 | .value 134 | .inheritance 135 | .header 136 | .ruby .symbol 137 | .xml .cdata 138 | color highlight-green 139 | .css .hexcolor 140 | color highlight-aqua 141 | .function 142 | .python .decorator 143 | .python .title 144 | .ruby .function .title 145 | .ruby .title .keyword 146 | .perl .sub 147 | .javascript .title 148 | .coffeescript .title 149 | color highlight-blue 150 | .keyword 151 | .javascript .function 152 | color highlight-purple 153 | -------------------------------------------------------------------------------- /source/css/_base/highlight/theme.styl: -------------------------------------------------------------------------------- 1 | $theme_config = hexo-config("highlight_theme") 2 | 3 | if $theme_config == "default" 4 | highlight-background = #eee 5 | highlight-current-line = #efefef 6 | highlight-line-numbers = #999 7 | highlight-selection = #d6d6d6 8 | highlight-foreground = #4d4d4c 9 | highlight-comment = #8e908c 10 | highlight-red = #c82829 11 | highlight-orange = #f5871f 12 | highlight-yellow = #eab700 13 | highlight-green = #718c00 14 | highlight-aqua = #3e999f 15 | highlight-blue = #4271ae 16 | highlight-purple = #8959a8 17 | 18 | if $theme_config == "night" 19 | highlight-background = #2d2d2d 20 | highlight-current-line = #393939 21 | highlight-line-numbers = #666 22 | highlight-selection = #515151 23 | highlight-foreground = #cccccc 24 | highlight-comment = #999999 25 | highlight-red = #f2777a 26 | highlight-orange = #f99157 27 | highlight-yellow = #ffcc66 28 | highlight-green = #99cc99 29 | highlight-aqua = #66cccc 30 | highlight-blue = #6699cc 31 | highlight-purple = #cc99cc -------------------------------------------------------------------------------- /source/css/_base/public.styl: -------------------------------------------------------------------------------- 1 | //public method 2 | absolute-center(width, height = width) 3 | width width 4 | height height 5 | position absolute 6 | top 50% 7 | left 50% 8 | margin-top width * -0.5 9 | margin-left height * -0.5 10 | 11 | font-smoothing() 12 | -webkit-font-smoothing antialiased 13 | -moz-osx-font-smoothing grayscale 14 | 15 | /*! Public style */ 16 | * 17 | -webkit-margin-before 0 18 | -webkit-margin-after 0 19 | 20 | body 21 | background color-background 22 | font-family font-default 23 | font-size font-size 24 | color color-font 25 | line-height line-height 26 | min-height: 100vh 27 | display: -webkit-flex 28 | display: flex 29 | -webkit-flex-direction: column 30 | flex-direction: column 31 | 32 | 33 | iframe 34 | margin-top 10px 35 | 36 | small 37 | font-size 80% 38 | 39 | sub,sup 40 | font-size 75% 41 | line-height 0 42 | position relative 43 | vertical-align baseline 44 | 45 | sup 46 | top -0.5em 47 | padding-left 0.3em 48 | 49 | sub 50 | bottom -0.25em 51 | 52 | a 53 | text-decoration none 54 | color color-font 55 | &:hover,&:focus 56 | outline 0 57 | text-decoration none 58 | transition color .25s,background .5s 59 | &:hover:before 60 | transition color .25s,background .5s 61 | 62 | input:focus 63 | outline none 64 | 65 | input, button 66 | margin: 0 67 | padding: 0 68 | &::-moz-focus-inner 69 | border: 0 70 | padding: 0 71 | 72 | h1 73 | font-size 1.5em 74 | 75 | .fa 76 | display inline-block 77 | font-family FontAwesome 78 | font-style normal 79 | font-weight normal 80 | line-height 1 81 | -webkit-font-smoothing antialiased 82 | -moz-osx-font-smoothing grayscale 83 | 84 | .clearfix 85 | clearfix() 86 | 87 | ::-webkit-input-placeholder { color:color-white; padding: 2px 0 0 4px;} 88 | ::-moz-placeholder { color:color-white; padding: 2px 0 0 4px;} 89 | :-ms-input-placeholder { color:color-white; padding: 2px 0 0 4px;} 90 | ::-webkit-input-placeholder::before{font-family:font-icon-family;font-smoothing();content: "\f002";padding-right: 4px;} 91 | ::-moz-placeholder:before{font-family:font-icon-family;font-smoothing();content: "\f002";padding-right: 4px;} 92 | :-ms-input-placeholder::before{font-family:font-icon-family;font-smoothing();content: "\f002";padding-right: 4px;} 93 | 94 | input[type="search"]::-webkit-search-cancel-button, 95 | input[type="search"]::-webkit-search-decoration 96 | -webkit-appearance none 97 | ::-webkit-search-cancel-button:after 98 | font-family font-icon-family 99 | font-smoothing() 100 | content '\f00d' 101 | color color-white 102 | padding-right 4px 103 | 104 | /*! css3 animate */ 105 | .animated 106 | animation-fill-mode both 107 | animation-duration 1s 108 | 109 | @-webkit-keyframes fadeIn 110 | 0% 111 | opacity 0 112 | 100% 113 | opacity 1 114 | 115 | .fadeIn 116 | animation-name fadeIn 117 | 118 | @keyframes fadeInDown 119 | 0% 120 | opacity 0 121 | transform translateY(-20px) 122 | 100% 123 | opacity 1 124 | transform translateY(0) 125 | 126 | .fadeOut 127 | animation-name fadeOut 128 | 129 | -------------------------------------------------------------------------------- /source/css/_base/variable.styl: -------------------------------------------------------------------------------- 1 | //Color 2 | _color-theme = convert(hexo-config("theme_color.theme")) 3 | if(_color-theme is a 'rgba') 4 | color-theme = _color-theme 5 | else 6 | color-theme = #2ca6cb 7 | 8 | color-background = #ddd 9 | color-font = #817C7C 10 | color-content = #413F3F 11 | color-white = #ffffff 12 | color-blue = #2ca6cb 13 | color-orange = #ea6753 14 | color-font-nav = #E9CD4C 15 | color-section = #fafafa 16 | color-footer = #1f1f1f 17 | color-gray = #CCC 18 | color-meta = #808080 19 | color-heading = #333333 20 | color-quote = #f5f5f5 21 | color-code = #eee 22 | color-twitter = #00aced 23 | color-facebook = #3b5998 24 | color-weibo = #c64d3e 25 | color-google = #dd4b39 26 | color-qrcode= #49ae0f 27 | color-renren= #369 28 | color-top = #762c54 29 | 30 | //Media 31 | width-phone = 568px 32 | width-mini = 768px 33 | width-tablet = 1024px 34 | width-desktop = 1560px 35 | phone = "only screen and (min-width: " + width-phone + ")" 36 | mini= "only screen and (min-width: " + width-mini + ")" 37 | tablet = "only screen and (min-width: " + width-tablet + ")" 38 | desktop = "only screen and (min-width: " + width-desktop + ")" 39 | phonemax = "only screen and (max-width: " + width-phone + ")" 40 | tabletmax = "only screen and (max-width: " + width-tablet + ")" 41 | 42 | //Font 43 | font-default = "Helvetica Neue", "Helvetica","Microsoft YaHei", "WenQuanYi Micro Hei",Arial, sans-serif 44 | font-serif = "Georgia", serif 45 | font-mono = Monaco, Menlo, Consolas, Courier New, monospace 46 | font-custom-family = "covered_by_your_graceregular" 47 | font-custom-filename = coveredbyyourgrace-webfont 48 | font-icon-family = "FontAwesome" 49 | font-icon-filename = fontawesome-webfont 50 | font-icon-version = "4.0.3" 51 | font-icon-diao = "fontdiao" 52 | font-icon-diao-filename = "fontdiao" 53 | font-icon-diao-version = "0.0.8" 54 | ShowCustomFont = hexo-config("ShowCustomFont") 55 | font-size = 100% 56 | line-height = 1.5 57 | //image 58 | author-img = hexo-config("author_img") 59 | 60 | //comment 61 | duoshuo = hexo-config("duoshuo_shortname") 62 | 63 | //banner image 64 | banner-img = hexo-config("banner_img") 65 | -------------------------------------------------------------------------------- /source/css/_partial/article.styl: -------------------------------------------------------------------------------- 1 | .post,.page,.link,.photo 2 | background color-section 3 | a 4 | color color-blue 5 | &:hover 6 | color color-orange //color-theme 7 | 8 | article 9 | header.article-info 10 | @media mini 11 | border-bottom 1px solid lighten(color-gray,30%) 12 | >h1 13 | padding 0.2em 3% 14 | font-size font-size+70 15 | line-height line-height 16 | @media tablet 17 | font-size font-size+100 18 | padding-top 0.3em 19 | word-wrap break-word 20 | word-break normal 21 | font-smoothing antialiased 22 | border-left 5px solid color-theme 23 | >p.article-author 24 | padding 0.3em 4% 0.3em 0 25 | text-align right 26 | border-bottom 1px solid lighten(color-gray,30%) 27 | @media mini 28 | float right 29 | border-bottom none 30 | >p.article-time 31 | padding-top 0.5em 32 | font-size 0.8em 33 | text-align center 34 | margin-bottom -2.7em 35 | @media mini 36 | float right 37 | margin-right 1em 38 | padding-top 0.1em 39 | font-size 0.9em 40 | &:before 41 | font-family font-icon-family 42 | font-size font-size+30 43 | content "\f017" 44 | font-smoothing() 45 | .article-content 46 | padding 1.5em 4% 47 | color color-content 48 | font-size font-size 49 | &:before,&:after 50 | content "" 51 | display block 52 | clear both 53 | .kb 54 | padding .1em .6em 55 | border 1px solid color-gray 56 | background-color code-color 57 | color darken(color-gray,30%) 58 | box-shadow 0 1px 0 rgba(0,0,0,0.2),0 0 0 2px color-white inset 59 | border-radius 3px 60 | display inline-block 61 | margin 0 .1em; 62 | text-shadow 0 1px 0 color-white 63 | line-height line-height 64 | white-space nowrap 65 | h1,h2 66 | font-size font-size+80 67 | line-height 1.2em 68 | padding-bottom 0.3em 69 | margin-top 1.5em 70 | border-bottom 2px solid lighten(color-gray,30%) 71 | h3 72 | font-size font-size+40 73 | line-height 1em 74 | margin-top 1.3em 75 | h4,h5,h6 76 | font-size font-size+40 77 | h1,h2,h3,h3,h4,h5,h6 78 | color color-heading 79 | font-smoothing antialiased 80 | >code 81 | color darken(color-gray,20%) 82 | hr 83 | border 1px solid lighten(color-gray,30%) 84 | strong 85 | font-weight bold 86 | em 87 | font-style italic 88 | acronym,abbr 89 | border-bottom 1px dotted 90 | blockquote 91 | border-left .2em solid color-theme 92 | margin 0.65em 0 0.65em 1% 93 | padding-left 1% 94 | line-height line-height 95 | font-size font-size 96 | color color-meta 97 | footer 98 | background color-section 99 | padding 0 100 | margin 0 101 | font-size 80% 102 | line-height 1em 103 | cite 104 | font-style italic 105 | padding-left 0.5em 106 | ul,ol 107 | padding-left 1.5em 108 | font-size font-size 109 | padding-top 0.7em 110 | @media mini 111 | padding-left 1.5em 112 | ul li 113 | list-style disc 114 | text-align match-parent 115 | //margin 0.5em 0 116 | ol li 117 | list-style-type decimal 118 | //margin 0.5em 0 119 | dl dt 120 | font-weight blod 121 | ul li>code,ol li>code,p code,strong code,em code,table th>code,table td>code 122 | font-family font-mono 123 | background color-code 124 | color #D14 125 | border 1px solid darken(color-code,10%) 126 | padding 0 5px 127 | margin 0 2px 128 | font-size 90% 129 | white-space nowrap 130 | text-shadow 0 1px #fff 131 | -webkit-border-radius 0.25em 132 | border-radius 0.25em 133 | p 134 | line-height line-height 135 | margin-top 0.7em 136 | @media tablet 137 | margin-top 1em 138 | img,video,figure img 139 | max-width 100% 140 | //display block 141 | //margin auto 142 | height auto 143 | vertical-align middle 144 | padding-top 0.5em 145 | @media tablet 146 | padding-top 0.7em 147 | .img-topic,.img-logo 148 | display none 149 | .img-center 150 | display block 151 | margin auto 152 | .img-shadow 153 | box-shadow 0 0 2px 3px #ddd 154 | figcaption,.caption 155 | display block 156 | margin-top .3em 157 | color color-meta 158 | position relative 159 | font-size 0.9em 160 | padding-left 1.3em 161 | &:before 162 | content '\f040' 163 | position absolute 164 | font 0.9em font-icon-family 165 | position absolute 166 | left 0 167 | top .3em 168 | .video-container 169 | position relative; 170 | padding-top 56% 171 | height 0 172 | overflow hidden 173 | iframe,object,embed 174 | position absolute 175 | top 0 176 | left 0 177 | width 100% 178 | height 100% 179 | margin-top 0 180 | table 181 | max-width 100% 182 | border-collapse collapse 183 | border-spacing 0 184 | margin-top: 1em 185 | th 186 | font-weight bold 187 | border-bottom 2px solid lighten(color-gray,30%) 188 | padding 0.5em 189 | line-height: 1.3em 190 | td 191 | border-bottom 1px solid lighten(color-gray,30%) 192 | padding 0.5em 193 | line-height: 1.3em 194 | .pullquote 195 | text-align left 196 | width 45% 197 | margin 0 198 | border none 199 | .left 200 | margin-left 0.5em 201 | margin-right 1em 202 | float left 203 | .right 204 | margin-right 0.5em 205 | margin-left 1em 206 | float right 207 | -------------------------------------------------------------------------------- /source/css/_partial/aside.styl: -------------------------------------------------------------------------------- 1 | //button 2 | .openaside 3 | display none 4 | position fixed 5 | right 7.5% 6 | top 260px 7 | a 8 | display block 9 | color color-white 10 | border 1px solid color-white 11 | border-radius 5px 12 | background color-theme 13 | padding 0.2em 0.55em 14 | &::before 15 | font-family font-icon-family 16 | font-smoothing() 17 | content "\f0c9" 18 | 19 | .closeaside 20 | display none 21 | a 22 | color color-theme 23 | &:hover 24 | color color-blue 25 | &::before 26 | font-family font-icon-family 27 | font-smoothing() 28 | content "\f0c9" 29 | @media tablet 30 | display block 31 | position absolute 32 | right 25px 33 | top 22px 34 | 35 | //sidebar 36 | #asidepart 37 | background color-section 38 | margin 1em 0 0 39 | padding 0.5em 2% 1em 40 | @media tablet 41 | position relative 42 | float left 43 | width 18% 44 | margin 2em 0 0 3% 45 | 46 | .asidetitle 47 | font-size 1.1em 48 | color color-blue 49 | padding 0 0 0.3125em 0 50 | border-bottom 0.1875em solid color-gray 51 | a 52 | color color-blue 53 | &:hover 54 | color color-theme 55 | transition color .5s 56 | 57 | //categories 58 | .categorieslist 59 | @media mini 60 | width 45% 61 | float left 62 | margin 0 5% 0 0 63 | @media tablet 64 | width 100% 65 | float none 66 | margin 1em 0 0 67 | li 68 | border-bottom 1px solid color-gray 69 | a 70 | display block 71 | padding 0.5em 5% 72 | &:hover 73 | color color-theme 74 | 75 | //tag 76 | .tagslist 77 | margin 1em 0 0 78 | @media mini 79 | width 45% 80 | float left 81 | margin 0 5% 0 0 82 | @media tablet 83 | width 100% 84 | float none 85 | margin 1em 0 0 86 | ul 87 | padding 0.5em 0 88 | ul li 89 | float left 90 | a 91 | display block 92 | margin 0.3125em 93 | padding 0.125em 0.3125em 94 | background lighten(color-gray, 30%) 95 | &:hover 96 | color color-theme 97 | background lighten(color-gray, 50%) 98 | 99 | //rss 100 | .rsspart 101 | background color-theme 102 | width 100% 103 | @media mini 104 | float left 105 | width 45% 106 | margin 0 5% 0 0 107 | @media tablet 108 | width 100% 109 | float none 110 | margin 1em 0 0 111 | a 112 | color color-white 113 | display block 114 | padding 0.625em 0 115 | text-align center 116 | &:hover 117 | color color-theme 118 | background color-section 119 | &::before 120 | font-family font-icon-family 121 | font-smoothing() 122 | padding-right 0.5em 123 | content "\f09e" 124 | 125 | //archive 126 | .archiveslist 127 | padding-right 1em 128 | @media tablet 129 | width 100% 130 | float none 131 | margin 1em 0 0 132 | li 133 | font-size 0.8em 134 | line-height 2em 135 | a 136 | padding 0.5em 137 | &:hover 138 | color color-theme 139 | transition color .25s 140 | .archive-list-count 141 | &:before 142 | content "(" 143 | &:after 144 | content ")" 145 | 146 | .archive-list 147 | padding 0.5em 0 148 | 149 | .archive-float 150 | ul 151 | padding 0 152 | li 153 | float left 154 | margin 0.3em 155 | @media tablet 156 | float none 157 | 158 | //tagcloud 159 | .tagcloudlist 160 | @media mini 161 | width 45% 162 | float left 163 | margin 0 5% 0 0 164 | @media tablet 165 | width 100% 166 | float none 167 | margin 1em 0 0 168 | .tagcloudlist 169 | a 170 | padding 0.2em 171 | display block 172 | float left 173 | &:hover 174 | color color-theme 175 | transition color .25s 176 | 177 | //links 178 | .linkslist 179 | margin-top 0.5em 180 | @media mini 181 | width 45% 182 | float left 183 | margin 0 5% 0 0 184 | @media tablet 185 | width 100% 186 | float none 187 | margin 1em 0 0 188 | ul 189 | padding 0.5em 0 190 | a 191 | font-size 1em 192 | line-height line-height 193 | display block 194 | padding 0 3% 195 | &:hover 196 | color color-theme 197 | transition color .25s 198 | 199 | //weibo 200 | .weiboshow 201 | margin-top 0.5em 202 | @media mini 203 | width 45% 204 | float left 205 | margin 0 5% 0 0 206 | @media tablet 207 | width 100% 208 | float none 209 | margin 1em 0 0 210 | iframe 211 | padding 0.5em 0 212 | 213 | //douban 214 | .doubanshow 215 | margin-top 0.5em 216 | @media mini 217 | width 45% 218 | float left 219 | margin 0 5% 0 0 220 | @media tablet 221 | width 100% 222 | float none 223 | margin 1em 0 0 224 | div 225 | padding 0.5em 0 226 | 227 | //github-card 228 | .github-card 229 | margin-top 1.5em 230 | @media mini 231 | width 45% 232 | float left 233 | margin 0 5% 0 0 234 | @media tablet 235 | width 100% 236 | float none 237 | margin 1em 0 0 238 | div 239 | padding 0.5em 0 240 | -------------------------------------------------------------------------------- /source/css/_partial/duoshuo.styl: -------------------------------------------------------------------------------- 1 | .ds-highlight 2 | color color-blue !important 3 | &:hover 4 | color color-theme !important 5 | 6 | .ds-avatar 7 | background color-section !important 8 | img 9 | width 54px !important 10 | height 54px !important 11 | border 2px solid lighten(color-gray,30%) !important 12 | border-radius 27px !important 13 | transition transform .5s ease-out !important 14 | &:hover 15 | transform rotateZ(360deg) !important 16 | box-shadow inset 0 -1px 0 #3333sf !important 17 | 18 | .ds-children .ds-avatar img 19 | width 30px !important 20 | height 30px !important 21 | border-radius 15px !important 22 | transition transform .5s ease-out !important 23 | border 1px solid lighten(color-gray,30%) !important 24 | &:hover 25 | transform rotateZ(360deg) !important 26 | box-shadow inset 0 -1px 0 #3333sf !important 27 | 28 | .ds-replybox img 29 | width 30px !important 30 | height 30px !important 31 | 32 | .ds-comment-body 33 | padding-left 80px !important 34 | 35 | .ds-children .ds-comment-body 36 | padding-left 60px !important 37 | 38 | .ds-post 39 | border-radius none !important 40 | border-top none !important 41 | margin-top 0.5em !important 42 | 43 | .ds-comments 44 | padding-bottom 1em !important 45 | 46 | textarea 47 | color color-font !important 48 | background color-white !important 49 | &::-webkit-input-placeholder 50 | color color-font !important 51 | &::-moz-placeholder 52 | color color-font !important -------------------------------------------------------------------------------- /source/css/_partial/footer.styl: -------------------------------------------------------------------------------- 1 | footer 2 | margin-top 1em 3 | background color-footer 4 | padding 0 2% 0.5em 5 | 6 | #footer 7 | width 95% 8 | margin 0 auto 9 | overflow hidden 10 | position relative 11 | .line 12 | width 100% 13 | height 14em 14 | margin 0 auto 15 | @media mini 16 | width 10em 17 | float left 18 | position relative 19 | span 20 | display block 21 | width 0.5em 22 | height 6.25em 23 | border-right 0.125em solid color-white 24 | margin 0 auto 25 | @media mini 26 | position absolute 27 | left 3em 28 | margin 0 0 1.5em 29 | 30 | .author 31 | width w=(110/16)em 32 | height w 33 | margin 0 auto 34 | background no-repeat url("../"+author-img) left top 35 | background-size w w 36 | border-radius (w/2) 37 | transition transform 2s ease-out 38 | &:hover 39 | transform rotateZ(360deg) 40 | @media mini 41 | position: absolute; 42 | top 6em 43 | margin 0 0 1.5em 44 | 45 | .info 46 | if ShowCustomFont 47 | font-family font-custom-family 48 | font-smoothing() 49 | font-size font-size+50 50 | line-height 1.3em 51 | else 52 | font-family font-default 53 | line-height line-height+0.15 54 | width 90% 55 | margin 0 auto 56 | color color-white 57 | @media mini 58 | margin 4.5em 0 2em 0 59 | float left 60 | width 75% 61 | 62 | .social-font 63 | width 100% 64 | margin 0 auto 65 | float left 66 | padding-left 3% 67 | @media phone 68 | padding-left 20% 69 | @media mini 70 | width 15em 71 | position absolute 72 | right -2em 73 | top 3em 74 | a 75 | float left 76 | display block 77 | width 14% 78 | color color-white 79 | font-size font-size+85 80 | padding 0.5em 81 | @media tablet 82 | padding 0.3em 83 | &:hover:before 84 | color color-blue 85 | 86 | .icon-weibo:before,.icon-github:before,.icon-twitter:before,.icon-facebook:before,.icon-stack-overflow:before,.icon-email:before,.icon-google_plus:before,.icon-linkedin:before 87 | font-family font-icon-family 88 | font-smoothing() 89 | 90 | .icon-weibo:before 91 | content "\f18a" 92 | .icon-github:before 93 | content "\f09b" 94 | .icon-twitter:before 95 | content "\f099" 96 | .icon-facebook:before 97 | content "\f09a" 98 | .icon-stack-overflow:before 99 | content "\f16c" 100 | .icon-email:before 101 | content: "\f003" 102 | .icon-google_plus:before 103 | content "\f0d5" 104 | .icon-linkedin:before 105 | content "\f08c" 106 | .icon-douban:before 107 | font-family font-icon-diao 108 | font-smoothing() 109 | content "\f111" 110 | .icon-zhihu:before 111 | font-family font-icon-diao 112 | font-smoothing() 113 | content "\f142" 114 | 115 | 116 | 117 | .copyright 118 | if ShowCustomFont 119 | font-smoothing() 120 | font-family font-custom-family 121 | else 122 | font-family font-default 123 | font-size 0.6em 124 | width 100% 125 | color color-white 126 | text-align center 127 | @media mini 128 | float left 129 | a 130 | color color-blue 131 | &:hover 132 | color color-blue 133 | text-decoration underline 134 | 135 | .cc-license 136 | width 100% 137 | float left 138 | text-align center 139 | .cc-opacity 140 | opacity 0.7 141 | border-bottom none 142 | &:hover 143 | opacity 0.9 144 | img 145 | display inline-block 146 | -------------------------------------------------------------------------------- /source/css/_partial/gallery.styl: -------------------------------------------------------------------------------- 1 | .gallery 2 | overflow hidden 3 | position relative 4 | &:hover 5 | .control 6 | opacity 1 7 | 8 | img 9 | min-width 100% 10 | max-width 100% 11 | height auto 12 | position absolute 13 | top 0 14 | left 0 15 | opacity 0 16 | 17 | .control 18 | opacity 0 19 | transition 0.3s 20 | 21 | .prev, .next 22 | position absolute 23 | top 0 24 | width 50% 25 | height 100% 26 | cursor pointer 27 | &:before 28 | position absolute 29 | font 24px/1 font-icon-family 30 | text-align center 31 | width 24px 32 | text-shadow 0 0 15px rgba(0,0,0,0.5) 33 | color #fff 34 | margin-top -12px 35 | top 50% 36 | 37 | .prev 38 | left 0 39 | &:before 40 | content '\f053' 41 | left 10px 42 | 43 | .next 44 | right 0 45 | &:before 46 | content '\f054' 47 | right 10px -------------------------------------------------------------------------------- /source/css/_partial/header.styl: -------------------------------------------------------------------------------- 1 | body 2 | >header 3 | width 100% 4 | box-shadow 2px 4px 5px hsla(0,1%,1%,.2) 5 | if(banner_img) 6 | background url("../"+banner-img) center color-theme 7 | else 8 | background color-theme 9 | color color-white 10 | padding 1em 0 0.8em 11 | @media tablet 12 | padding 1.8em 0 1.5em 13 | >div 14 | width 95% 15 | margin 0 auto 16 | position relative 17 | overflow hidden 18 | @media tablet 19 | width 93% 20 | a 21 | display block 22 | color color-white 23 | 24 | #imglogo 25 | float left 26 | width 4em 27 | height 4em 28 | @media mini 29 | width @width+1 30 | @media tablet 31 | width @width+1.5 32 | img 33 | width 4em 34 | @media mini 35 | width @width+1 36 | @media tablet 37 | width @width+1.5 38 | 39 | #textlogo 40 | float left 41 | width 75% 42 | margin-left 0.5em 43 | h1.site-name 44 | width 86% 45 | if ShowCustomFont 46 | font-family font-custom-family 47 | font-size font-size+100 48 | line-height line-height 49 | font-smoothing() 50 | @media mini 51 | font-size font-size+140 52 | @media tablet 53 | font-size font-size+180 54 | else 55 | font-family font-default 56 | font-size font-size+60 57 | line-height line-height+0.4 58 | font-weight normal 59 | @media mini 60 | font-size font-size+90 61 | @media tablet 62 | font-size font-size+120 63 | h2.blog-motto 64 | font-size 0.7em 65 | font-weight normal 66 | @media mini 67 | font-size font-size 68 | @media tablet 69 | font-size font-size+10 70 | 71 | .navbar 72 | position absolute 73 | width 2em 74 | right 0em 75 | top 1em 76 | padding 0.5em 77 | @media tablet 78 | display none 79 | 80 | .navbutton::before 81 | font-family font-icon-family 82 | font-smoothing() 83 | content "\f0c9" 84 | 85 | .navmobile::before 86 | padding-left 1em 87 | 88 | header nav 89 | float left 90 | width 100% 91 | @media phone 92 | width 50% 93 | @media tablet 94 | float right 95 | width auto 96 | margin-top 1em 97 | max-height none 98 | font-size font-size+12.5 99 | padding-top 0.5em 100 | max-height 0.01em 101 | transition max-height 1s ease-out 102 | ul 103 | @media tablet 104 | float right 105 | ul li 106 | @media tablet 107 | float left 108 | ul li a 109 | padding 0.2em 0 0.2em 1em 110 | @media tablet 111 | padding 0.2em 1.5em 112 | &:hover 113 | background saturate(darken(color-theme, 25%), 10%) 114 | color color-font-nav 115 | 116 | .shownav 117 | max-height 40em 118 | 119 | .search 120 | padding 0.1em 0 0 1em 121 | input 122 | -webkit-appearance textfield 123 | font-size 0.87em 124 | line-height line-height+0.2 125 | border 1px solid color-white 126 | color color-white 127 | background transparent 128 | width 80% 129 | padding-left 0.5em 130 | @media tablet 131 | width 8em 132 | transition .5s width 133 | &:focus 134 | width 15em 135 | label 136 | display none 137 | -------------------------------------------------------------------------------- /source/css/_partial/helper.styl: -------------------------------------------------------------------------------- 1 | footer.article-footer 2 | background color-section 3 | padding 0 4% 4 | margin 0 5 | border-top 1px solid lighten(color-gray,30%) 6 | 7 | //share 8 | .article-share 9 | float right 10 | width 100% 11 | @media phone 12 | width 60% 13 | @media mini 14 | width 16.5em 15 | 16 | .article-share .share-jiathis 17 | padding 0.5em 0 18 | margin-top 0.3em 19 | 20 | .share 21 | span 22 | float right 23 | height 3em 24 | width 1em 25 | margin-right 0.5em 26 | position relative 27 | color lighten(color-gray,20%) 28 | &:before 29 | font-family font-icon-family 30 | content "\f064" 31 | font-size 1em 32 | font-smoothing() 33 | absolute-center(1.5em) 34 | a 35 | float right 36 | width 3em 37 | height 3em 38 | display block 39 | position relative 40 | &:before 41 | font-size 1.2em 42 | font-family font-icon-family 43 | text-align center 44 | color color-font 45 | font-smoothing() 46 | absolute-center(1.5em) 47 | &:hover:before 48 | color color-white 49 | 50 | .article-share-twitter 51 | &:before 52 | content "\f099" 53 | &:hover 54 | background color-twitter 55 | text-shadow 0 1px darken(color-twitter, 20%) 56 | 57 | .article-share-facebook 58 | &:before 59 | content "\f09a" 60 | &:hover 61 | background color-facebook 62 | text-shadow 0 1px darken(color-facebook, 20%) 63 | 64 | .article-share-weibo 65 | &:before 66 | content "\f18a" 67 | &:hover 68 | background color-weibo 69 | text-shadow 0 1px darken(color-weibo, 20%) 70 | 71 | .article-share-qrcode 72 | &:before 73 | font-family font-icon-diao !important 74 | content "\f132" 75 | &:hover 76 | background color-qrcode 77 | text-shadow 0 1px darken(color-qrcode, 20%) 78 | 79 | .article-share-renren 80 | &:before 81 | content "\f18b" 82 | &:hover 83 | background color-renren 84 | text-shadow 0 1px darken(color-renren, 20%) 85 | 86 | 87 | .article-back-to-top 88 | &:before 89 | content "\f062" 90 | &:hover 91 | background color-top 92 | text-shadow 0 1px darken(color-top, 20%) 93 | 94 | //qrcode 95 | .hoverqrcode 96 | background color-white 97 | border 3px solid #2ca6cb 98 | border-radius 10px 99 | display inline-block 100 | position absolute 101 | 102 | .overlay 103 | display none !important 104 | 105 | //comments-count 106 | .comments-count 107 | color lighten(color-gray,20%) 108 | margin-top 0.3em 109 | padding 0.5em 0 110 | float right 111 | span 112 | &:before 113 | font-family font-icon-family 114 | font-smoothing() 115 | content "\f075" 116 | @media phonemax 117 | float left 118 | 119 | .comments-count-link 120 | padding 0.5em 121 | margin 0 0.3em 122 | &:hover 123 | color color-white !important 124 | background color-blue 125 | 126 | 127 | //tags&categories 128 | .article-catetags 129 | @media mini 130 | //width 60% 131 | .article-tags,.article-categories 132 | padding 0.5em 0 133 | float left 134 | /**width 100%**/ 135 | @media phonemax 136 | margin-right 1em !important 137 | //width 100% 138 | 139 | .article-tags 140 | color lighten(color-gray,20%) 141 | @media phonemax 142 | margin-left 0 143 | span 144 | position relative 145 | float left 146 | width 1em 147 | height 2em 148 | margin-right 0.5em 149 | &:before 150 | font-family font-icon-family 151 | font-smoothing() 152 | absolute-center(1.2em) 153 | content "\f02c" 154 | a 155 | float left 156 | padding 0 0.3em 157 | margin 0.3em 158 | background lighten(color-gray,50%) 159 | &:hover 160 | color color-white 161 | background color-blue 162 | 163 | .article-categories 164 | color lighten(color-gray,20%) 165 | margin-top 0.3em 166 | margin-right 3em 167 | span 168 | &:before 169 | font-family font-icon-family 170 | font-smoothing() 171 | content "\f07b" 172 | 173 | .article-category-link 174 | padding 0.5em 175 | margin 0 0.3em 176 | &:hover 177 | color color-white !important 178 | background color-blue 179 | 180 | //page nav 181 | .article-nav 182 | padding 0 10% 183 | @media mini 184 | padding 0 4% 185 | strong 186 | font-size 1em 187 | font-weight bold 188 | a 189 | display block 190 | overflow hidden 191 | .prev,.next 192 | a 193 | &:hover 194 | background color-blue 195 | color color-white 196 | .prev 197 | width 100% 198 | float left 199 | strong 200 | padding-left 1.8em 201 | span:before 202 | font-family font-icon-family 203 | font-smoothing() 204 | content "\f053" 205 | padding-right 0.5em 206 | @media mini 207 | width 45% 208 | float left 209 | .next 210 | width 100% 211 | float left 212 | text-align left 213 | strong 214 | padding-left 1.5em 215 | span:before 216 | font-family font-icon-family 217 | font-smoothing() 218 | content "\f054" 219 | padding-right 0.5em 220 | @media mini 221 | width 45% 222 | float right 223 | text-align right 224 | strong 225 | padding-right 1.8em 226 | span:before 227 | content none 228 | span:after 229 | font-family font-icon-family 230 | font-smoothing() 231 | content "\f054" 232 | padding-left 0.5em 233 | 234 | //comment 235 | section.comment 236 | padding 0 4% 237 | margin 1em 0 238 | 239 | //toc 240 | .toc-article 241 | background color-code 242 | margin 1.6em 0 0 2em 243 | padding 1em 244 | -webkit-border-radius 4px 245 | border-radius 4px 246 | border 1px solid #ddd 247 | strong 248 | padding 0.3em 0 249 | ul li 250 | list-style disc 251 | text-align match-parent 252 | margin 0.5em 0 253 | ol li 254 | list-style-type decimal 255 | margin 0.5em 0 256 | 257 | #toc 258 | line-height 1.3em 259 | font-size 0.8em 260 | float right 261 | .toc 262 | padding 0 263 | li 264 | list-style-type none 265 | .toc-child 266 | padding-left 1.5em 267 | padding-top 0 268 | 269 | #toc.toc-aside 270 | display none 271 | width 13% 272 | position fixed 273 | right 2% 274 | top 320px 275 | overflow hidden 276 | line-height 1.5em 277 | font-size 1em 278 | color color-heading 279 | opacity .6 280 | transition opacity 1s ease-out 281 | strong 282 | padding 0.3em 0 283 | color color-font 284 | &:hover 285 | transition opacity .3s ease-out 286 | opacity 1 287 | a 288 | transition color 1s ease-out 289 | &:hover 290 | color color-theme 291 | transition color .3s ease-out 292 | .active 293 | color color-theme !important 294 | -------------------------------------------------------------------------------- /source/css/_partial/index.styl: -------------------------------------------------------------------------------- 1 | /*! index layout */ 2 | #container 3 | -webkit-flex: 1 4 | width 95% 5 | margin 0 auto 6 | overflow hidden 7 | @media mini 8 | width 96% 9 | @media tablet 10 | width 94% 11 | @media desktop 12 | width 82% 13 | 14 | #main 15 | margin 1em 0 0 16 | line-height line-height+0.3 17 | @media tablet 18 | margin 2em 0 0 19 | width 75% 20 | float left 21 | transition margin 0.5s ease-out 22 | section.post 23 | background color-section 24 | margin-bottom 0.125em 25 | a 26 | display block 27 | border-left 0.5em solid color-gray 28 | transition border-left .45s 29 | padding 0.5em 30 | @media mini 31 | padding 1em 32 | &:hover 33 | border-left 0.5em solid color-theme 34 | h1 35 | color color-blue 36 | line-height line-height+0.5 37 | p 38 | color color-font 39 | time 40 | color color-font 41 | display block 42 | margin 0.5em 0 43 | font-size 0.9em 44 | article.post-expand 45 | background color-section 46 | margin-bottom 3.5em 47 | //-webkit-box-shadow: 2px 2px 3px darken(color-background,20%) 48 | //box-shadow: 2px 2px 3px darken(color-background,20%) 49 | //-webkit-border-radius: 3px 50 | //border-radius: 3px 51 | .img-logo 52 | max-width 180px 53 | max-height 96px 54 | display block !important 55 | margin-right .7em 56 | margin-left .7em 57 | padding 0 58 | float right 59 | clear right 60 | .img-topic 61 | max-width 300px 62 | max-height 1800px 63 | display block !important 64 | margin-left .7em 65 | margin-right .7em 66 | padding 0 67 | float right 68 | clear right 69 | .article-more-link 70 | //margin-top: 1.5em 71 | //padding-top: 1em 72 | //border-top: 2px solid #ddd 73 | a 74 | display: inline-block 75 | line-height: 1em 76 | padding: 6px 15px 77 | border-radius: 15px 78 | background color-background 79 | color color-font 80 | //text-shadow: 0 1px #fff 81 | text-decoration: none 82 | &:hover 83 | background: color-theme 84 | color: #fff 85 | text-decoration: none 86 | //text-shadow: 0 1px darken(color-theme, 20%) 87 | #archive-page 88 | section.post 89 | a 90 | font-size 0.9em 91 | padding 0.5em !important 92 | time 93 | @media mini 94 | padding-left 1em 95 | 96 | 97 | 98 | .moveMain 99 | margin-left 10% !important 100 | 101 | .unexpand .prev 102 | border-left 0.5em solid color-gray 103 | &:hover 104 | border-left 0.5em solid color-theme 105 | 106 | #page-nav 107 | background color-section 108 | text-align center 109 | overflow hidden 110 | a 111 | display inline-block 112 | padding 0.5em 1em 113 | a 114 | color color-blue 115 | &:hover 116 | background color-gray 117 | color color-theme 118 | .prev 119 | float left 120 | transition border-left .5s 121 | span:before 122 | font-family font-icon-family 123 | font-smoothing() 124 | content "\f053" 125 | padding-right 0.5em 126 | .next 127 | float right 128 | span:before 129 | font-family font-icon-family 130 | font-smoothing() 131 | content "\f054" 132 | padding-left 0.5em 133 | .page-number 134 | display none 135 | padding 0.5em 1em 136 | @media mini 137 | display inline-block 138 | .current 139 | color darken(color-gray,10%) 140 | font-weight bold 141 | .space 142 | color color-blue 143 | 144 | /*! page layout */ 145 | .page 146 | @media tablet 147 | margin-left 10% !important 148 | 149 | /*! archive layout */ 150 | .category-icon:before,.tag-icon:before,.archive-icon:before 151 | font-family font-icon-family 152 | font-smoothing() 153 | color color-gray 154 | font-size font-size 155 | padding-right 0.3em 156 | 157 | .category-icon:before 158 | content "\f07b" 159 | 160 | .tag-icon:before 161 | content "\f02c" 162 | 163 | .archive-icon:before 164 | content "\f187" 165 | 166 | .archive-title 167 | margin 1em 0 168 | padding 2em 169 | @media tablet 170 | margin 2em 0 171 | width 18.5% 172 | padding-left 0.5% 173 | float left 174 | background color-section 175 | border-left 0.5em solid color-gray 176 | h2 177 | width 90% 178 | color color-blue 179 | font-size font-size+20 180 | a 181 | color color-blue 182 | transition color .5s 183 | &:hover 184 | color color-theme 185 | transition color .5s 186 | .current 187 | color color-orange !important 188 | 189 | .archive-part 190 | @media mini 191 | min-height 200px 192 | @media tablet 193 | //width 78% !important 194 | float right 195 | margin-left 2% !important 196 | section.post 197 | width 100% 198 | time 199 | font-size 1.1em !important 200 | float left 201 | @media phonemax 202 | width 100% 203 | @media phone 204 | width 20% 205 | /* @media mini 206 | float left 207 | width 50% 208 | @media tablet 209 | width 33.333% */ 210 | 211 | .archive-nav 212 | @media mini 213 | width 100% 214 | float left 215 | margin-top 1em 216 | 217 | /*! tags&categories layout */ 218 | .all-list-box 219 | min-height 400px 220 | -------------------------------------------------------------------------------- /source/css/_partial/totop.styl: -------------------------------------------------------------------------------- 1 | #totop 2 | position fixed 3 | bottom 5em 4 | right 1em 5 | cursor pointer 6 | @media tabletmax 7 | display none !important 8 | -------------------------------------------------------------------------------- /source/css/style.styl: -------------------------------------------------------------------------------- 1 | @import 'nib' 2 | global-reset() 3 | @import '_base/variable' 4 | @import '_base/font' 5 | @import '_base/public' 6 | @import '_partial/header' 7 | @import '_partial/index' 8 | @import '_partial/article' 9 | @import '_partial/helper' 10 | @import '_partial/aside' 11 | @import '_partial/footer' 12 | 13 | @import '_base/highlight/highlight' 14 | 15 | if fancybox 16 | @import '_partial/gallery' 17 | 18 | if totop 19 | @import '_partial/totop' -------------------------------------------------------------------------------- /source/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/blank.gif -------------------------------------------------------------------------------- /source/fancybox/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/fancybox_loading.gif -------------------------------------------------------------------------------- /source/fancybox/fancybox_loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/fancybox_loading@2x.gif -------------------------------------------------------------------------------- /source/fancybox/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/fancybox_overlay.png -------------------------------------------------------------------------------- /source/fancybox/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/fancybox_sprite.png -------------------------------------------------------------------------------- /source/fancybox/fancybox_sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/fancybox_sprite@2x.png -------------------------------------------------------------------------------- /source/fancybox/helpers/fancybox_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/fancybox/helpers/fancybox_buttons.png -------------------------------------------------------------------------------- /source/fancybox/helpers/jquery.fancybox-buttons.css: -------------------------------------------------------------------------------- 1 | #fancybox-buttons { 2 | position: fixed; 3 | left: 0; 4 | width: 100%; 5 | z-index: 8050; 6 | } 7 | 8 | #fancybox-buttons.top { 9 | top: 10px; 10 | } 11 | 12 | #fancybox-buttons.bottom { 13 | bottom: 10px; 14 | } 15 | 16 | #fancybox-buttons ul { 17 | display: block; 18 | width: 166px; 19 | height: 30px; 20 | margin: 0 auto; 21 | padding: 0; 22 | list-style: none; 23 | border: 1px solid #111; 24 | border-radius: 3px; 25 | -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); 26 | -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); 27 | box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); 28 | background: rgb(50,50,50); 29 | background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); 30 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); 31 | background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); 32 | background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); 33 | background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); 34 | background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); 35 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); 36 | } 37 | 38 | #fancybox-buttons ul li { 39 | float: left; 40 | margin: 0; 41 | padding: 0; 42 | } 43 | 44 | #fancybox-buttons a { 45 | display: block; 46 | width: 30px; 47 | height: 30px; 48 | text-indent: -9999px; 49 | background-color: transparent; 50 | background-image: url('fancybox_buttons.png'); 51 | background-repeat: no-repeat; 52 | outline: none; 53 | opacity: 0.8; 54 | } 55 | 56 | #fancybox-buttons a:hover { 57 | opacity: 1; 58 | } 59 | 60 | #fancybox-buttons a.btnPrev { 61 | background-position: 5px 0; 62 | } 63 | 64 | #fancybox-buttons a.btnNext { 65 | background-position: -33px 0; 66 | border-right: 1px solid #3e3e3e; 67 | } 68 | 69 | #fancybox-buttons a.btnPlay { 70 | background-position: 0 -30px; 71 | } 72 | 73 | #fancybox-buttons a.btnPlayOn { 74 | background-position: -30px -30px; 75 | } 76 | 77 | #fancybox-buttons a.btnToggle { 78 | background-position: 3px -60px; 79 | border-left: 1px solid #111; 80 | border-right: 1px solid #3e3e3e; 81 | width: 35px 82 | } 83 | 84 | #fancybox-buttons a.btnToggleOn { 85 | background-position: -27px -60px; 86 | } 87 | 88 | #fancybox-buttons a.btnClose { 89 | border-left: 1px solid #111; 90 | width: 35px; 91 | background-position: -56px 0px; 92 | } 93 | 94 | #fancybox-buttons a.btnDisabled { 95 | opacity : 0.4; 96 | cursor: default; 97 | } -------------------------------------------------------------------------------- /source/fancybox/helpers/jquery.fancybox-buttons.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Buttons helper for fancyBox 3 | * version: 1.0.5 (Mon, 15 Oct 2012) 4 | * @requires fancyBox v2.0 or later 5 | * 6 | * Usage: 7 | * $(".fancybox").fancybox({ 8 | * helpers : { 9 | * buttons: { 10 | * position : 'top' 11 | * } 12 | * } 13 | * }); 14 | * 15 | */ 16 | ;(function ($) { 17 | //Shortcut for fancyBox object 18 | var F = $.fancybox; 19 | 20 | //Add helper object 21 | F.helpers.buttons = { 22 | defaults : { 23 | skipSingle : false, // disables if gallery contains single image 24 | position : 'top', // 'top' or 'bottom' 25 | tpl : '
' 26 | }, 27 | 28 | list : null, 29 | buttons: null, 30 | 31 | beforeLoad: function (opts, obj) { 32 | //Remove self if gallery do not have at least two items 33 | 34 | if (opts.skipSingle && obj.group.length < 2) { 35 | obj.helpers.buttons = false; 36 | obj.closeBtn = true; 37 | 38 | return; 39 | } 40 | 41 | //Increase top margin to give space for buttons 42 | obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; 43 | }, 44 | 45 | onPlayStart: function () { 46 | if (this.buttons) { 47 | this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); 48 | } 49 | }, 50 | 51 | onPlayEnd: function () { 52 | if (this.buttons) { 53 | this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); 54 | } 55 | }, 56 | 57 | afterShow: function (opts, obj) { 58 | var buttons = this.buttons; 59 | 60 | if (!buttons) { 61 | this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); 62 | 63 | buttons = { 64 | prev : this.list.find('.btnPrev').click( F.prev ), 65 | next : this.list.find('.btnNext').click( F.next ), 66 | play : this.list.find('.btnPlay').click( F.play ), 67 | toggle : this.list.find('.btnToggle').click( F.toggle ), 68 | close : this.list.find('.btnClose').click( F.close ) 69 | } 70 | } 71 | 72 | //Prev 73 | if (obj.index > 0 || obj.loop) { 74 | buttons.prev.removeClass('btnDisabled'); 75 | } else { 76 | buttons.prev.addClass('btnDisabled'); 77 | } 78 | 79 | //Next / Play 80 | if (obj.loop || obj.index < obj.group.length - 1) { 81 | buttons.next.removeClass('btnDisabled'); 82 | buttons.play.removeClass('btnDisabled'); 83 | 84 | } else { 85 | buttons.next.addClass('btnDisabled'); 86 | buttons.play.addClass('btnDisabled'); 87 | } 88 | 89 | this.buttons = buttons; 90 | 91 | this.onUpdate(opts, obj); 92 | }, 93 | 94 | onUpdate: function (opts, obj) { 95 | var toggle; 96 | 97 | if (!this.buttons) { 98 | return; 99 | } 100 | 101 | toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); 102 | 103 | //Size toggle button 104 | if (obj.canShrink) { 105 | toggle.addClass('btnToggleOn'); 106 | 107 | } else if (!obj.canExpand) { 108 | toggle.addClass('btnDisabled'); 109 | } 110 | }, 111 | 112 | beforeClose: function () { 113 | if (this.list) { 114 | this.list.remove(); 115 | } 116 | 117 | this.list = null; 118 | this.buttons = null; 119 | } 120 | }; 121 | 122 | }(jQuery)); 123 | -------------------------------------------------------------------------------- /source/fancybox/helpers/jquery.fancybox-media.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Media helper for fancyBox 3 | * version: 1.0.6 (Fri, 14 Jun 2013) 4 | * @requires fancyBox v2.0 or later 5 | * 6 | * Usage: 7 | * $(".fancybox").fancybox({ 8 | * helpers : { 9 | * media: true 10 | * } 11 | * }); 12 | * 13 | * Set custom URL parameters: 14 | * $(".fancybox").fancybox({ 15 | * helpers : { 16 | * media: { 17 | * youtube : { 18 | * params : { 19 | * autoplay : 0 20 | * } 21 | * } 22 | * } 23 | * } 24 | * }); 25 | * 26 | * Or: 27 | * $(".fancybox").fancybox({, 28 | * helpers : { 29 | * media: true 30 | * }, 31 | * youtube : { 32 | * autoplay: 0 33 | * } 34 | * }); 35 | * 36 | * Supports: 37 | * 38 | * Youtube 39 | * http://www.youtube.com/watch?v=opj24KnzrWo 40 | * http://www.youtube.com/embed/opj24KnzrWo 41 | * http://youtu.be/opj24KnzrWo 42 | * http://www.youtube-nocookie.com/embed/opj24KnzrWo 43 | * Vimeo 44 | * http://vimeo.com/40648169 45 | * http://vimeo.com/channels/staffpicks/38843628 46 | * http://vimeo.com/groups/surrealism/videos/36516384 47 | * http://player.vimeo.com/video/45074303 48 | * Metacafe 49 | * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ 50 | * http://www.metacafe.com/watch/7635964/ 51 | * Dailymotion 52 | * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people 53 | * Twitvid 54 | * http://twitvid.com/QY7MD 55 | * Twitpic 56 | * http://twitpic.com/7p93st 57 | * Instagram 58 | * http://instagr.am/p/IejkuUGxQn/ 59 | * http://instagram.com/p/IejkuUGxQn/ 60 | * Google maps 61 | * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 62 | * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 63 | * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 64 | */ 65 | ;(function ($) { 66 | "use strict"; 67 | 68 | //Shortcut for fancyBox object 69 | var F = $.fancybox, 70 | format = function( url, rez, params ) { 71 | params = params || ''; 72 | 73 | if ( $.type( params ) === "object" ) { 74 | params = $.param(params, true); 75 | } 76 | 77 | $.each(rez, function(key, value) { 78 | url = url.replace( '$' + key, value || '' ); 79 | }); 80 | 81 | if (params.length) { 82 | url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; 83 | } 84 | 85 | return url; 86 | }; 87 | 88 | //Add helper object 89 | F.helpers.media = { 90 | defaults : { 91 | youtube : { 92 | matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, 93 | params : { 94 | autoplay : 1, 95 | autohide : 1, 96 | fs : 1, 97 | rel : 0, 98 | hd : 1, 99 | wmode : 'opaque', 100 | enablejsapi : 1 101 | }, 102 | type : 'iframe', 103 | url : '//www.youtube.com/embed/$3' 104 | }, 105 | vimeo : { 106 | matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, 107 | params : { 108 | autoplay : 1, 109 | hd : 1, 110 | show_title : 1, 111 | show_byline : 1, 112 | show_portrait : 0, 113 | fullscreen : 1 114 | }, 115 | type : 'iframe', 116 | url : '//player.vimeo.com/video/$1' 117 | }, 118 | metacafe : { 119 | matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, 120 | params : { 121 | autoPlay : 'yes' 122 | }, 123 | type : 'swf', 124 | url : function( rez, params, obj ) { 125 | obj.swf.flashVars = 'playerVars=' + $.param( params, true ); 126 | 127 | return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; 128 | } 129 | }, 130 | dailymotion : { 131 | matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, 132 | params : { 133 | additionalInfos : 0, 134 | autoStart : 1 135 | }, 136 | type : 'swf', 137 | url : '//www.dailymotion.com/swf/video/$1' 138 | }, 139 | twitvid : { 140 | matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, 141 | params : { 142 | autoplay : 0 143 | }, 144 | type : 'iframe', 145 | url : '//www.twitvid.com/embed.php?guid=$1' 146 | }, 147 | twitpic : { 148 | matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, 149 | type : 'image', 150 | url : '//twitpic.com/show/full/$1/' 151 | }, 152 | instagram : { 153 | matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, 154 | type : 'image', 155 | url : '//$1/p/$2/media/?size=l' 156 | }, 157 | google_maps : { 158 | matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, 159 | type : 'iframe', 160 | url : function( rez ) { 161 | return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); 162 | } 163 | } 164 | }, 165 | 166 | beforeLoad : function(opts, obj) { 167 | var url = obj.href || '', 168 | type = false, 169 | what, 170 | item, 171 | rez, 172 | params; 173 | 174 | for (what in opts) { 175 | if (opts.hasOwnProperty(what)) { 176 | item = opts[ what ]; 177 | rez = url.match( item.matcher ); 178 | 179 | if (rez) { 180 | type = item.type; 181 | params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); 182 | 183 | url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); 184 | 185 | break; 186 | } 187 | } 188 | } 189 | 190 | if (type) { 191 | obj.href = url; 192 | obj.type = type; 193 | 194 | obj.autoHeight = false; 195 | } 196 | } 197 | }; 198 | 199 | }(jQuery)); -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /source/fancybox/helpers/jquery.fancybox-thumbs.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Thumbnail helper for fancyBox 3 | * version: 1.0.7 (Mon, 01 Oct 2012) 4 | * @requires fancyBox v2.0 or later 5 | * 6 | * Usage: 7 | * $(".fancybox").fancybox({ 8 | * helpers : { 9 | * thumbs: { 10 | * width : 50, 11 | * height : 50 12 | * } 13 | * } 14 | * }); 15 | * 16 | */ 17 | ;(function ($) { 18 | //Shortcut for fancyBox object 19 | var F = $.fancybox; 20 | 21 | //Add helper object 22 | F.helpers.thumbs = { 23 | defaults : { 24 | width : 50, // thumbnail width 25 | height : 50, // thumbnail height 26 | position : 'bottom', // 'top' or 'bottom' 27 | source : function ( item ) { // function to obtain the URL of the thumbnail image 28 | var href; 29 | 30 | if (item.element) { 31 | href = $(item.element).find('img').attr('src'); 32 | } 33 | 34 | if (!href && item.type === 'image' && item.href) { 35 | href = item.href; 36 | } 37 | 38 | return href; 39 | } 40 | }, 41 | 42 | wrap : null, 43 | list : null, 44 | width : 0, 45 | 46 | init: function (opts, obj) { 47 | var that = this, 48 | list, 49 | thumbWidth = opts.width, 50 | thumbHeight = opts.height, 51 | thumbSource = opts.source; 52 | 53 | //Build list structure 54 | list = ''; 55 | 56 | for (var n = 0; n < obj.group.length; n++) { 57 | list += '
  • '; 58 | } 59 | 60 | this.wrap = $('
    ').addClass(opts.position).appendTo('body'); 61 | this.list = $('').appendTo(this.wrap); 62 | 63 | //Load each thumbnail 64 | $.each(obj.group, function (i) { 65 | var el = obj.group[ i ], 66 | href = thumbSource( el ); 67 | 68 | if (!href) { 69 | return; 70 | } 71 | 72 | $("").load(function () { 73 | var width = this.width, 74 | height = this.height, 75 | widthRatio, heightRatio, parent; 76 | 77 | if (!that.list || !width || !height) { 78 | return; 79 | } 80 | 81 | //Calculate thumbnail width/height and center it 82 | widthRatio = width / thumbWidth; 83 | heightRatio = height / thumbHeight; 84 | 85 | parent = that.list.children().eq(i).find('a'); 86 | 87 | if (widthRatio >= 1 && heightRatio >= 1) { 88 | if (widthRatio > heightRatio) { 89 | width = Math.floor(width / heightRatio); 90 | height = thumbHeight; 91 | 92 | } else { 93 | width = thumbWidth; 94 | height = Math.floor(height / widthRatio); 95 | } 96 | } 97 | 98 | $(this).css({ 99 | width : width, 100 | height : height, 101 | top : Math.floor(thumbHeight / 2 - height / 2), 102 | left : Math.floor(thumbWidth / 2 - width / 2) 103 | }); 104 | 105 | parent.width(thumbWidth).height(thumbHeight); 106 | 107 | $(this).hide().appendTo(parent).fadeIn(300); 108 | 109 | }) 110 | .attr('src', href) 111 | .attr('title', el.title); 112 | }); 113 | 114 | //Set initial width 115 | this.width = this.list.children().eq(0).outerWidth(true); 116 | 117 | this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); 118 | }, 119 | 120 | beforeLoad: function (opts, obj) { 121 | //Remove self if gallery do not have at least two items 122 | if (obj.group.length < 2) { 123 | obj.helpers.thumbs = false; 124 | 125 | return; 126 | } 127 | 128 | //Increase bottom margin to give space for thumbs 129 | obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); 130 | }, 131 | 132 | afterShow: function (opts, obj) { 133 | //Check if exists and create or update list 134 | if (this.list) { 135 | this.onUpdate(opts, obj); 136 | 137 | } else { 138 | this.init(opts, obj); 139 | } 140 | 141 | //Set active element 142 | this.list.children().removeClass('active').eq(obj.index).addClass('active'); 143 | }, 144 | 145 | //Center list 146 | onUpdate: function (opts, obj) { 147 | if (this.list) { 148 | this.list.stop(true).animate({ 149 | 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) 150 | }, 150); 151 | } 152 | }, 153 | 154 | beforeClose: function () { 155 | if (this.wrap) { 156 | this.wrap.remove(); 157 | } 158 | 159 | this.wrap = null; 160 | this.list = null; 161 | this.width = 0; 162 | } 163 | } 164 | 165 | }(jQuery)); -------------------------------------------------------------------------------- /source/fancybox/jquery.fancybox.css: -------------------------------------------------------------------------------- 1 | /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ 2 | .fancybox-wrap, 3 | .fancybox-skin, 4 | .fancybox-outer, 5 | .fancybox-inner, 6 | .fancybox-image, 7 | .fancybox-wrap iframe, 8 | .fancybox-wrap object, 9 | .fancybox-nav, 10 | .fancybox-nav span, 11 | .fancybox-tmp 12 | { 13 | padding: 0; 14 | margin: 0; 15 | border: 0; 16 | outline: none; 17 | vertical-align: top; 18 | } 19 | 20 | .fancybox-wrap { 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | z-index: 8020; 25 | } 26 | 27 | .fancybox-skin { 28 | position: relative; 29 | background: #f9f9f9; 30 | color: #444; 31 | text-shadow: none; 32 | -webkit-border-radius: 4px; 33 | -moz-border-radius: 4px; 34 | border-radius: 4px; 35 | } 36 | 37 | .fancybox-opened { 38 | z-index: 8030; 39 | } 40 | 41 | .fancybox-opened .fancybox-skin { 42 | -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 43 | -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 44 | box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 45 | } 46 | 47 | .fancybox-outer, .fancybox-inner { 48 | position: relative; 49 | } 50 | 51 | .fancybox-inner { 52 | overflow: hidden; 53 | } 54 | 55 | .fancybox-type-iframe .fancybox-inner { 56 | -webkit-overflow-scrolling: touch; 57 | } 58 | 59 | .fancybox-error { 60 | color: #444; 61 | font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 62 | margin: 0; 63 | padding: 15px; 64 | white-space: nowrap; 65 | } 66 | 67 | .fancybox-image, .fancybox-iframe { 68 | display: block; 69 | width: 100%; 70 | height: 100%; 71 | } 72 | 73 | .fancybox-image { 74 | max-width: 100%; 75 | max-height: 100%; 76 | } 77 | 78 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 79 | background-image: url(fancybox_sprite.png); 80 | } 81 | 82 | #fancybox-loading { 83 | position: fixed; 84 | top: 50%; 85 | left: 50%; 86 | margin-top: -22px; 87 | margin-left: -22px; 88 | background-position: 0 -108px; 89 | opacity: 0.8; 90 | cursor: pointer; 91 | z-index: 8060; 92 | } 93 | 94 | #fancybox-loading div { 95 | width: 44px; 96 | height: 44px; 97 | background: url(fancybox_loading.gif) center center no-repeat; 98 | } 99 | 100 | .fancybox-close { 101 | position: absolute; 102 | top: -18px; 103 | right: -18px; 104 | width: 36px; 105 | height: 36px; 106 | cursor: pointer; 107 | z-index: 8040; 108 | } 109 | 110 | .fancybox-nav { 111 | position: absolute; 112 | top: 0; 113 | width: 40%; 114 | height: 100%; 115 | cursor: pointer; 116 | text-decoration: none; 117 | background: transparent url(blank.gif); /* helps IE */ 118 | -webkit-tap-highlight-color: rgba(0,0,0,0); 119 | z-index: 8040; 120 | } 121 | 122 | .fancybox-prev { 123 | left: 0; 124 | } 125 | 126 | .fancybox-next { 127 | right: 0; 128 | } 129 | 130 | .fancybox-nav span { 131 | position: absolute; 132 | top: 50%; 133 | width: 36px; 134 | height: 34px; 135 | margin-top: -18px; 136 | cursor: pointer; 137 | z-index: 8040; 138 | visibility: hidden; 139 | } 140 | 141 | .fancybox-prev span { 142 | left: 10px; 143 | background-position: 0 -36px; 144 | } 145 | 146 | .fancybox-next span { 147 | right: 10px; 148 | background-position: 0 -72px; 149 | } 150 | 151 | .fancybox-nav:hover span { 152 | visibility: visible; 153 | } 154 | 155 | .fancybox-tmp { 156 | position: absolute; 157 | top: -99999px; 158 | left: -99999px; 159 | max-width: 99999px; 160 | max-height: 99999px; 161 | overflow: visible !important; 162 | } 163 | 164 | /* Overlay helper */ 165 | 166 | .fancybox-lock { 167 | overflow: visible !important; 168 | width: auto; 169 | } 170 | 171 | .fancybox-lock body { 172 | overflow: hidden !important; 173 | } 174 | 175 | .fancybox-lock-test { 176 | overflow-y: hidden !important; 177 | } 178 | 179 | .fancybox-overlay { 180 | position: absolute; 181 | top: 0; 182 | left: 0; 183 | overflow: hidden; 184 | display: none; 185 | z-index: 8010; 186 | background: url(fancybox_overlay.png); 187 | } 188 | 189 | .fancybox-overlay-fixed { 190 | position: fixed; 191 | bottom: 0; 192 | right: 0; 193 | } 194 | 195 | .fancybox-lock .fancybox-overlay { 196 | overflow: auto; 197 | overflow-y: scroll; 198 | } 199 | 200 | /* Title helper */ 201 | 202 | .fancybox-title { 203 | visibility: hidden; 204 | font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 205 | position: relative; 206 | text-shadow: none; 207 | z-index: 8050; 208 | } 209 | 210 | .fancybox-opened .fancybox-title { 211 | visibility: visible; 212 | } 213 | 214 | .fancybox-title-float-wrap { 215 | position: absolute; 216 | bottom: 0; 217 | right: 50%; 218 | margin-bottom: -35px; 219 | z-index: 8050; 220 | text-align: center; 221 | } 222 | 223 | .fancybox-title-float-wrap .child { 224 | display: inline-block; 225 | margin-right: -100%; 226 | padding: 2px 20px; 227 | background: transparent; /* Fallback for web browsers that doesn't support RGBa */ 228 | background: rgba(0, 0, 0, 0.8); 229 | -webkit-border-radius: 15px; 230 | -moz-border-radius: 15px; 231 | border-radius: 15px; 232 | text-shadow: 0 1px 2px #222; 233 | color: #FFF; 234 | font-weight: bold; 235 | line-height: 24px; 236 | white-space: nowrap; 237 | } 238 | 239 | .fancybox-title-outside-wrap { 240 | position: relative; 241 | margin-top: 10px; 242 | color: #fff; 243 | } 244 | 245 | .fancybox-title-inside-wrap { 246 | padding-top: 10px; 247 | } 248 | 249 | .fancybox-title-over-wrap { 250 | position: absolute; 251 | bottom: 0; 252 | left: 0; 253 | color: #fff; 254 | padding: 10px; 255 | background: #000; 256 | background: rgba(0, 0, 0, .8); 257 | } 258 | 259 | /*Retina graphics!*/ 260 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5), 261 | only screen and (min--moz-device-pixel-ratio: 1.5), 262 | only screen and (min-device-pixel-ratio: 1.5){ 263 | 264 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 265 | background-image: url(fancybox_sprite@2x.png); 266 | background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ 267 | } 268 | 269 | #fancybox-loading div { 270 | background-image: url(fancybox_loading@2x.gif); 271 | background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ 272 | } 273 | } -------------------------------------------------------------------------------- /source/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/FontAwesome.otf -------------------------------------------------------------------------------- /source/font/coveredbyyourgrace-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/coveredbyyourgrace-webfont.eot -------------------------------------------------------------------------------- /source/font/coveredbyyourgrace-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/coveredbyyourgrace-webfont.ttf -------------------------------------------------------------------------------- /source/font/coveredbyyourgrace-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/coveredbyyourgrace-webfont.woff -------------------------------------------------------------------------------- /source/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /source/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /source/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /source/font/fontdiao.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/fontdiao.eot -------------------------------------------------------------------------------- /source/font/fontdiao.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/fontdiao.ttf -------------------------------------------------------------------------------- /source/font/fontdiao.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/font/fontdiao.woff -------------------------------------------------------------------------------- /source/img/author.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/img/author.jpg -------------------------------------------------------------------------------- /source/img/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/img/banner.jpg -------------------------------------------------------------------------------- /source/img/cc-by-nc-nd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 21 | 24 | 31 | 32 | 33 | 56 | 58 | 59 | 61 | image/svg+xml 62 | 64 | 65 | 66 | 67 | 71 | 74 | 77 | 84 | 91 | 96 | 100 | 109 | 113 | 114 | 115 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /source/img/cc-by-nc-sa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 21 | 24 | 31 | 32 | 33 | 56 | 58 | 59 | 61 | image/svg+xml 62 | 64 | 65 | 66 | 67 | 71 | 74 | 77 | 84 | 91 | 96 | 100 | 109 | 113 | 114 | 115 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /source/img/cc-by-nc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 21 | 24 | 31 | 32 | 33 | 56 | 58 | 59 | 61 | image/svg+xml 62 | 64 | 65 | 66 | 67 | 71 | 74 | 77 | 84 | 91 | 96 | 100 | 109 | 113 | 114 | 115 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /source/img/cc-by-nd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 21 | 24 | 31 | 32 | 33 | 56 | 58 | 59 | 61 | image/svg+xml 62 | 64 | 65 | 66 | 67 | 71 | 74 | 81 | 88 | 93 | 97 | 106 | 110 | 111 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /source/img/cc-by-sa.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 21 | 24 | 31 | 32 | 33 | 56 | 58 | 59 | 61 | image/svg+xml 62 | 64 | 65 | 66 | 67 | 71 | 74 | 77 | 84 | 91 | 96 | 100 | 109 | 113 | 114 | 115 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /source/img/cc-by.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 21 | 24 | 31 | 32 | 33 | 56 | 58 | 59 | 61 | image/svg+xml 62 | 64 | 65 | 66 | 67 | 71 | 74 | 77 | 84 | 91 | 96 | 100 | 109 | 113 | 114 | 115 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /source/img/cc-zero.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 26 | 27 | 28 | 29 | 30 | 31 | 35 | 38 | 45 | 46 | 47 | 53 | 57 | 63 | 66 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /source/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/img/favicon.ico -------------------------------------------------------------------------------- /source/img/jacman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/img/jacman.jpg -------------------------------------------------------------------------------- /source/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/img/logo.png -------------------------------------------------------------------------------- /source/img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /source/img/scrollup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchong/jacman/c4d3fef682b7d82aa4251510b018c9b3860f13d0/source/img/scrollup.png -------------------------------------------------------------------------------- /source/js/gallery.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | // Caption 3 | $('.entry').each(function(i){ 4 | $(this).find('img').each(function(){ 5 | if (!$(this).hasClass('nofancybox')){ 6 | var alt = this.alt; 7 | 8 | if (alt){ 9 | $(this).after('' + alt + ''); 10 | } 11 | 12 | $(this).wrap(''); 13 | } 14 | }); 15 | }); 16 | 17 | // Gallery 18 | var play = function(parent, item, callback){ 19 | var width = parent.width(); 20 | 21 | item.imagesLoaded(function(){ 22 | var _this = this[0], 23 | nWidth = _this.naturalWidth, 24 | nHeight = _this.naturalHeight; 25 | 26 | callback(); 27 | this.animate({opacity: 1}, 500); 28 | parent.animate({height: width * nHeight / nWidth}, 500); 29 | }); 30 | }; 31 | 32 | $('.gallery').each(function(){ 33 | var $this = $(this), 34 | current = 0, 35 | photoset = $this.children('.photoset').children(), 36 | all = photoset.length, 37 | loading = true; 38 | 39 | play($this, photoset.eq(0), function(){ 40 | loading = false; 41 | }); 42 | 43 | $this.on('click', '.prev', function(){ 44 | if (!loading){ 45 | var next = (current - 1) % all; 46 | loading = true; 47 | 48 | play($this, photoset.eq(next), function(){ 49 | photoset.eq(current).animate({opacity: 0}, 500); 50 | loading = false; 51 | current = next; 52 | }); 53 | } 54 | }).on('click', '.next', function(){ 55 | if (!loading){ 56 | var next = (current + 1) % all; 57 | loading = true; 58 | 59 | play($this, photoset.eq(next), function(){ 60 | photoset.eq(current).animate({opacity: 0}, 500); 61 | loading = false; 62 | current = next; 63 | }); 64 | } 65 | }); 66 | }); 67 | })(jQuery); 68 | -------------------------------------------------------------------------------- /source/js/jquery.imagesloaded.min.js: -------------------------------------------------------------------------------- 1 | (function(c,n){var l="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";c.fn.imagesLoaded=function(f){function m(){var b=c(i),a=c(h);d&&(h.length?d.reject(e,b,a):d.resolve(e));c.isFunction(f)&&f.call(g,e,b,a)}function j(b,a){b.src===l||-1!==c.inArray(b,k)||(k.push(b),a?h.push(b):i.push(b),c.data(b,"imagesLoaded",{isBroken:a,src:b.src}),o&&d.notifyWith(c(b),[a,e,c(i),c(h)]),e.length===k.length&&(setTimeout(m),e.unbind(".imagesLoaded")))}var g=this,d=c.isFunction(c.Deferred)?c.Deferred(): 2 | 0,o=c.isFunction(d.notify),e=g.find("img").add(g.filter("img")),k=[],i=[],h=[];c.isPlainObject(f)&&c.each(f,function(b,a){if("callback"===b)f=a;else if(d)d[b](a)});e.length?e.bind("load.imagesLoaded error.imagesLoaded",function(b){j(b.target,"error"===b.type)}).each(function(b,a){var d=a.src,e=c.data(a,"imagesLoaded");if(e&&e.src===d)j(a,e.isBroken);else if(a.complete&&a.naturalWidth!==n)j(a,0===a.naturalWidth||0===a.naturalHeight);else if(a.readyState||a.complete)a.src=l,a.src=d}):m();return d?d.promise(g): 3 | g}})(jQuery); 4 | -------------------------------------------------------------------------------- /source/js/totop.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | // When to show the scroll link 4 | // higher number = scroll link appears further down the page 5 | var upperLimit = 1000; 6 | 7 | // Our scroll link element 8 | var scrollElem = $('#totop'); 9 | 10 | // Scroll to top speed 11 | var scrollSpeed = 500; 12 | 13 | // Show and hide the scroll to top link based on scroll position 14 | scrollElem.hide(); 15 | $(window).scroll(function () { 16 | var scrollTop = $(document).scrollTop(); 17 | if ( scrollTop > upperLimit ) { 18 | $(scrollElem).stop().fadeTo(300, 1); // fade back in 19 | }else{ 20 | $(scrollElem).stop().fadeTo(300, 0); // fade out 21 | } 22 | }); 23 | 24 | // Scroll to top animation on click 25 | $(scrollElem).click(function(){ 26 | $('html, body').animate({scrollTop:0}, scrollSpeed); return false; 27 | }); 28 | 29 | })(jQuery); --------------------------------------------------------------------------------