0%

升级Hexo及NexT主题及添加评论和阅读数

朱大佬在我一篇上古博文的基础上写了一个更加详细的hexo搭建教程,并且使用了Travis CI持续集成,可以参考一下。

前几天写完了那么长一篇博客,一时手痒,决定把挖坑已久的评论和阅读数量给加上。这也算是静态博客的一种弊端了,不能够不依赖第三方服务添加这种动态的功能。

添加评论

评论没啥好说的,当然选择老牌的Disqus,添加完网站在next配置文件里加个shortname就完事。多说已经死了,当年还是wordpress的时候我也用了好几年。disqus被墙也在意料之中(墙内也没啥好用的这种平台了),评论国内用不了也罢。

阅读数

Update 190909: 可以参考官方指南进行更详细的安全设置。

阅读数搜了一圈,发现还是用LeanCloud的比较多,并且这玩意国内访问也支持。用Google Firestore的话,国内的访问没法统计。注册了LeanCloud国际版,直接参考了这篇文章配置了一下,发现阅读数显示不出来,F12会有如下报错。

1
Failed to load resource: the server responded with a status of 403 () us.leancloud.cn/1.1/classes/Counter?redirectByAPI=cn:1 

查了一下,可能是我next的版本太老了(最新版已经7.3.0,而我还在5.x),这个帖子汇报了类似的问题并且已经在某个版本中修复。我的hexo也很老了,于是我决定不管三七二十一先更新一波再说。更新请参考下面的更新章节。

更新完之后,文件名下面的阅读数提示出现了如下提示:

1
Views: Counter not initialized! More info at console err msg. 

打开console,可以看到错误提示

1
2
ATTENTION! LeanCloud counter has security bug, see how to solve it here: https://github.com/theme-next/hexo-leancloud-counter-security. 
However, you can still use LeanCloud without security, by setting `security` option to `false`.

按照所给链接的教程部署了hexo-leancloud-counter-security插件,然而在hexo g时遇到如下报错:

1
Error: Cannot find module 'babel-runtime/regenerator'

使用npm安装babel-runtime解决问题。

1
npm install babel-runtime

最后,重新上传到服务器。

1
hexo clean && hexo g && hexo d

更新

Hexo更新

检查更新

1
2
npm install -g npm-check
npm-check

npm-upgrade更新

1
2
npm install -g npm-upgrade
npm-upgrade

这时候npm会告诉你有哪些东西需要更新,并且会给出非常详细的说明,还给出升级指定包的命令,根据提示来即可。

具体还可以参考这篇文章。我还需要研究一下nodejs的模块和依赖等东西,先把坑挖在这了。

NexT更新

5.x升级到6.x可以直接参考官方指南。然而最新版本是7.3.0了,于是我直接git clone了最新版本的仓库,按照配置文件手动重新配置了一遍,只花了几分钟。

!!!如果你像我一样,使用了git来托管你的整个博客的源文件,请删除新下载的主题下的.git文件夹。