NexT is a high quality elegant Hexo theme.
It is crafted from scratch, with love.
——NexT 的自述
NexT 主题是在GitHub有着 10k star 的高人气Hexo主题,可方便切换多种方案(Scheme),内置标签分类、代码高亮、载入动画等功能,支持评论系统、站内搜索、数据统计与分析等第三方服务。本文预计围绕以下几方面展开介绍:
- 启用 NexT 主题
- 配置 NexT 主题
- 启用第三方服务
- 深度订制样式
参考资料:
NexT 开发文档
hexo 的 next 主题个性化教程:打造炫酷网站
打造个性超赞博客 Hexo + NexT +GithubPages 的超深度优化
启用NexT主题
在blog\
目录下,按住shift键
的同时按下鼠标右键,点击在此处打开命令行(win10 为 Powershell),输入:
1 | git clone https://github.com/iissnan/hexo-theme-next themes/next |
当下载完成后,打开~\blog\
根目录里的_config.yml这个站点配置文件,找到theme
字段,将其值改为next
。
在命令行依次输入下面的命令来验证NexT主题是否配置成功:
1 | hexo clean //清除Hexo的缓存 |
此时用浏览器访问 https://localhost:4000 ,就会发现博客界面已如下图所示:
配置NexT主题
选择 Scheme
Scheme 是 NexT 提供的一种特性,借助于 Scheme,NexT 主题可以方便切换多种不同的方案。
- Muse - 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白
- Mist - Muse 的紧凑版本,整洁有序的单栏方案
- Pisces - 双栏 Scheme,小家碧玉似的清新
我使用的是 Pisces,打开~\blog\themes\next\
里的_config.yml这个主题配置文件,删去 scheme: Pisces
前面的注释#
即可启用该 scheme,如下所示:
1 |
|
设置博客信息
打开站点配置文件,设置博客信息:
1 | # Site |
设置菜单
打开主题配置文件,设置启用的菜单:
1 | menu: |
同前面一样,带#
的为不启用。
注意,如果点击标签页面出现404错误,说明需要新建 tags
页面:
1 | hexo new page tags |
编辑 index.md
文件:
1 | --- |
设置侧栏
在博客左边/右边除了菜单外,还有一个侧栏,可以放置头像和其他社交链接,并在阅读文章时会自动显示文章目录。
侧栏社交链接的修改包含两个部分,第一是链接,第二是链接图标,图标名称是 Font Awesome 提供图标的名字(不必带 fa- 前缀):
1 | //设置社交链接 |
设置头像,把头像图片放在~\blog\source\uploads\
中(如无此路径自行创建即可),图片命名为avatar.jpg
:
1 | # Sidebar Avatar |
开启侧栏文章目录,在阅读文章时自动展开:
1 | # Table Of Contents in the Sidebar |
设置侧栏位置、返回顶部按钮等:
1 | sidebar: |
启用第三方插件
评论系统
NexT 支持多款 评论系统 ,但经常被墙难以稳定使用。索性无视复杂的网络问题,选用成熟的 Disqus 供有条件的同学交流使用。
状态:被墙
注册 Disqus ,点击首页的 “GET STARTED”,选择“I want to install Disqus on my site”,设置网站信息,填写“Website Name”获得shortname
,安装平台跳过即可。
编辑主题配置文件, 将 disqus
下的 enable
设定为 true
,同时提供您的 shortname
。count
用于指定是否在标题下面显示评论数量:
1 | disqus: |
状态:正常
登陆 来必力 获取你的 LiveRe UID
。 打开主题配置文件, 编辑 livere_uid
字段,设置如下:
1 | livere_uid: your livere_uid |
搜索服务
NexT 支持集成 Swiftype、 微搜索、Local Search 和 Algolia 多款 搜索服务 。
状态:免费
前往 Algolia ,注册一个新账户。免费账户 总共有 10,000 条记录,每月有 100,000 的可以操作数。注册完成后,创建一个新的 Index
,这个 Index
将在后面使用。
接下来需要安装 Hexo Algolia 扩展, 这个扩展的功能是搜集站点的内容并通过 API 发送给 Algolia。前往站点根目录,执行命令安装:
1 | npm install --save hexo-algolia |
在 Algolia 服务站点上找到需要使用的一些配置的值,包括 ApplicationID
、Search-Only API Key
、 Admin API Key
。注意,Admin API Key
需要保密保存。点击ALL API KEYS
找到新建INDEX对应的key, 编辑权限,在弹出框中找到ACL选择勾选Add records, Delete records, List indices, Delete index权限,点击update更新。
编辑站点配置文件,新增以下配置:
1 | algolia: |
1 | //windows 下替换 export 为 set,使用 powershell 可能导致失败 |
更改主题配置文件,找到 Algolia Search 配置部分:
1 |
|
将 enable
改为 true
即可,根据需要你可以调整 labels
中的文本。
状态:收费
$79 一个月,老老实实用 Algolia 不好吗?
添加百度/谷歌/本地 自定义站点内容搜索
安装hexo-generator-searchdb
,在站点的根目录下执行以下命令:
1 | npm install hexo-generator-searchdb --save |
编辑站点配置文件,新增以下内容到任意位置:
1 | search: |
编辑主题配置文件,启用本地搜索功能:
1 | # Local search |
文章阅读次数统计
注册 LeanCloud 帐号,创建计数应用,拿到AppID
以及AppKey
这两个参数即可正常使用文章阅读量统计的功能了。
详见 配置 LeanCloud
音乐播放器
[*Aplayer* ](https://github.com/MoePlayer/APlayer)视频播放器
Dplayer 有个网页全屏播放的 BUG,在 下面 介绍如何修复。
订制样式
该部分主要对网页的外观进行修改,较为繁琐。
进度条
打开主题配置文件,找到并启用进度条Progress bar
:
1 | # Progress bar in the top during page loading. |
打开~\blog\themes\next\layout\_partials\head.swig
文件,修改进度条的颜色:
打开~\blog\themes\next\source\css\_custom\custom.styl
(如无则自行创建),添加线性渐变色带
作为进度条的背景:
1 | // 页面最顶部的横线 |
LOGO
同样的,通过修改~\blog\themes\next\source\css\_custom\custom.styl
文件,添加自定义LOGO:
1 | // 站点LOGO |
Dplayer
在 Pisces 方案中使用 Dplayer 作为视频播放器会有一个网页全屏播放的BUG,可以通过在~\blog\themes\next\source\css\_custom\custom.styl
文件中添加以下内容来修复这个BUG:
1 | // 修视频播放器Dplayer网页全屏的bug |
文章宽度
NexT 主题的 Pisces 方案,文章部分较窄,对文字和高分辨率图片显示不够友好,需要修改宽度。
打开~\blog\themes\next\source\css\_variables\custom.styl
,修改如下:
1 | // 修改成你期望的宽度 |
加载评论
在 Disqus 评论系统被墙的情况下,在文章底部设置加载评论的按钮,这样既保留评论功能,又不影响墙内访客打开页面的速度。
打开~\blog\themes\next\layout\_partials\comments.swig
,添加加载评论按钮:
1 | <div style="text-align:center;"> |
打开~\blog\themes\next\layout\_third-party\comments\disqus.swig
,修改为:
1 | {% if page.comments %} |
打开~\blog\themes\next\source\css\_custom\custom.styl
文件,添加按钮样式:
1 | //评论加载按钮 |
SEO
生成站点地图:
1 | npm install hexo-generator-sitemap --save |
在 public
目录下会生成 sitemap.xml
文件。
参考资料:
NexT 开发文档
hexo 的 next 主题个性化教程:打造炫酷网站
打造个性超赞博客 Hexo + NexT + GithubPages 的超深度优化