网站优化log4.2_代替配置文件&配置Valine

此次优化项目:

  1. 升级Hexo;

  2. 升级NexT;

  3. 尝试更换新主题;

  4. 更换评论系统为Valine。

关键点:

代替配置文件

Hexo和NexT新版本的配置文件都存在不同程度更新,于是决定使用代替配置文件,以便后续更新时,不会被覆盖。

Hexo配置文件

在根目录下新建 custom.yml 文件,复制 _config.yml 中内容,并进行修改。

可以在hexo-cli中使用 --config 参数来指定自定义配置文件的路径。即后续在生成、启动服务器和部署时,都需要加上参数。

1
2
3
4
5
hexo generate --config custom.yml

hexo server --config custom.yml

hexo deploy --config custom.yml

简写

1
hexo g -d --config custom.yml

主题配置文件

  1. 在Hexo配置文件中的 theme_config 中新增配置。以NexT为例。
1
2
3
4
# _config.yml
theme: next
theme_config:
bio: "My Website"
  1. 在根目录下新增独立的 _config.[theme].yml 文件,需要注意此特性从Hexo5.0开始提供。继续以NexT为例。
1
2
# _config.yml
theme: next
1
2
# _config.next.yml
bio: "My Website"

注意:Hexo在合并主题配置时,Hexo 配置文件中的 theme_config 的优先级最高,其次是 _config.[theme].yml 文件,最后是位于主题目录下的 _config.yml 文件。

Valine配置

目前NexT8.x不支持Valine,根据搜索的结果得知同样基于LeanCloud,主题配置里自带LeanCloud的阅读统计功能会发生冲突。

注册LeanCloud

访问 https://console.leancloud.app/register,建议注册国际版账号,可省去一些麻烦。需验证邮箱和手机号,再进行下一步创建应用。

创建应用

进入控制台点击创建应用。

  • 应用名称:自由填写;
  • 应用的计价方案:开发版;(个人网站基本够用)
  • 应用描述:可不填。

创建Class

进入控制台——数据存储——结构化数据,点击新建Class。

  1. 查看评论:新建名为Comment,点击中间的无限制,其它默认;
  2. 统计阅读:新建名为Counter,其他同上。

安装Valine

NexT8.x没有自带Valine模块,需要另外安装。

1
npm install next-theme/hexo-next-valine

Valine相关文件会下载至Hexo\node_modules\hexo-next-valine中,打开文件夹里的default.yaml,复制全部内容,粘贴到主题配置文件_config.yml里。

修改_config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Valine
# For more information: https://valine.js.org, https://github.com/xCss/Valine
valine:
enable: false
appId: # your leancloud application appid
appKey: # your leancloud application appkey
serverURLs: # When the custom domain name is enabled, fill it in here
placeholder: Just go go # comment box placeholder
avatar: mp # gravatar style
meta: [nick, mail, link] # Custom comment header
pageSize: 10 # pagination size
visitor: false # leancloud-counter-security is not supported for now. When visitor is set to be true, appid and appkey are recommended to be the same as leancloud_visitors' for counter compatibility. Article reading statistic https://valine.js.org/visitor.html
comment_count: true # If false, comment count will only be displayed in post page, not in home page
recordIP: false # Whether to record the commenter IP
  1. 从LeanCloud控制台——设置——应用凭证中复制粘贴 appIdappKey
  2. avatar 处疑似错误,应由 mm 改成 mp
  3. 如果后续出现 Code 401: 未经授权的操作,请检查你的AppId和AppKey,可复制粘贴 REST API 服务器地址serverURLs;(本次未出现)
  4. 如需启用主题配置里自带LeanCloud的阅读统计功能,参照上方填写。(本次未启用)

解决冲突

以下为搜索备查,实际本次未发现冲突。

  1. Valine、LeanCloud和busuanzi的统计有冲突。
1
2
3
4
5
6
7
8
9
10
11
12
13
valine:
enable: true
visitor: false # 关闭
leancloud_visitors:
enable: true # 打开
busuanzi_count:
enable: true
total_visitors: true
total_visitors_icon: fa fa-user
total_views: true
total_views_icon: fa fa-eye
post_views: false # 关闭
post_views_icon: far fa-eye
  1. 如果在阅读统计中出现 Counter not initialized! More info at console err msg.
1
2
3
leancloud_visitors:
enable: true # 必须开
security: false

参考