环境
Hexo框架博客:https://hexo.io/zh-cn/index.html
博客主题:[Next主题7.1.1](theme-next/hexo-theme-next: Elegant and powerful theme for Hexo.)
简介
之前hexo博客的评论系统为来必力,加载速度及其之慢,导致将post模板中comments
都默认为false。
无意中,浏览博客时发现Valine——一款极简的无后端评论系统。
安装
获取APP ID
和APP KEY
配置
打开hexo源文件,编辑next主题文件——_config.yml
,找到Valine,启用并填写相应的APP ID和APP KEY。
配置中avatar
选项为默认头像,配置方法:https://github.com/xCss/Valine/wiki/avatar-setting-for-valine
参数 | 表现形式 | 备注 |
---|---|---|
空字符串'' |
Gravatar官方图形 | |
mm |
神秘人(一个灰白头像) | |
identicon |
抽象几何图形(根据邮箱或昵称生成) | |
monsterid |
小怪物 | |
wavatar |
用不同面孔和背景组合生成的头像(根据邮箱或昵称生成) | |
retro |
八位像素复古头像(根据邮箱或昵称生成) |
若
avatar
的值不等于6种参数中的一种,则默认为mm
重新部署即可(需开启评论功能)!
参考:https://ioliu.cn/2017/add-valine-comments-to-your-blog/
Valine 评论系统中的邮件提醒
进入Leancloud>选择你的评论所存放的应用>设置>邮件模板,按下图设置好用于重置密码的邮件主题>然后保存:
1 | <p>Hi, {{username}}</p> |
注意设置首页链接!
然后初始化即可:
在next主题配置文件中设置:
1 | // |
将邮件提醒设置为true即可,邮件提醒时需要输入验证码(数学简单计算).
使用Valine-Admin拓展
Valine-Admin :一个 Valine 的拓展应用,用来增强 Valine 的邮件通知。
github地址:https://github.com/zhaojun1998/Valine-Admin
使用方法见README:https://github.com/zhaojun1998/Valine-Admin/blob/master/README.md
备注:SMTP服务器选择QQ邮箱,SMTP_PASS即QQ密码,这样测试成功!开始使用Gmail失败。
LeanCloud 休眠策略
免费版的 LeanCloud 容器,是有强制性休眠策略的,不能 24 小时运行:
- 每天必须休眠 6 个小时
- 30 分钟内没有外部请求,则休眠。
- 休眠后如果有新的外部请求实例则马上启动(但激活时发送邮件会失败)。
解决LeanCloud休眠问题
LeanCloud休眠会导致不能发送提醒邮件,因此寻求解决方法。
在vps上添加一个定时任务,每天6点到23点每20分钟访问一次leanapp网址,防止自动休眠。
cron定时任务:*/20 6-23 * * * curl https://zhyong.leanapp.cn
找到新的方法,查看更新内容。
20190520更新
突然发现博客似乎很久没有手动评论的邮件提醒了。特意评论博客,查看了云引擎下的应用日志:
1 | { Error: Invalid login: 535 Error: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 |
发现是QQ邮箱的Error: Invalid login: 535 Error
,搜索发现是因为QQ邮箱升级,没有授权码导致的(之前使用的是QQ邮箱秘密而不需要授权码),因此登录QQ邮箱,生成一个授权码(需要QQ安全中心APP扫描)。
然后将生成好的授权码替代之前的QQ密码即可。
重启实例即可。
通过云函数解决LeanCloud休眠问题
详细查看:Valine Admin 配置手册
注意:此操作是基于以前的内容进行的,确保您已经设置好了一切。
云函数的定时任务是写在代码里的,因此修改代码库为:
1 | https://github.com/DesertsP/Valine-Admin.git |
切换到部署标签页,分支使用master
,点击部署即可。
等待部署完成。
评论管理。访问设置的二级域名https://二级域名.leanapp.cn/sign-up,注册管理员登录信息,如:https://zhyong.leanapp.cn/sign-up 。支持的邮箱:Well-known services
注意:管理账号的注册邮箱必须和环境变量中的SENDER_EMAIL
保持一致,否则不能发送邮件。
注:使用原版Valine如果遇到注册页面不显示直接跳转至登录页的情况,请手动删除
_User
表中的管理员账号。
完成后,访问二级域名(如:https://zhyong.leanapp.cn) 的评论管理界面,界面更加好看,功能也增加了不少(如标记垃圾邮件,重发通知)
(重点)通过云函数设置定时任务:
- 自动唤醒,定时访问Web APP二级域名防止云引擎休眠
- 每天定时检查24小时内漏发的邮件通知
进入云引擎
->定时任务
中,创建定时器,创建两个定时任务。
注意设置ADMIN_URL
环境变量,添加的环境变量包括:
注意:必须安装此项进行填写,填写必填项和建议项!!!
- 选择
self-wake
云函数,Cron表达式为0 0/30 7-23 * * ?
,表示每天早6点到晚23点每隔30分钟访问云引擎
唤醒成功日志:web1 21:00:04 自唤醒任务执行成功,响应状态码为: 200
- 选择
resend-mails
云函数,Cron表达式为0 0 8 * * ?
,表示每天早8点检查过去24小时内漏发的通知邮件并补发。
注意:添加定时器后记得点击启动方可生效。
部署完成,完美解决!