使用 Hexo - NexT 主题
假定你已经成功安装了 Hexo,并使用 Hexo 提供的命令创建了一个站点。
在 Hexo 中有两份主要的配置文件,其名称都是 _config.yml。
- 一份位于站点根目录下,主要包含 Hexo 本身的配置
- 另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。
安装 NexT
将主题文件拷贝至站点目录的 themes 目录下, 然后修改下配置文件即可
下载主题
定位到Hexo目录下
git clone https://github.com/iissnan/hexo-theme-next themes/next
使用主题
修改站点根目录下
_config.yml
文件中的theme: next
验证主题
启动 Hexo 本地站点,并开启调试模式(即加上 –debug)整个命令是
hexo s --debug
此时即可使用浏览器访问http://localhost:4000
检查站点是否正确运行。
主题设定
外观
修改主题目录下
_config.yml
文件中的scheme: Mist
Scheme 是 NexT 提供的一种特性,借助于 Scheme,NexT 为你提供多种不同的外观- Muse - 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白
- Mist - Muse 的紧凑版本,整洁有序的单栏外观
- Pisces - 双栏 Scheme,小家碧玉似的清新
语言
修改站点根目录下
_config.yml
文件中的language: zh-Hans
- English language: en
- 简体中文 language: zh-Hans
菜单
NexT 使用的是 Font Awesome 提供的图标
- 菜单项(key和链接) 修改主题目录下
_config.yml
文件中的menu: key:link
其中key
是一个名称,这个名称并不直接显示在页面上,她将用于匹配图标以及翻译。 - 菜单项的显示文本
key
翻译文本放置在 NexT 主题目录下的languages/你所使用的语言.yml
- 菜单项对应的图标 修改主题目录下
_config.yml
文件中的menu_icons: ...
- 菜单项(key和链接) 修改主题目录下
侧栏
默认情况下,侧栏仅在文章页面(拥有目录列表)时才显示,并放置于右侧位置。
修改主题目录下
_config.yml
文件中的sidebar.position: left/right
改变侧栏的位置修改主题目录下
_config.yml
文件中的sidebar.display: always
改变侧栏显示的时机- post - 默认行为,在文章页面(拥有目录列表)时显示
- always - 在所有页面中都显示
- hide - 在所有页面中都隐藏(可以手动展开)
- remove - 完全移除
头像
修改主题目录下
_config.yml
文件中的avatar
设置成头像的链接地址- 放置在
source/images/
目录下 配置为:avatar: /images/avatar.png
- 完整的互联网 URI 配置为:
avatar: http://example.com/avatar.png
- 放置在
其他
- 修改站点根目录下
_config.yml
文件中的author
设置昵称 - 修改站点根目录下
_config.yml
文件中的description
你喜欢的一句签名作为站点描述 - 设置「动画效果」 修改主题目录下
_config.yml
文件中的use_motion: true/false
- NexT 自带两种背景动画效果 修改主题目录下
_config.yml
文件中的canvas_nest
或者three_waves
侧边栏社交链接
- 链接 修改主题目录下
_config.yml
文件中的social: 显示文本: 链接地址
- 链接的图标 修改主题目录下
_config.yml
文件中的social_icons: 显示文本: Font Awesome 图标名称
开启打赏功能 修改站点根目录下
_config.yml
中填入 微信 和 支付宝 收款二维码图片地址1
2
3reward_comment: 坚持原创技术分享,您的支持将鼓励我继续创作!
wechatpay: /path/to/wechat-reward-image
alipay: /path/to/alipay-reward-image- 修改站点根目录下
第三方服务集成
评论、搜索、统计、分享
主菜单配置
修改主题目录下 _config.yml
文件中的 menu
1 | # When running the site in a subdirectory (e.g. domain.tld/blog), remove the leading slash (/archives -> archives) |
添加标签页面
新建页面
执行命令:
1
2cd myBlog
hexo new page tags输入命令后,在myBlog/source下会新生成一个新的文件夹tags,在该文件夹下会有一个index.md文件。
设置页面类型
在myBlog/source/tags/index.md中添加type: “tags”
设置文章的tags
当要为某一篇文章添加标签,只需在myBlog/source/_post目录下的具体文章的tags中添加标签即可
1
2
3
4
5
6
7
8---
title: 使用 Hexo - NexT 主题
date: 2017-06-16 16:58:55
categories:
- Hexo
tags: [Hexo, 其他]
description: "使用 Hexo - NexT 主题" #你對本頁的描述 可以省略
---
添加分类页面
新建页面
执行命令:
1
2cd myBlog
hexo new page categories输入命令后,在myBlog/source下会新生成一个新的文件夹categories,在该文件夹下会有一个index.md文件。
设置页面类型
在myBlog/source/categories/index.md中添加type: “categories”
设置文章的 categories
当要为某一篇文章添加分类,只需在myBlog/source/_post目录下的具体文章的categories中添加分类即可
1
2
3
4
5
6
7
8---
title: 使用 Hexo - NexT 主题
date: 2017-06-16 16:58:55
categories:
- Hexo
tags: [Hexo, 其他]
description: "使用 Hexo - NexT 主题" #你對本頁的描述 可以省略
---
添加关于我页面
新建页面
1
2cd myBlog
hexo new page about输入命令后,在myBlog/source下会新生成一个新的文件夹about,在该文件夹下会有一个index.md文件。
修改about/index.md
1
2
3
4
5
6---
title: about
date: 2016-11-15 19:08:50
---
## 关于我
添加站内搜索(我失败了)
NexT主题支持集成 Swiftype、 微搜索、Local Search 和 Algolia,Swiftype和Algolia都只有一段时间的试用期,可以采用Hexo提供的Local Search,原理是通过hexo-generator-search插件在本地生成一个search.xml文件,搜索的时候从这个文件中根据关键字检索出相应的链接。
安装 hexo-generator-search
在myBlog执行:
npm install hexo-generator-search --save
安装 hexo-generator-searchdb
在myBlog执行:
npm install hexo-generator-searchdb --save
启用搜索
修改站点根目录下
_config.yml
文件,增加search
1
2
3
4
5search:
path: search.xml
field: post
format: html
limit: 10000
添加站内搜索(成功)
修改主题目录下 _config.yml
文件中的 local_search
1 | # Local search |
文章添加图片
使用CodeFalling hexo-asset-image
修改站点根目录下
_config.yml
文件中的post_asset_folder:true
在站点根目录执行:
npm install https://github.com/CodeFalling/hexo-asset-image --save
使用
1
2
3
42017-06-16-Hexo主题-NexT-使用总结
├── other.jpg
└── image.png
2017-06-16-Hexo主题-NexT-使用总结.md这样的目录结构(目录名和文章名一致),只要使用
![image](2017-06-16-Hexo主题-NexT-使用总结/image.png)
就可以插入图片。生成的结构为
1
2
3
4public/2017/06/16/Hexo主题-NexT-使用总结
├── index.html
├── other.jpg
└── image.png同时,生成的 html 是
<img src="/2017/06/16/Hexo主题-NexT-使用总结/image.png" alt="image">
基于源码修改
文章内链接文本样式
修改 themes\next\source\css\_common\components\post\post.styl
在末尾添加css样式
1 | // 文章内链接文本样式 |
代码块样式
修改 themes\next\source\css\_custom\custom.styl
添加css样式
1 | code { |
文章底部的带#号的标签改为字体图标
修改 themes/next/layout/_macro/post.swig
搜索 rel="tag">#
,将 #
换成 <i class="fa fa-tag"></i>
删除底部页脚 由 Hexo 强力驱动 主题 - NexT.Mist
修改 themes/next/layout/_partials/footer.swig
删除 <div class="powered-by">
和 <div class="theme-info">
作者头像旋转
修改themes\next\source\css\_common\components\sidebar\sidebar-author.styl
并添加
1 | .site-author-image { |
网站底部加上访问量
修改 themes\next\layout_partials\footer.swig
添加
1 | <script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script> |
- pv的方式,单个用户连续点击n篇文章,记录n次访问量
1
2
3<span id="busuanzi_container_site_pv">
本站总访问量<span id="busuanzi_value_site_pv"></span>次
</span> - uv的方式,单个用户连续点击n篇文章,只记录1次访客数
1
2
3<span id="busuanzi_container_site_uv">
本站总访问量<span id="busuanzi_value_site_uv"></span>次
</span>
首页文章区域添加阴影
在 themes/next/source/css/_custom/custom.styl
中,添加
1 | .post { |
添加顶部加载条
head.swig
修改 themes/next/layout/_partials/head.swig
添加
1 | <script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script> |
_config.yml
修改 主题目录下 _config.yml
文件中 pace: true
设置favicon
根据主题目录下 _config.yml
文件中 favicon
的说明,添加 favicon.ico
1 | # Put your favicon.ico into `hexo-site/source/` directory. |
在文章底部增加文章结束
在目录
themes/next/layout/_macro/
下添加passage-end-tag.swig
1
2
3
4
5<div>
{% if not is_index %}
<div style="text-align:center;color: #ccc;font-size:14px;">-------------本文结束<i class="fa fa-paw"></i>感谢您的阅读-------------</div>
{% endif %}
</div>在文件
themes/next/layout/_macro/post.swig
中的post-body
之后,post-footer
之前的1
2
3
4
5<div>
{% if not is_index %}
{% include 'wechat-subscriber.swig' %}
{% endif %}
</div>的前面添加
1
2
3
4
5<div>
{% if not is_index %}
{% include 'passage-end-tag.swig' %}
{% endif %}
</div>在主题目录下
_config.yml
文件中的添加1
2
3# 文章末尾添加“本文结束”标记
passage_end_tag:
enabled: true
在文章底部增加版权信息
在目录 themes/next/layout/_macro/
下添加 my-copyright.swig
1 | {% if page.copyright %} |
在目录 themes/next/source/css/_common/components/post/
下添加 my-post-copyright.styl
1 | .my_post_copyright { |
修改 themes/next/layout/_macro/post.swig
在
1 | <div> |
之前添加
1 | <div> |
修改 ·themes/next/source/css/_common/components/post/post.styl
添加@import "my-post-copyright"
在博客信息中添加 copyright: true
1 | --- |
优化 原始链接
如果解析出来之后,你的原始链接有问题
修改站点根目录 _config.yml
文件
1 | url: https:// |
优化 post.md 模板
如果你觉得每次都要输入 copyright: true
很麻烦的话,那么在 站点根目录/scaffolds/post.md
文件中添加:copyright
1 | --- |
这样每次 hexo new 'XXX'
后生成的md文件会自动把 copyright:
加到里面去
参考的文章