【Hexo】Hexo下next主题valine强化版本的改造

Abstract: 本文介绍Valine评论系统的自定义
Keywords: Hexo,Next,Valine评论系统,Valine邮件

Hexo下next主题valine强化版本的改造

使用Hexo下Next主题会遇到评论设置上的麻烦,好用的被墙了,剩下的都不太好用。但是Next集成了一个valine评论很有改造空间。
我们这里只提供一个改造思路,具体的执行细节我会给出参考网址。

使用valine

按照next或者官方说明,安装是不需要安装什么的,只是要设置下leancloud上的数据段,如果你的文章浏览数据是用leancloud存储的,那么这个过程你应该很了解了,具体的过程可以参考:
1. 官网:https://valine.js.org

  1. 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

切换到部署标签页,分支使用 master,点击部署即可:

配置项

此外,你需要设置云引擎的环境变量以提供必要的信息,点击云引擎的设置页,设置如下信息:

必选参数

  • SITE_NAME : 网站名称。
  • SITE_URL : 网站地址, 最后不要加 /
  • SMTP_USER : SMTP 服务用户名,一般为邮箱地址。
  • SMTP_PASS : SMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式
  • SMTP_SERVICE : 邮件服务提供商,支持 QQ163126Gmail“Yahoo”…… ,全部支持请参考 : Nodemailer Supported services
  • SENDER_NAME : 寄件人名称。

高级配置

自定义邮件模板

自定义收件邮箱

自定义邮件服务器

Web 评论管理

Leancloud 休眠策略(必看)

更新历史

  • 7.7 兼容 valine v1.2.0-beta 版本对 at 的更改 点击查看
  • 7.1 修复 Web 后台登录安全 bug
  • 6.14 添加自定义邮件服务器功能. 点击查看

升级 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
11
valine:
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


原文地址: https://face2ai.com/other-Hexo-next-valine-leancloud

0%