前言
之前一直用的anchor主题,每个页面都有一个大的背景图,虽然好看,但是加载图片很慢我实在受不了了。改邪归正使用next主题。
安装Next
下载主题
在博客根目录
1 | git clone https://github.com/iissnan/hexo-theme-next themes/next |
启用主题
修改站点配置文件_config.yml
1 | # Extensions |
验证主题
启用主题后,先清除缓存
1 | hexo clean |
启用Hexo本地站点,验证主题
1 | hexo s --debug |
主题设定
选择皮肤
- Muse - 默认 Scheme,这是 NexT 最初的版本,黑白主调,大量留白
- Mist - Muse 的紧凑版本,整洁有序的单栏外观
- Pisces - 双栏 Scheme,小家碧玉似的清新
可以在主题配置文件进行切换,把注释#去除即可
1 | #scheme: Muse |
设置语言
在站点配置文件,设置language
1 | language: zh-Hans |
修改主题颜色
Next的配色文件是
1 | \Hexo\themes\next\source\css\_variables\base.styl |
里边是现有的配色方案,自定义的话只要修改一下参数的定义值就好了。我把默认的黑色改成了一个 浅青色:
1 | // $black-deep = #222 原本的黑色 |
设置网站icon
把图标放在/themes/next/source/images
里,并且修改主题配置文件:
1 | favicon: |
设置菜单
菜单配置包括三个部分,第一是菜单项(名称和链接),第二是菜单项的显示文本,第三是菜单项对应的图标。 NexT 使用的是 Font Awesome 提供的图标, Font Awesome 提供了 600+ 的图标,可以满足绝大的多数的场景,同时无须担心在 Retina 屏幕下 图标模糊的问题。
主题配置文件
设定菜单内容
1 | menu: |
【注意】:这里是一个坑点,很多文章甚至官网都写着可以把|| home
、|| user
等去掉,但是这是不能去掉的,去掉的话就无法正确显示小图标了。官网也坑人。
若你的站点运行在子目录中,请将链接前缀的 / 去掉
NexT 默认的菜单项有(标注 !的项表示需要手动创建这个页面):
键值 | 设定值 | 显示文本(简体中文) |
---|---|---|
home | home: / | 主页 |
archives | archives: /archives | 归档页 |
categories | categories: /categories | 分类页! |
tags | tags: /tags | 标签页! |
about | about: /about | 关于页面! |
commonweal | commonweal: /404.html | 公益 404! |
设置菜单项的显示文本
在第一步中设置的菜单的名称并不直接用于界面上的展示。Hexo 在生成的时候将使用 这个名称查找对应的语言翻译,并提取显示文本。这些翻译文本放置在 NexT 主题目录下的 languages/{language}.yml ({language} 为你所使用的语言)。
以简体中文为例,若你需要添加一个菜单项,比如 something。那么就需要修改简体中文对应的翻译文件 languages/zh-Hans.yml,在 menu 字段下添加一项:
1 | menu: |
设定菜单项的图标
1 | menu_icons: |
创建分类
生成分类页
1 | $ hexo new page categories |
成功后进入文件,打开后默认
1 | --- |
添加type
1 | --- |
保存 关闭
创建标签
生成标签页
1 | $ hexo new page tags |
成功后进入文件,打开后默认
1 | --- |
添加type
1 | --- |
保存 关闭
创建新文章
在每篇博文的最顶端如下设置:
1 | --- |
注意categories只有一个,tags允许多个。之前用anchor主题的时候,设置tags是用方括号括起来的,在next主题里是无效的,必须像上面这样设置,注意英文符号和空格。
设置头像
编辑 主题配置文件,修改字段 avatar
1 | 放置在 source/images/ 目录下 |
设置作者昵称
编辑 站点配置文件,设置 author 为你的昵称。
站点描述
编辑 站点配置文件,设置 description 字段为你的站点描述。站点描述可以是你喜欢的一句签名:)
百度统计
设置百度统计后可以查看本站的访问数据。
- 登录 百度统计, 定位到站点的代码获取页面
- 复制
hm.js?
后面那串统计脚本 id,如: - 编辑 主题配置文件, 修改字段
baidu_analytics
字段,值设置成你的百度统计脚本 id。
侧边栏社交链接
主题配置文件
1 | social: |
注意要去掉social,social icons的注释!!以及enable要设置为true。
这里又有一个坑点,social
配置中|| github
等不可去掉,否则无法正常显示图标。
腾讯公益404页面
使用方法,新建 404.html 页面,放到主题的 source 目录下,内容如下:
1 | <!DOCTYPE HTML> |
站点建立时间
这个时间将在站点的底部显示,例如 © 2017 - 2019。 编辑 主题配置文件,字段 since。
1 | footer: |
站内搜索
启用本地搜索的方法很简单,先安装 hexo-generator-search
。
注意不是 hexo-generator-searchdb
,前者来自于 wzpan/hexo-generator-search,而后者来自于 theme-next/hexo-generator-searchdb。后者已经一年多没有更新了,而前者还在更新,并且增加了仅搜索标题的功能。
1 | yarn install hexo-generator-search |
然后在主题配置文件里,启用本地搜索功能:
1 | local_search: |
然后重新生成页面:
1 | hexo clean |
即可查看更改。
其实如果没有其它的需要的话,到这里就可以了,默认配置就已经足够用了。
参考文章:https://wangjiezhe.com/posts/2018-10-29-Hexo-NexT-2/
Valine评论功能
后面了解到一款国人开发的评论系统叫Valine用的是LeanCloud作为数据库,洁面很简洁,不像来必力那样花哨只是单纯的评论,简洁到没有后台!!!删除和管理评论只能直接操作数据库。
这里写下为Hexo-Next模板添加Valine的过程和坑点。
1.Next模板要5.14及以上(免去自己手动修改的麻烦)。不是这个版本的可以考虑升级或者自己手动修改,修改教程在 https://github.com/iissnan/hexo-theme-next/pull/1983
2.注册LeanCloud并创建一个开发版应用(免费)
3.在LeanCloud -> 存储 -> 创建Class -> 无限制的Class(坑点1)
class名称为:Comment
LeanCloud创建Class
4.在LeanCloud-设置-把除数据存储其他选项都关闭。
LeanCloud设置
安全域名中添加域名,一定要注意格式(坑点2)
5.在Next模板下的_config.yml搜索Valine进行填写appid和appkey
1 | # Valine. |
Next _config.yml
如果要开启email通知除了修改_config.yml文件之外还要将LeanCloud -> 设置邮件模板 -> 用于重置密码的邮件主题进行修改
LeanCloud设置邮件模板
1 | 你在{{appname}} 的评论收到了新的回复 |
建议将自带的CDN改成第三方CDN,为啥???10+s的加载那酸爽是在是过瘾。
文件目录:next/layout/_third-party/comments/valine.swig
//cdn.jsdelivr.net/npm/valine/dist/Valine.min.js
官方的CDN是
//unpkg.com/valine/dist/Valine.min.js
更多高级用法请到官网查看 https://valine.js.org/
置顶功能
目前已经有修改后支持置顶的仓库,可以直接用以下命令安装。
1 | $ npm uninstall hexo-generator-index --save |
然后在需要置顶的文章的Front-matter
中加上top: true
即可。比如下面这篇文章:
1 | --- |
到目前为止,置顶功能已经可以实现了。所有相关博文到这边就结束了。
不过置顶的文章显示在最上面之后,如果没有明确的置顶标志,是不是感觉有点怪怪的呢?
打开:/themes/next/layout/_macro
目录下的post.swig
文件,定位到<div class="post-meta">
标签下,插入如下代码:
1 | {% if post.top %} |
删除底部页脚
找到/themes/next/layout/_partials/footer.swig文件
内容如下:
1 | <div class="copyright" > |
删除class 为powered-by的div和theme-info的div即可
显示页脚运行时间
- 在 \themes\next\layout_partials\footer.swig 增加
1 | {%- if config.symbols_count_time.total_time %} |
阅读全文
- 在文章加
- 修改 主题配置文件 -> auto_excerpt -> length
404页面
原来小小的举动也可以为公益事业献出自己的一份爱心,何乐而不为呢?
-新建 404.html 页面,放到主题的 source 目录下
1 | <!DOCTYPE HTML> |
【参考文章】: