├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── _config.yml ├── docs ├── FAQ.md ├── theme-settings.md └── third-party-service.md ├── languages ├── default.yml ├── en.yml ├── ja.yml ├── ko.yml ├── zh-CN.yml └── zh-TW.yml ├── layout ├── _partial │ ├── footer.ejs │ ├── header.ejs │ ├── page-archive.ejs │ ├── page-category.ejs │ ├── page-custom.ejs │ ├── page-tag.ejs │ └── pagination.ejs ├── archive.ejs ├── category.ejs ├── index.ejs ├── layout.ejs ├── page.ejs ├── post.ejs └── tag.ejs ├── scripts ├── getPostBgColor.js ├── getPostIcon.js ├── getPostThumb.js ├── monthArchivePosts.js ├── randPostThumb.js ├── relatedPosts.js ├── replaceImg.js └── yearArchivePosts.js └── source ├── 404.html ├── images ├── alipay.JPG ├── apple-touch-icon.png ├── bg-ico.png ├── favicon.png ├── logo-hsuping.png ├── logo.png ├── thumbs │ ├── 1.jpg │ ├── 10.jpg │ ├── 11.jpg │ ├── 12.jpg │ ├── 13.jpg │ ├── 14.jpg │ ├── 15.jpg │ ├── 16.jpg │ ├── 17.jpg │ ├── 18.jpg │ ├── 2.jpg │ ├── 3.jpg │ ├── 4.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ └── 9.jpg └── wechat.JPG ├── js ├── instantclick.js ├── instantclick.min.js └── love.js └── style.min.css /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # v1.4.2 2 | 2019-09-20 3 | 4 | Fix: [issue4](https://github.com/cccyb/hexo-theme-pinghsu/issues/4) 5 | 6 | - 修复文章目录点击跳转无效的问题 7 | - 优化滚到到顶部的滚动平滑效果 8 | - 修复归档页分页失效的问题 9 | 10 | # v1.4.1 11 | 2019-03-26 12 | 13 | Feature: 14 | - 新增文章图片点击放大功能,由`Fancybox`支持 15 | 16 | Fix: 17 | - 修复首页底部最近评论展示失效的问题 18 | 19 | # v1.4.0 20 | 2019-02-21 21 | 22 | Feature: 23 | - 新增打赏功能 24 | - 文章页面新增音乐播放器功能 25 | - 新增文章字数统计 & 文章阅读时间 & 全站字数统计功能 26 | 27 | # v1.3.0 28 | 2019-02-20 29 | 30 | Feature: 31 | - 使用Valine代替Gitalk作为评论系统 32 | - 首页以及文章详情页新增文章阅读次数(使用LeanCloud配合Valine实现) 33 | - 文章详情页头部添加评论数 34 | - 新增底部最近评论 35 | 36 | # v1.2.0 37 | 2019-02-19 38 | 39 | Feature: 40 | - 新增404页面 41 | - 新增百度统计配置 42 | - 底部社交按钮配置改为动态自定义 43 | - 新增备案信息配置 44 | 45 | Fix: 46 | - 隐藏`pjax`配置,先默认关闭 47 | - 去除谷歌分析配置代码 48 | - 修复https mix content bug 49 | - 修复底部最近文章显示错误问题 50 | 51 | # v1.1.0 52 | 2019-02-03 53 | 54 | Feature: 55 | - 新增不蒜子配置,支持网站统计数据显示 56 | - 新增gitalk评论系统配置 57 | - 新增网页鼠标点击红心效果配置 58 | - 社交按钮配置准确化,若留空则不显示 59 | 60 | Fix: 61 | - 修复`footer`网站地址跳转错误的问题 62 | - 修复`enablePjax`字段设为`false`时影响文章代码高亮的Bug 63 | 64 | # v1.0.0 - Happy New Year! 65 | 2019-02-02 66 | 67 | 第一版上线,欢迎试用,新年快乐! Happy New Year! -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 陈钰博 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Pinghsu 2 | 3 |  4 | 5 | 本主题移植于[chakhsu](https://github.com/chakhsu)的Typecho主题[pinghsu](https://github.com/chakhsu/pinghsu),将其基于Hexo进行重写。 6 | 7 | 引用原作者对主题的一句话介绍: 8 | 9 | > Pinghsu 是一款以前端性能优化为出发点而制作的 Hexo 主题,同时又兼顾设计美学和视觉传达。 10 | 11 | 非常感谢原作者写出这么精美的主题供我们使用。 12 | 13 | ## 更多预览 14 | 15 | | 首页 - 三栏 | 首页 - 单栏 | 16 | | ------------------------------------------------------------ | ------------------------------------------------------------ | 17 | |  |  | 18 | 19 | | 文章内容页 - 题图 | 文章页 - 目录 | 20 | | ------------------------------------------------------------ | ------------------------------------------------------------ | 21 | |  |  | 22 | 23 | | 页面内容页 | 归档页 | 24 | | ------------------------------------------------------------ | ------------------------------------------------------------ | 25 | |  |  | 26 | 27 | | 分类页 | 分类详情页 | 28 | | ------------------------------------------------------------ | ------------------------------------------------------------ | 29 | |  |  | 30 | 31 | | 标签页 | 标签详情页 | 32 | | ------------------------------------------------------------ | ------------------------------------------------------------ | 33 | |  |  | 34 | 35 | | 移动端 - 首页 | 移动端 - 文章页 | 移动端 - 归档页 | 36 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | 37 | |  |  |  | 38 | 39 | | 移动端 - 分类页 | 移动端 - 标签页 | 移动端 - 详情归档页 | 40 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | 41 | |  |  |  | 42 | 43 | 下载地址:[https://github.com/cccyb/hexo-theme-pinghsu](https://github.com/cccyb/hexo-theme-pinghsu) 44 | 45 | 在线预览:[https://chenyubo.me](https://chenyubo.me) 46 | 47 | ## 主题亮点 48 | 49 | - 页面预加载与DNS预解析保证极快访问速度 50 | - 无JQuery,无前端框架,无webfont 51 | - HighlightJS代码高亮,支持22种编程代码 52 | - 响应式设计,支持平板与手机,访问体验甚至优于桌面 53 | - 支持图片CDN镜像,支持多种文章缩略图设置 54 | - 支持首页三栏和单栏选择,文章题图和色块 55 | - 支持文章目录、相关文章与数学公式渲染 56 | - 支持文章个性化标徽设置,10种标徽选择 57 | - 支持个人社交按钮,社交分享 58 | - 还有更多亮点等你去发现~ 59 | 60 | ## 安装 61 | 62 | ### 前期准备 63 | 64 | > 安装主题前请确保已根据Hexo官方文档已搭建好本地站点,并能正常启动。 65 | 66 | 参考链接: 67 | 68 | - [概述](https://hexo.io/zh-cn/docs) 69 | - [建站](https://hexo.io/zh-cn/docs/setup) 70 | 71 | ### 下载主题 72 | 73 | 进入`Hexo`博客目录下,下载主题至主题`themes`目录下: 74 | 75 | ```bash 76 | $ cd your-hexo-site 77 | $ git clone https://github.com/cccyb/hexo-theme-pinghsu.git themes/pinghsu 78 | ``` 79 | 80 | ### 启用主题 81 | 82 | 修改根目录下的**站点配置文件**`_config.yml`中的 `theme` 字段为 `pinghsu`: 83 | 84 | ```yml 85 | # Extensions 86 | ## Plugins: https://hexo.io/plugins/ 87 | ## Themes: https://hexo.io/themes/ 88 | theme: pinghsu 89 | ``` 90 | 91 | ### 更新主题 92 | 93 | 进入`Hexo`博客目录下的主题`themes`目录下的`pinghsu`目录: 94 | 95 | ```bash 96 | $ cd your-hexo-site/themes/pinghsu 97 | $ git pull 98 | ``` 99 | 100 | ## 主题设定 101 | 102 | ### 选择主题外观 103 | 104 | 主题提供两套外观进行选择,他们是: 105 | 106 | - 三栏(three)- 默认三栏 107 | - 单栏(one) 108 | 109 | 你可以通过修改`主题配置文件`下的`postListSwitch`字段进行修改: 110 | 111 | ```yaml 112 | # 首页文章列表设置 113 | # 默认三列 114 | # three: 三列,one:一列 115 | postListSwitch: three 116 | ``` 117 | 118 | ### 设置网站通用配置 119 | 120 | 编辑**站点配置文件**`_config.yml`,修改相关配置: 121 | 122 | ```yml 123 | # Site 124 | title: 输入你的博客标题 125 | ... 126 | description: 输入你的博客描述 127 | keywords: 输入你的博客关键词 128 | author: 输入你的名字 129 | 130 | # URL 131 | url: 你的域名 132 | ``` 133 | 134 | ### 设置语言和时区 135 | 136 | 编辑**站点配置文件**`_config.yml`,将 `language` 设置成你所需要的语言。建议明确设置你所需要的语言,例如选用简体中文。将`timezone`设置成你所在的时区,配置如下: 137 | 138 | ```yml 139 | language: zh-CN 140 | timezone: Asia/Shanghai 141 | ``` 142 | 143 | 目前本主题支持以下语言: 144 | 145 | | 语言 | 代码 | 设定示例 | 146 | | -------- | ----- | ----------------- | 147 | | 简体中文 | zh-CN | `language: zh-CN` | 148 | | 繁體中文 | zh-TW | `language: zh-TW` | 149 | | English | en | `language: en` | 150 | | 日本語 | ja | `language: ja` | 151 | | Korean | ko | `language: ko` | 152 | 153 | 默认使用简体中文(zh-CN)语言,如有需要,可以按需进行更改。 154 | 155 | #### 禁用Hexo默认自带代码高亮 156 | 由于hexo默认自带的代码高亮配置与主题代码高亮样式有所冲突,所以需要将默认的禁用,后续在主题配置文件中进行代码高亮配置。 157 | 158 | 编辑**站点配置文件**`_config.yml`: 159 | 160 | ```yml 161 | # Writing 162 | ... 163 | highlight: 164 | enable: false 165 | line_number: false 166 | auto_detect: false 167 | tab_replace: 168 | ``` 169 | 170 | ## 文档 171 | 详细文档见:[文档 | Doc](https://github.com/cccyb/hexo-theme-pinghsu/wiki) 172 | 173 | ## 感谢 174 | 175 | 再次感谢原作者[chakhsu](https://github.com/chakhsu)创作出这么精美的主题 [pinghsu](https://github.com/chakhsu/pinghsu) 。 176 | 177 | ## 贡献 178 | 179 | 欢迎各种形式的贡献,包括但不限于优化,添加功能,文档 & 代码的改进,问题和 bugs 的报告。 180 | 181 | ## 许可证 182 | 183 | [MIT](https://opensource.org/licenses/MIT) -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # =========================================== 2 | # Site Settings 网站相关设置 3 | # =========================================== 4 | 5 | # 网站基础设置 6 | # 图片需要放置在 themes/pinghsu/source/imagse 下 7 | headerLogoUrl: # 头部右上角logo图片地址,留空则取网站标题 8 | footerLogoUrl: # 底部左下角logo图片地址,留空则取网站标题 9 | favicon: /images/favicon.png # favicon地址,留空则不设favicon 10 | iosicon: /images/apple-touch-icon.png # apple touch icon 地址,留空则不设 apple touch icon 11 | since: 2016 # 站点起始时间 12 | 13 | # Menu Setting 菜单设置 14 | menu: 15 | categories: /categories 16 | tags: /tags 17 | archives: /archives 18 | links: /links 19 | about: /about 20 | 21 | # Archive Setting 归档页设置 22 | # month: 按月份归档,year: 按年份归档,默认按月份归档 23 | archive: year 24 | 25 | # Social Setting 社交设置 26 | social: 27 | 知乎: 28 | Github: 29 | 30 | # =========================================== 31 | # Function Setting 功能设置 32 | # =========================================== 33 | 34 | # 是否启用DNS预解析加速 35 | # 启用则会对CDN资源和Gravatar进行加速 36 | dnsPrefetch: true 37 | 38 | # 自定义CDN加速地址 39 | # 若设置,且启用DNS预解析,则会被加速,可以填写图床地址进行图片加载加速,或者加速其他cdn 40 | cdnAdd: 41 | 42 | # 是否启用移动端点击延迟消除设置 43 | enableFastClick: true 44 | 45 | # 是否启用文章Mathjax设置 46 | # 启用则会对内容页进行数学公式渲染,仅支持 $公式$ 和 $$公式$$ 47 | enableMathjax: true 48 | 49 | # 文章页底部相关文章设置 50 | # 仅在文章页中生效,文章是根据标签进行相关的 51 | # enable:是否启用 52 | # limit:显示文章数量,建议设置不超过6条 53 | relatedPosts: 54 | enable: true 55 | limit: 6 56 | 57 | # 底部最近文章设置 58 | # enable:是否启用 59 | # limit:显示数量,建议设置不超过8条 60 | recentlyPosts: 61 | enable: true 62 | limit: 8 63 | 64 | # 底部最近评论设置 65 | # 只有开启了valine评论系统才能生效 66 | # enable:是否启用 67 | # limit:显示数量,建议设置不超过8条 68 | recentlyComments: 69 | enable: true 70 | limit: 8 71 | 72 | # =========================================== 73 | # Appearance Setting 外观设置 74 | # =========================================== 75 | 76 | # 首页文章列表设置 77 | # 默认三列 78 | # three: 三列,one:一列 79 | postListSwitch: three 80 | 81 | # 文章色块设置 82 | # 启用则可以通过文章字段color控制色块颜色,仅支持blue、purple、green、yellow、red 83 | colorBgPosts: true 84 | 85 | # 文章题图设置 86 | # 启用则在文章页顶部显示缩略图 87 | showPostThumb: true 88 | 89 | # 默认缩略图 90 | defaultThumb: 91 | 92 | # 随机缩略图设置 93 | # 设为 0 则不使用主题自带的缩略图 94 | # 不为 0 时表示默认随机缩略图的数量 95 | randomThumb: 18 96 | 97 | # 文章目录设置 98 | # 文章页右边目录生成,仅在网页宽度大于1000px时显示 99 | enableDirectory: true 100 | 101 | # 代码高亮设置 102 | # enable:是否启用 103 | # theme:主题样式css名称,默认使用atom-one-dark主题 104 | highlight: 105 | enable: true 106 | theme: atom-one-dark 107 | 108 | # 底部彩色动态词语配置 109 | # 一个词语一行 110 | animateWords: 111 | - Hexo 112 | - Theme 113 | - Pinghsu 114 | 115 | # 不蒜子网站统计 116 | busuanzi: true 117 | 118 | # 网站点击红心效果 119 | clickLove: true 120 | 121 | # 百度统计id,填写复 hm.js? 后面那串统计脚本 id 122 | baiduAnalytics: 123 | 124 | # 网站备案信息 125 | beian: 126 | 127 | # valine评论系统 128 | # 配置详情参考:https://valine.js.org/configuration.html 129 | valine: 130 | enable: false # 是否启用 131 | appId: # 应用AppID 132 | appKey: # 应用AppKey 133 | placeholder: Your commnet here. Be cool. # 输入框默认显示文本 134 | pageSize: 10 # 每页评论数量 135 | avatar: mp # 头像类型 136 | visitor: true # 文章阅读量统计 137 | 138 | # 打赏配置 139 | # 二维码图片放置在主题目录下的/source/imagse/ 140 | # example:/images/wechat.jpg 141 | reward: 142 | enable: false # 是否启用 143 | text: 如果我的文章对你有很大帮助,那么不妨 # 打赏文案 144 | wechat: /images/wechat.jpg # 微信支付二维码地址 145 | alipay: /images/alipay.jpg # 支付宝二维码地址 146 | 147 | # 文章页音乐播放器设置 148 | # 配置详情参考:https://github.com/metowolf/MetingJS 149 | music: 150 | enable: false # 是否启用 151 | id: # song id / playlist id / album id / search keyword 152 | server: # music platform: netease, tencent, kugou, xiami, baidu 153 | type: # song, playlist, album, search, artist 154 | auto: # music link, support: netease, tencent, xiami 155 | autoplay: false # 是否自动播放 -------------------------------------------------------------------------------- /docs/FAQ.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cccyb/hexo-theme-pinghsu/2701903d081a98c84789fffbff2d093cf39b577b/docs/FAQ.md -------------------------------------------------------------------------------- /docs/theme-settings.md: -------------------------------------------------------------------------------- 1 | ## 主题配置 2 | 3 | 对主题文件夹内`themes/pinghsu`下的`_config.yml`配置文件进行修改,具体配置文件可以参考主题内的默认配置:[_config.yml](https://github.com/cccyb/hexo-theme-pinghsu/blob/master/_config.yml)。部分简单配置参考配置文件中的注释即可,配置过程中需要注意的事项主要有将在下面进行介绍。 4 | 5 | ### 菜单设置 6 | 7 | Menu菜单设置主要包括两部分,第一是菜单项(名称和链接),第二是菜单项的显示文本。 8 | 9 | **菜单项设置** 10 | 11 | 修改**主题配置文件**中的`menu`字段,设置格式为`name:link`,注意,`name`并不是显示页面上的文本,而是一个`key`用以匹配链接和文本。 12 | 13 | `menu`选项的设置顺序将决定了页面中的菜单项顺序,设置中的顺序从上至下将依次在页面中从左到右展示。 14 | 15 | ```yml 16 | menu: 17 | categories: /categories 18 | tags: /tags 19 | archives: /archives 20 | links: /links 21 | about: /about 22 | ``` 23 | 24 | pinghsu主题默认的菜单项包括:分类,标签,归档,友情链接,关于我。**但是需要注意:**只有归档页(archives)的页面是默认可以显示的,分类页(categories)、标签页(tags)分别参考下面的分类页设置和标签页设置,友情链接(links)、关于我(about)参考下面的自定义页面设置。 25 | 26 | **菜单项文本设置** 27 | 28 | 我们第一步设置的菜单项的`name`并不是直接用于页面展示,Hexo在生成页面的时候会使用`name`去对应的语言配置文件中寻找对应的翻译文本展示到页面上。这些翻译文本放置在主题目录下的`languages/{language}.yml`中。 29 | 30 | 我们以简体中文为例,如果你在第一步中添加了一个额外的菜单项`example: /example`,那么就需要在对应的简体中文语言文件`languages/zh-CN.yml`中,在`menu`字段下添加一项: 31 | 32 | ```yml 33 | menu: 34 | categories: 分类 35 | tags: 标签 36 | archives: 归档 37 | links: 友情链接 38 | about: 关于我 39 | example: 示例菜单 40 | ``` 41 | 42 | ### 分类页设置 43 | 44 | 分类页默认不存在,需要进行手动配置才能在页面上正确展示。 45 | 46 | **新建分类页面** 47 | 48 | 在终端中进入Hexo站点目录,使用`hexo new page`新建一个页面,命名为`categoies`: 49 | 50 | ```bash 51 | $ cd your-hexo-site 52 | $ hexo new page categories 53 | ``` 54 | 55 | **设置页面类型** 56 | 57 | 打开刚刚新建的`source/categories/index.md`,将页面的`type`设置成`categories`,主题将自动为这个页面显示成分类页。 58 | 59 | ```markdown 60 | title: 分类 61 | date: 2019-02-01 12:39:04 62 | type: "categories" 63 | --- 64 | ``` 65 | 66 | **修改菜单** 67 | 68 | 主题已默认添加分类菜单。 69 | 70 | ### 标签页设置 71 | 72 | 标签页与分类页设置相似,只是需要将对于的categories改为tags即可。 73 | 74 | **新建标签页面** 75 | 76 | 在终端中进入Hexo站点目录,使用`hexo new page`新建一个页面,命名为`tags`: 77 | 78 | ```bash 79 | $ cd your-hexo-site 80 | $ hexo new page tags 81 | ``` 82 | 83 | **设置页面类型** 84 | 85 | 打开刚刚新建的`source/tags/index.md`,将页面的`type`设置成`tags`,主题将自动为这个页面显示成标签页。 86 | 87 | ```markdown 88 | title: 标签 89 | date: 2019-02-01 12:39:04 90 | type: "tags" 91 | --- 92 | ``` 93 | 94 | **修改菜单** 95 | 96 | 主题已默认添加标签菜单。 97 | 98 | ### 自定义页面设置 99 | 100 | 自定义页面和分类和标签页面一样,本质上是一个独立页面,但与上述分类页和标签页不同,分类页和标签页的内容有主题中的内置模板决定,而普通自定义页面的内容将由`index.md`中的内容决定,最终渲染的效果与文章页相识,本质上就是一篇md文章。主题默认菜单中的`links`和`about`就是一个普通的自定义页面。 101 | 102 | 下面我们以关于我页面`about`为例,介绍自定义页面的设置过程: 103 | 104 | **新建页面** 105 | 106 | 在终端中进入Hexo站点目录,使用`hexo new page`新建一个页面,名称自定义,我们这里使用`about`, 107 | 108 | ```bash 109 | $ cd your-hexo-site 110 | $ hexo new page about 111 | ``` 112 | 113 | **编辑页面内容** 114 | 115 | 打开刚刚新建的`source/about/index.md`,跟正常书写文章一样,进行页面内容的编辑,但是需要注意:自定义页面不支持文章的某些字段,比如:分类`categories`,标签`tags`,色块`color`,徽标`icon`,缩略图`thumb`。 116 | 117 | **修改菜单** 118 | 119 | 友情链接`links`和关于我`about`页面的菜单项主题已默认添加,如果你添加了其他自定义页面,可以参照菜单设置进行对应的配置。 120 | 121 | ### 社交设置 122 | 123 | 可以通过修改`主题配置文件`进行页面底部的社交按钮配置,你可以在`social`字段下自定义添加社交选项,格式为`name: link`形式,`name`为显示在页面上的文案,`link`为对应的跳转链接: 124 | 125 | ```yaml 126 | # Social Setting 社交设置 127 | social: 128 | 知乎: 129 | Github: 130 | ``` 131 | 132 | ### 个性化色块设置 133 | 134 | 本主题支持对文章进行个性化色块设置,需要在主题配置文件将`colorBgPosts`设置为`true`开启,色块出现的地方有首页,分类详情页,标签页,标签详情页。 135 | 136 | ```yml 137 | colorBgPosts: true 138 | ``` 139 | 140 | 设置方法为在文章md文件顶部添加自定义字段`color`,支持的字段值有:`blue`、`purple`、`green`、`yellow`、`red`。 141 | 142 | ```markdown 143 | title: 文章标题 144 | date: 2019-02-01 12:39:04 145 | ... 146 | color:blue 147 | --- 148 | ``` 149 | 150 | 如果文章中没有设置`color`或者`color`字段设置的值不在上述字段中,则会随机选择一个颜色。如果`colorBgPosts`为`false`,则默认为`deepgrey`灰色。 151 | 152 | ### 个性化徽标设置 153 | 154 | 本主题支持对文章添加个性化徽标,个性化徽标默认显示,不可关闭,个性化徽标出现的地方有首页,分类详情页,标签详情页,相关文章。 155 | 156 | 设置方法类似个性话色块,在文章md文件顶部添加自定义字段`icon` ,支持的字段值有:`book` 、 `game` 、 `note` 、 `chat` 、 `code` 、 `image` 、 `web` 、 `link` 、 `design`、 `lock`。 157 | 158 | ```markdown 159 | title: 文章标题 160 | date: 2019-02-01 12:39:04 161 | ... 162 | icon:book 163 | --- 164 | ``` 165 | 166 | 如果文章中没有设置`icon`或者`icon`字段设置的值不在上述字段中,则会随机选择一个徽标。 167 | 168 | ### 文章缩略图设置 169 | 170 | 本主题支持对文章进行缩略图配置: 171 | 172 | ```yml 173 | # 默认缩略图 174 | defaultThumb: 175 | 176 | # 随机缩略图设置 177 | # 设为 0 则不使用主题自带的缩略图 178 | # 不为 0 时表示默认随机缩略图的数量 179 | randomThumb: 18 180 | 181 | # 文章题图设置 182 | # 启用则在文章页顶部显示缩略图 183 | showPostThumb: true 184 | ``` 185 | 186 | 文章缩略图出现的地方有首页,文章页顶部。 187 | 188 | 文章设置缩略图方法有三种,自定义字段`thumb`,文章第一张图片,默认缩略图。 189 | 190 | 优先级顺序为:自定义字段`thumb` → 文章第一张图片 → 默认缩略图 → 随机缩略图 → 无。 191 | 192 | 缩略图尺寸大小,高度至少250px,宽度大于高度,推荐高度为400px。 193 | 194 | **自定义字段`thumb`** 195 | 196 | 在文章顶部添加`thumb`字段,可以填外链地址,要符合标准的url,以http(s)开头,也可以填写本地文件路径,比如`/images/xxx.jpg`,图片文件放置在主题的`/source/images`目录或其子目录下,图片后缀仅支持`png`,`jpg`,`jpeg`,`webp`。 197 | 198 | 若未添加`thumb`字段,或者添加的`thumb`字段不符合上述规则,则字段不生效,会使用下一优先级的缩略图配置。 199 | 200 | **文章第一张图片** 201 | 202 | 主题会从文章正文中找出第一张图片的`src` 作为缩略图。若文章中没有插入图片,则会使用下一优先级缩略图配置。 203 | 204 | **默认缩略图** 205 | 206 | 默认缩略图需要在配置文件中填写`defaultThumb` 字段,填写地址要求同自定义字段`thumb`,若留空或者地址不合法,则会使用下一优先级的缩略图配置。 207 | 208 | **随机缩略图** 209 | 210 | 随机缩略图需要在配置文件中配置`randomThumb`字段。 211 | 212 | ```yml 213 | randomThumb: 18 214 | ``` 215 | 216 | 字段值为随机缩略图的数量,主题默认提供18张缩略图进行随机选择,如果需要新增图片或者删除图片,可以在`source/images/thumbs`目录下进行操作,注意,图片命名要为纯数字,从1开始,且后缀必须为`jpg`,比如`1.jpg`,自定义缩略图后,将`randomThumb`的值修改成文件夹内图片的数量。 217 | 218 | **无缩略图** 219 | 220 | 若将`randomThumb`字段设为0,则表示禁用随机缩略图,则在首页缩略图部分显示个性化色块的颜色,在文章页顶部题图显示为灰色,所以建议至少开始随机缩略图选项。 221 | 222 | **文章题图** 223 | 224 | 文章页顶部支持题图设置,若缩略图设置不为空,且`showPostThumb`设为`true`,则在文章页顶部会展示题图,图片内容为缩略图的内容。 225 | 226 | ### 代码高亮设置 227 | 228 | 主题支持代码高亮设置,支持对常见的编程语言进行代码高亮。 229 | 230 | 将主题配置文件中的`highlight` 选项的`enable`设置为`true`即可实现代码高亮,默认高亮主题样式为`atom-one-dark`。 231 | 232 | ```yml 233 | highlight: 234 | enable: true 235 | theme: atom-one-dark 236 | ``` 237 | 238 | 若需修改其他高亮主题,可以在[https://highlightjs.org/static/demo/](https://highlightjs.org/static/demo/)网站中右下角自行选择你满意的主题`styles`,将其名称所有字母小写,按`-`分隔开,填入`theme`即可。 239 | 240 | 比如,如果你选中的主题`styles`为`Atom One Dark`,则将其改写成`atom-one-dark`即可。 241 | 242 | ### 设置RSS 243 | 244 | 社交链接中可以添加`rss`链接,但是需要先进行配置。 245 | 246 | **安装rss插件** 247 | 248 | 在命令行中执行: 249 | 250 | ```bash 251 | $ cd your-hexo-site 252 | $ npm install hexo-generator-feed --save 253 | ``` 254 | 255 | **添加rss配置** 256 | 257 | 打开根目录下的**站点配置文件**`_config.yml`,添加以下配置项: 258 | 259 | ```yml 260 | feed: 261 | type: atom 262 | path: atom.xml 263 | limit: 20 264 | hub: 265 | content: 266 | content_limit: 140 267 | content_limit_delim: ' ' 268 | order_by: -date 269 | icon: icon.png 270 | ``` 271 | 272 | 具体配置详情见:[https://github.com/hexojs/hexo-generator-feed](https://github.com/hexojs/hexo-generator-feed) ,请自己根据文档按需配置。 273 | 274 | **添加菜单** 275 | 276 | rss配置添加完成后,在主题配置文件`_config.yml`中的`social`字段中填写`rss`地址,值为`/atom.xml`。 277 | 278 | ```yml 279 | social: 280 | ... 281 | rss: /atom.xml 282 | ... 283 | ``` 284 | 285 | ### 打赏功能设置 286 | 287 | 主题支持在文章页对文章进行打赏,编辑**主题配置文件**: 288 | 289 | ```yaml 290 | reward: 291 | enable: true # 是否启用 292 | text: 如果我的文章对你有很大帮助,那么不妨 # 打赏文案 293 | wechat: /images/wechat.jpg # 微信支付二维码地址 294 | alipay: /images/alipay.jpg # 支付宝二维码地址 295 | ``` 296 | 297 | 其中二维码图片需要放置在主题目录下的`/source/images/`。 298 | 299 | ### 字数统计功能设置 300 | 301 | 主题支持显示文章字数统计 & 文章阅读时间 & 全站字数统计功能,需要手动安装`hexo-wordcount`插件进行启用,在博客目录下执行以下命令: 302 | 303 | ```bash 304 | npm i hexo-wordcount --save 305 | ``` 306 | 307 | ### 音乐播放器设置 308 | 309 | 主题支持在文章页底部添加音乐播放器,编辑**主题配置文件**,添加以下配置以启用这一功能: 310 | 311 | ```yaml 312 | music: 313 | enable: true # 是否启用 314 | id: # song id / playlist id / album id / search keyword 315 | server: # music platform: netease, tencent, kugou, xiami, baidu 316 | type: # song, playlist, album, search, artist 317 | auto: # music link, support: netease, tencent, xiami 318 | autoplay: false # 是否自动播放 319 | ``` 320 | 321 | - `id`:歌曲id,歌单id,专辑id,搜索关键词 322 | 323 | - `server`:音乐平台,支持 324 | 325 | - `netease`:网易云音乐 326 | - `tencent`:QQ音乐 327 | - `kugou`:酷狗音乐 328 | - `xiami`:虾米音乐 329 | - `baidu`:百度音乐 330 | 331 | - `type`:音乐播放类型,对应`id` 332 | 333 | - `song`:单曲 334 | - `playlist`:歌单 335 | - `album`:专辑 336 | - `search`:搜索 337 | - `artist`:未知 338 | 339 | - `auto` :音乐链接,支持网易云音乐,QQ音乐,虾米音乐 340 | - `autoplay`:自动播放 341 | 342 | 更详细配置项介绍可参考:[https://github.com/metowolf/MetingJS](https://github.com/metowolf/MetingJS) 343 | 344 | ### 首页分页设置 345 | 346 | ```yml 347 | index_generator: 348 | path: '' 349 | per_page: 12 350 | order_by: -date 351 | ``` 352 | 353 | - per_page:首页文章每页多少条 354 | - order_by:首页文章分页排序规则,默认按时间降序 355 | 356 | 主题首页三列布局下建议设置`per_page`为`3`的倍数最佳,建议`12条`。 357 | 358 | ### 归档页设置 359 | 360 | ```yml 361 | archive_generator: 362 | enabled: true 363 | per_page: 0 364 | yearly: true 365 | monthly: true 366 | daily: false 367 | order_by: -date 368 | ``` 369 | 370 | - per_page - 归档页每页展示文章数量,`0`表示不分页 371 | - order_by - 文章排序规则,默认按照创建时间降序 372 | 373 | ### 分类详情页和标签详情页设置 374 | 375 | ```yml 376 | category_generator: 377 | per_page: 12 378 | 379 | tag_generator: 380 | per_page: 12 381 | ``` 382 | 383 | 主题中分类详情页和标签详情页双列展示,建议设置为`2`的倍数最佳。 -------------------------------------------------------------------------------- /docs/third-party-service.md: -------------------------------------------------------------------------------- 1 | ## 第三方服务 2 | 3 | 静态站点拥有一定的局限性,因此我们需要借助于第三方服务来扩展站点的功能。 以下是 pinghsu 目前支持的第三方服务,你可以根据你的需求集成一些功能进来。 4 | 5 | ### 百度统计 6 | 7 | 1. 登录 [百度统计](http://tongji.baidu.com/),定位到站点的代码获取页面 8 | 2. 复制 `hm.js?` 后面那串统计脚本 id,如下图所示: 9 | 10 |  11 | 12 | 3. 编辑**主题配置文件**,修改字段 `baiduAnalytics`,值设置成你的百度统计脚本 id。 13 | 14 | ### 不蒜子统计 15 | 16 | 编辑 **主题配置文件** 中的`busuanz`的配置项,设置为`true`即可开启不蒜子统计,开启后默认在页面底部展示站点UV和站点PV 17 | 18 | ### 评论系统 19 | 20 | 本主题评论系统使用[Valine](https://valine.js.org/)进行底层支持,由于[Valine](https://valine.js.org/)是由第三方服务`LeanCloud`进行支持,因此需要先获取`LeanCloud`的相关配置。以下我将进行简要介绍,具体可以参考[Valine](https://valine.js.org/)使用文档。 21 | 22 | **创建应用** 23 | 24 | 请先[登录](https://leancloud.cn/dashboard/login.html#/signin)或[注册](https://leancloud.cn/dashboard/login.html#/signup) `LeanCloud`, 进入[控制台](https://leancloud.cn/dashboard/applist.html#/apps)后点击左下角[创建应用](https://leancloud.cn/dashboard/applist.html#/newapp): 25 | 26 |  27 | 28 | 应用名称无具体要求,建议使用有明确含义的名称。 29 | 30 | **新建Comment的Class** 31 | 32 | 新建相应的`Class`,`Class`名称为`Comment`: 33 | 34 |  35 | 36 | **获取APP ID 和 APP Key** 37 | 38 | 应用创建好以后,进入刚刚创建的应用,选择左下角的`设置`>`应用Key`,然后就能看到你的`APP ID`和`APP Key`了: 39 | 40 |  41 | 42 | **配置安全域名** 43 | 44 | 为了你的数据安全,请设置自己的`安全域名`: 45 | 46 |  47 | 48 | **修改配置文件** 49 | 50 | 编辑**主题配置文件**,将`enable`字段设为`true`以启用评论系统,将前面获取的`AppID`和`AppKey`填写进配置文件: 51 | 52 | ```yaml 53 | # valine评论系统 54 | valine: 55 | enable: true 56 | appId: 你的应用AppID 57 | appKey: 你的应用AppKey 58 | placeholder: Your commnet here. Be cool. 59 | pageSize: 10 60 | avatar: mp 61 | ... 62 | ``` 63 | 64 | 目前本主题仅支持配置以上选项,具体详情可参考:[Valine配置项](https://valine.js.org/configuration.html),其他配置项均使用默认配置。 65 | 66 | ### 文章阅读量统计 67 | 68 | 主题使用`Valine`自带的文章阅读量统计功能,按如下配置即可开启: 69 | 70 | ```yaml 71 | # valine评论系统 72 | valine: 73 | ... 74 | visitor: true 75 | ``` -------------------------------------------------------------------------------- /languages/default.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | categories: 分类 3 | tags: 标签 4 | archives: 归档 5 | links: 友情链接 6 | about: 关于我 7 | 8 | recentlyPosts: 最近文章 9 | 10 | recentlyComments: 最近评论 11 | 12 | index: 13 | readMore: 继续阅读 14 | 15 | tags: 16 | title: 所有标签 17 | count: 目前共计%d标签 18 | 19 | archives: 20 | title: 嗯..! 目前共计 %d 篇日志。 继续努力~ 21 | empty: 你还没有书写文章哦,赶紧去写一篇吧~ 22 | 23 | categories: 24 | empty: 你还没有分类哦,赶紧去给你的文章加上分类吧~ 25 | 26 | archive: 27 | empty: 没有找到内容,请换别的关键字进行检索~ 28 | 29 | views: 30 | text: 本站总访问量 31 | unit: 次 32 | vistors: 33 | text: 本站访客数 34 | unit: 人次 -------------------------------------------------------------------------------- /languages/en.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | categories: Categories 3 | tags: Tags 4 | archives: Archives 5 | links: Links 6 | about: About 7 | 8 | recentlyPosts: RECENT POSTS 9 | 10 | recentlyComments: RECENT COMMENTS 11 | 12 | index: 13 | readMore: Continue Reading 14 | 15 | tags: 16 | title: All Tags 17 | count: Currently total %d tags 18 | 19 | archives: 20 | title: Hmm..! There are currently %d posts in total. keep it up~ 21 | empty: You haven't written an article yet, just go and write an article~ 22 | 23 | categories: 24 | empty: You haven't classified yet, just go and add a classification to your article~ 25 | 26 | archive: 27 | empty: No content found, please search for another keyword~ 28 | 29 | views: 30 | text: Total views 31 | unit: times 32 | vistors: 33 | text: Total vistors 34 | unit: m -------------------------------------------------------------------------------- /languages/ja.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | categories: 分類 3 | tags: ラベル 4 | archives: アーカイブ 5 | links: フレンドリーリンク 6 | about: 私について 7 | 8 | recentlyPosts: 最近の記事 9 | 10 | recentlyComments: 最近のコメント 11 | 12 | index: 13 | readMore: 続きを読む 14 | 15 | tags: 16 | title: すべてのラベル 17 | count: 現在合計%dタグ 18 | 19 | archives: 20 | title: うーん..!現在%d個のログがあります。 頑張ってください〜 21 | empty: あなたはまだ記事を書いていません、ただ記事を書きに行ってください〜 22 | 23 | categories: 24 | empty: まだ分類していません。記事に分類を追加してください〜 25 | 26 | archive: 27 | empty: コンテンツが見つかりません。別のキーワードで検索してください〜 28 | 29 | views: 30 | text: サイトへの合計訪問回数 31 | unit: 回 32 | vistors: 33 | text: このサイトへの訪問者 34 | unit: 人 -------------------------------------------------------------------------------- /languages/ko.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | categories: 분류 3 | tags: 레이블 4 | archives: 아카이브 5 | links: 우호적 인 링크 6 | about: 나에 대해서 7 | 8 | recentlyPosts: 최근 기사 9 | 10 | recentlyComments: 최근 댓글 11 | 12 | index: 13 | readMore: 계속 읽기 14 | 15 | tags: 16 | title: 모든 라벨 17 | count: 현재 총 %d 개의 태그 18 | 19 | archives: 20 | title: 흠 ..! 현재 총 %d 개의 로그가 있습니다. 계속 열심히 ~ 21 | empty: 아직 기사를 작성하지 않았습니다. 가서 기사를 작성하십시오 ~ 22 | 23 | categories: 24 | empty: 당신은 아직 분류하지 않았습니다, 그냥 가서 기사에 분류를 추가하십시오 ~ 25 | 26 | archive: 27 | empty: 내용이 없으므로 다른 키워드를 검색하십시오 ~ 28 | 29 | views: 30 | text: 총 사이트 방문 횟수 31 | unit: 회 32 | vistors: 33 | text: 이 사이트 방문자 34 | unit: 명 -------------------------------------------------------------------------------- /languages/zh-CN.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | categories: 分类 3 | tags: 标签 4 | archives: 归档 5 | links: 友情链接 6 | about: 关于我 7 | 8 | recentlyPosts: 最近文章 9 | 10 | recentlyComments: 最近评论 11 | 12 | index: 13 | readMore: 继续阅读 14 | 15 | tags: 16 | title: 所有标签 17 | count: 目前共计%d标签 18 | 19 | archives: 20 | title: 嗯..! 目前共计 %d 篇日志。 继续努力~ 21 | empty: 你还没有书写文章哦,赶紧去写一篇吧~ 22 | 23 | categories: 24 | empty: 你还没有分类哦,赶紧去给你的文章加上分类吧~ 25 | 26 | archive: 27 | empty: 没有找到内容,请换别的关键字进行检索~ 28 | 29 | views: 30 | text: 本站总访问量 31 | unit: 次 32 | vistors: 33 | text: 本站访客数 34 | unit: 人次 -------------------------------------------------------------------------------- /languages/zh-TW.yml: -------------------------------------------------------------------------------- 1 | menu: 2 | categories: 分類 3 | tags: 標籤 4 | archives: 歸檔 5 | links: 友情鏈接 6 | about: 關於我 7 | 8 | recentlyPosts: 最近文章 9 | 10 | recentlyComments: 最近評論 11 | 12 | index: 13 | readMore: 繼續閱讀 14 | 15 | tags: 16 | title: 所有標籤 17 | count: 目前共計%d標籤 18 | 19 | archives: 20 | title: 嗯..! 目前共計 %d 篇日誌。 繼續努力~ 21 | empty: 你還沒有書寫文章哦,趕緊去寫一篇吧~ 22 | 23 | categories: 24 | empty: 你還沒有分類哦,趕緊去給你的文章加上分類吧~ 25 | 26 | archive: 27 | empty: 沒有找到內容,請換別的關鍵詞進行檢索~ 28 | 29 | views: 30 | text: 本站總訪問量 31 | unit: 次 32 | vistors: 33 | text: 本站總訪客數 34 | unit: 人次 -------------------------------------------------------------------------------- /layout/_partial/footer.ejs: -------------------------------------------------------------------------------- 1 | 53 | 54 | <% if (theme.enableDirectory && is_post()) { %> 55 |