前几天写完了那么长一篇博客,一时手痒,决定把挖坑已久的评论和阅读数量给加上。这也算是静态博客的一种弊端了,不能够不依赖第三方服务添加这种动态的功能。
添加评论
评论没啥好说的,当然选择老牌的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 | ATTENTION! LeanCloud counter has security bug, see how to solve it here: https://github.com/theme-next/hexo-leancloud-counter-security. |
按照所给链接的教程部署了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 | npm install -g npm-check |
npm-upgrade更新
1 | npm install -g npm-upgrade |
这时候npm会告诉你有哪些东西需要更新,并且会给出非常详细的说明,还给出升级指定包的命令,根据提示来即可。
具体还可以参考这篇文章。我还需要研究一下nodejs的模块和依赖等东西,先把坑挖在这了。
NexT更新
5.x升级到6.x可以直接参考官方指南。然而最新版本是7.3.0了,于是我直接git clone了最新版本的仓库,按照配置文件手动重新配置了一遍,只花了几分钟。
!!!如果你像我一样,使用了git来托管你的整个博客的源文件,请删除新下载的主题下的.git文件夹。