嘘~ 正在从服务器偷取页面 . . .

Hexo-Matery-valine评论系统


Hexo-matery-valine评论系统

1. 前言

博客系统众多,WordPress,Emlog,Typecho等等,都有自带的评论系统,而静态博客系统如Hexo,Jekyll,Hugo等,都没有自带的评论系统,想要添加评论系统便便需要依赖第三方。

Hexo-matery主题的作者在主题配置文件_config.yml中已经添加了Gittalk、Gitment、Disqus、Livere、Valine、Waline这些评论系统,只需要添加配置函数便可以使用,

我之前用的是Gittalk评论系统,一个基于Github issue和preact开发的评论插件。但是这个系统想要评论只能登录,而且只支持Gihub登录,还有一个我遇到的问题就是在使用过程中你的博客若是托管在Github pages上的,没有自定义域名Gittalk还能登录上,但是只要添加域名,GIttalk系统就会卡在循环登录的页面。所以后来换了Valine评论系统。

2. Hexo-matery-Valine配置

Valine 诞生于2017年8月7日,是一款基于LeanCloud的快速、简洁且高效的无后端评论系统。

理论上支持但不限于静态博客,目前已有HexoJekyllTypechoHugoGhostDocsify 等博客和文档程序在使用Valine。Valine官网上有配置教程,但已经是很多年前的了不是很详细。便在写了一遍。

2.1 获取APP ID和APP Key

首先需要进入leandCloud官网进行注册,首选国际版,选国内的需要实名认证,点左上角创建应用,添加应用名称、选择开发版本点击创建。

leancloud-1

2.2 绑定API访问域名

之所以绑定API访问域名需要在后面的配置文件中使用到,进入刚才创建的应用,点左下角「设置—域名绑定」,最上面便是API访问域名,点击绑定域名,自己想一个自己域名下的二级域名填进去就行,点绑定它就会给你显示DNS该如何配置的,这是便进入域名的管理处,我的是Cloudflare,找到DNS解析,填入配置,类型选择CNAME,名称是自己想的二级域名,目标是Leancloud给的跳转域名。填好后保存等3分钟就绑定成功了。

leancloud-2

2.3 配置_config.yml文件

回到Lancloud创建的应用中,点左下角「设置—应用凭证」,就会看到需要的APP IDAPP key。找到主题目录下的_config.yml文件。打开后将APP IDAPP key以及绑定的API访问域名填在如下内容中:

valine:
  enable: true
  appId:  # 必填
  appKey:  # 必填
  serverURLs:  # 必填 https://你的api

如果enabl值是false改成true才表示启用Valine。到这里算是基本完成,重新生成下博客文件就能看到Valine评论区了。

3. Valine评论系统优化

到这里有的人会想Valine评论系统无后端,没有办法自行检查和过滤评论,万一有些人在评论区注入一些违法内容,对你的博客有一定的影响。这里推荐一个项目可以解决这些烦恼。

Valine Admin 是 Valine 评论系统的扩展和增强,主要实现评论邮件通知、评论管理、垃圾评论过滤等功能。支持完全自定义的邮件通知模板。基于Akismet API实现准确的垃圾评论过滤。此外,使用云函数等技术解决了免费版云引擎休眠问题,支持云引擎自动唤醒,漏发邮件自动补发。兼容云淡风轻及Deserts维护的多版本Valine。

3.1 云引擎一键部署

进入评论系统数据库所在的LeanCloud应用。点击左边导航栏中的「云引擎—管理部署」。点击创建分组,填入分组名称、选择Web后端、实例规格免费版。

Leancloud-3

进入分组后,部署模式选择Git部署,分支master,部署目标环境为生产环境,部署Git地址填:https://github.com/DesertsP/Valine-Admin.git,即可一键部署。

部署完成后点击设置开始添加环境变量。

变量 示例 说明
SITE_NAME Moonのblog [必填]博客名称
SITE_URL https://blog.cmymoon.com [必填]首页地址
SMTP_SERVICE QQ [新版支持]邮件服务提供商,支持 QQ、163、126、Gmail 以及 更多
SMTP_USER xxxxxxx@qq.com [必填]SMTP登录用户
SMTP_PASS ccxxxxxxxxch [必填]SMTP登录密码(QQ邮箱需要获取独立密码)
SENDER_NAME Moon [必填]发件人
SENDER_EMAIL xxxxxx@qq.com [必填]发件邮箱
ADMIN_URL https://xxx.cmymoon.com/ [建议]Web主机二级域名(云引擎域名),用于自动唤醒
BLOGGER_EMAIL xxxxxxx@qq.com [可选]博主通知收件地址,默认使用SENDER_EMAIL
AKISMET_KEY xxxxxxxx [可选]Akismet Key 用于垃圾评论检测,设为MANUAL_REVIEW开启人工审核,留空不使用反垃圾

强调一下ADMIN_URL这个变量中的值是域名绑定中的下面「云引擎、ClientEngine 域名」处在绑定一个二级域名。操作和上面绑定API域名一样,我的建议是还是在绑定一个比较好,主要是用于云引擎自动唤醒

3.2 评论管理

首先需要设置管理员信息。访问管理员注册页面https://云引擎域名/sign-up,注册管理员登录信息,

这里的的云引擎域名就是绑定的云引擎二级域名。

leancloud-4

3.3 定时任务设置

关于自动休眠的官方说法:点击查看。目前实现了两种云函数定时任务来解决云引擎休眠的问题:

  • 自动唤醒,定时访问Web APP二级域名防止云引擎休眠;
  • 每天定时检查过去24小时内漏发的邮件通知。

进入「云引擎-管理部署-定时任务」,创建两个定时任务。

leancloud-5

  • 选择self-wake云函数,Cron表达式为0 */30 0-16 * * ?,表示每天早0点到晚16点每隔30分钟访问云引擎。

  • 选择resend-mails云函数,Cron表达式为0 0 0 * * ?,表示每天0点检查过去24小时内漏发的通知邮件并补发。

至此,Valine Admin 已经可以正常工作,如果你想添加邮箱通知模板到Valine-Admine项目下查看即可。


文章作者: 月夕
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 月夕 !
评论
  目录