Abstract: 本文介绍Valine评论系统的自定义
Keywords: Hexo,Next,Valine评论系统,Valine邮件
Hexo下next主题valine强化版本的改造
使用Hexo下Next主题会遇到评论设置上的麻烦,好用的被墙了,剩下的都不太好用。但是Next集成了一个valine评论很有改造空间。
我们这里只提供一个改造思路,具体的执行细节我会给出参考网址。
使用valine
按照next或者官方说明,安装是不需要安装什么的,只是要设置下leancloud上的数据段,如果你的文章浏览数据是用leancloud存储的,那么这个过程你应该很了解了,具体的过程可以参考:
1. 官网:https://valine.js.org
- hexo-theme-next上的issues:https://github.com/iissnan/hexo-theme-next/pull/1983
第一个Bug
这是基本的,如果你的网页做过大型优化,比如参考过:
https://reuixiy.github.io/优化过next主题的同学会在topx中出现Bug,页面会变成只有title和阅读次数的状态,解决办法是修改themes/next/layout/_third-party/comments/valine.swig
中的第一行为:1
if theme.valine.enable and theme.valine.appid and theme.valine.appkey and page.title !=== '阅读排行'
阅读排行是你topx的page的title根据你的命名适当修改。
增强Valine
Valine的评论系统轻量级,所以功能就那么完善,比如邮件通知,你都找不到评论在哪篇文章,所以我找到了一个增强版的Valine:
赵同学给出了一个后台的强力解决方案,让我们的邮件通知不那么简陋,也能找到评论再哪篇文章了,为了稳妥起见,一下内容为赵俊同学的博客原文摘录:
Hexo 优化 — 支持邮件通知的评论 Valine 增强版
简介
此项目是一个对 Valine 评论系统的拓展应用,可增强 Valine
的邮件通知功能。基于 Leancloud 的云引擎与云函数。可以提供邮件 通知站长
和 @ 通知
的功能,而且还支持自定义邮件通知模板。
注:本项目修改于 panjunwen 的项目 : Valine-Admin,原作者博客: Valine Admin 配置手册, (部分逻辑于功能不同,还请读者不要搞混配置项.)
快速开始
首先需要确保 Valine 的基础功能是正常的,参考 Valine Docs。
然后进入 Leancloud 对应的 Valine 应用中。
点击 云引擎 -> 设置
填写代码库并保存:https://github.com/zhaojun1998/Valine-Admin
配置项
此外,你需要设置云引擎的环境变量以提供必要的信息,点击云引擎的设置页,设置如下信息:
必选参数
SITE_NAME
: 网站名称。SITE_URL
: 网站地址, 最后不要加/
。SMTP_USER
: SMTP 服务用户名,一般为邮箱地址。SMTP_PASS
: SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式SMTP_SERVICE
: 邮件服务提供商,支持QQ
、163
、126
、Gmail
、“Yahoo”
、……
,全部支持请参考 : Nodemailer Supported services。SENDER_NAME
: 寄件人名称。
高级配置
更新历史
升级 FAQ
部署最新代码 :
重启容器:
注: 更新新版本与更改环境变量均需要重启容器后生效。
LeanCloud 休眠策略
免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:
- 每天必须休眠 6 个小时
- 30 分钟内没有外部请求,则休眠。
- 休眠后如果有新的外部请求实例则马上启动(但激活时此次发送邮件会失败)。
分析了一下上方的策略,如果不想付费的话,最佳使用方案就设置定时器,每天 7 - 23 点每 20 分钟访问一次,这样可以保持每天的绝大多数时间邮件服务是正常的。
附 Linux crontab
定时器代码:
1 | /20 7-23 curl https://你配置的域名前缀.leanapp.cn |
注 : 此 crontab
不是LeanCloud
后台的定时任务,如果你没有 Linux
机器来配置此定时器,那么可以在此 issues 中回复我,我帮你加上。
如对本项目有意见或建议,欢迎去 Github 提 issues。
希望赵同学的博客不会关闭github也不会删库,这样的结果就是我们的邮件通知会美观很多,而且还附加了评论所在地址,非常方便。
如果使用上述后台设置那么在主题下的配置文件,valine选项中的邮件通知要关掉,不然会收到两份通知:1
2
3
4
5
6
7
8
9
10
11valine:
enable: true
appid: xxxxxx
appkey: xxxxxxx
notify: false # mail notifier , https://github.com/xCss/Valine/wiki
verify: true # Verification code
placeholder: 无需注册,填写正确的邮箱,评论被回复就有邮件通知了~ # comment box placeholder
avatar: retro # gravatar style
guest_info: nick,mail,link # custom comment header
pageSize: 10 # pagination size
visitor: false