专栏首页三言两语使用ValineAdmin完善评论系统
原创

使用ValineAdmin完善评论系统

在更换主题后的这一段时间里,博客运行良好,内容我也在不断完善,评论自然是继承原来的 Valine 也运行正常,但是,其实从上个主题开始,我就没有配置邮件的评论系统,所以对于评论的查看,我一直都是登陆 LeanCloud 后台来完成的。当然,默认的邮件提醒我是配置了的,但那个太简陋了,几乎没有使用价值。关于 ValineAdmin,群友早就配置过了,这次终于轮到自己来配一下了。

为什么我现在才配

因为我一直有个误区,那就是完成该配置需要在LeanCloud完成实名认证,但实际是不需要的!配置 ValineAdmin 是不需要 LeanCloud 实名认证的!(目前我仍然没有进行实名认证)

而且依托于Valine使用的应用/仓库即可,完全没有其他要求。

添加 ValineAdmin 步骤

明确:

这里用的是“添加”,也就是说,ValineAdmin 和原来的 Valine 完全可以共存,互不影响,不需要重新配置。

1. 遵循 Valine 官方教程完成 Valine 的配置

https://valine.js.org/quickstart.html

2. 进入配置页面

3. 源码部署填写以下仓库

https://github.com/DesertsP/Valine-Admin.git

4. 填写16个自定义变量

注意事项:

  • 务必确认已开通SMTP服务,以QQ为例需要发送短信来获得授权码;
  • SMTP_USER 和 SENDER_EMAIL 务必正确

![](https://cdn.jsdelivr.net/gh/TianZonglin/tuchuang/img/20200325224019.png"/>

  • AKISMET_KEY 请到akismet.com注册并选择免费版获得秘钥,否则在LeanCloud实例日志内会出现“Akismet key 异常!”的错误。

5. 给博主通知的邮件模板

  • BLOGGER_EMAIL 就是博主的邮箱;
  • MAIL_SUBJECT_ADMIN 邮件标题;
  • MAIL_TEMPLATE_ADMIN 邮件正文,注意变量位置,其他完全是HTML标签,可自己重写:
<html>
 <head></head>
 <body>
  <div style="border-top:2px solid #12ADDB;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;margin:50px auto;font-size:12px;"> 
   <h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 0px;">您在<a style="text-decoration:none;color: #12ADDB;" href="${SITE_URL}" target="_blank">${SITE_NAME}</a>上的文章有了新的评论</h2> 
   <p><strong>${NICK}</strong>回复说:</p>
   <div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">
     ${COMMENT}
   </div>
   <p> 您可以点击<a style="text-decoration:none; color:#12addb" href="${POST_URL}" target="_blank">查看回复的完整內容</a><br /></p> 
   <p><strong>评论页面为</strong></p>
   <p><strong>${POST_URL}</strong></p>
   <br />
  </div>
 </body>
</html>

效果:

6. 给评论者通知的邮件模板

  • MAIL_SUBJECT 邮件标题,注意措辞;
  • MAIL_TEMPLATE 邮件正文,需要美化!
  • 不同于站长的通知邮件,这是给评论者看的,必须花里胡哨,这是面子工程!
<html>
 <head></head> 
 <body> 
  <div style="border-radius: 10px 10px 10px 10px;font-size:13px; color: #555555;width: 666px;font-family:'Century Gothic','Trebuchet MS','Hiragino Sans GB',微软雅黑,'Microsoft Yahei',Tahoma,Helvetica,Arial,'SimSun',sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);"> 
   <div style="width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;"> 
    <b><p style="font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;color:#257db9">您在<a style="text-decoration:none;color:#257db9" href="${SITE_URL}">「长征部落格」</a>上的留言有新回复啦!</p> </b> 
   </div> 
   <div style="margin:40px auto;width:90%"> 
    <b><p>尊敬的 <span style="color:#7777ff">${PARENT_NICK}</span> 您好,您曾在该页面/文章:</p> </b> 
    <div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;"> 
     <b>${POST_URL}</b> 
    </div> 
    <b><p>发布了如下评论:</p> </b> 
    <div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;"> 
     <b>${PARENT_COMMENT} </b> 
    </div> 
    <b><p>刚刚,用户 <span style="color:#7777ff">${NICK}</span> 给您的回复如下:</p></b> 
    <div style="background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;"> 
     <b>${COMMENT}</b> 
    </div> 
    <b><p>您可以点击 <a style="text-decoration:none; color:#d25353" href="${POST_URL}#comments">查看回复的完整內容</a>,欢迎再次光临<a style="text-decoration:none; color:#257db9" href="${SITE_URL}"> ${SITE_NAME}</a>。</p> </b> 
    <style type="text/css">a:link{text-decoration:none}a:visited{text-decoration:none}a:hover{text-decoration:none}a:active{text-decoration:none}</style> 
   </div> 
  </div> 
  <center> 
   <b>由LeanCloud强力驱动</b> 
   <br /> 
   <b>Copyright &copy; 2017-2020 <a href="https://www.cz5h.com" style="color:auto;">CZ5H.COM</a></b> 
   <br /> 
   <a href="https://www.cz5h.com"><img style="height:25px !important;" src="https://i.loli.net/2020/03/25/NbrlqVpzLBj8Xta.png" /></a> 
  </center> 
  <br /> 
  <br />  
 </body>
</html>

收到邮件的评论者看到的效果:

7. 变量填写完毕后部署

完成之后的问题

以上全部完成,基本可以实现比较友善的评论系统,但仍然存在一个大问题:

LeanCloud 的强制休眠!

该休眠会导致有很大概率用户在评论时实例是休眠状态,从而导致邮件提醒的不可触发,即以上整个邮件系统并不是 100% 可用,迫切需要一种比较好的休眠策略。(好像每天必须休眠6小时)

可能的解决措施:

使用定时器激活:*/20 7-23 * * *

附录,文字版

自定义环境变量:

NAME

VALUE

备注

NO.

SITE_NAME

长征部落格(cz5h.com)

基本信息

01

SITE_URL

https://www.cz5h.com

基本信息

02

SENDER_NAME

胖五

SMTP配置

03

SENDER_EMAIL

tian*****@qq.com

SMTP配置

04

SMTP_USER

tian*****@qq.com

SMTP配置

05

SMTP_PASS

rekyxiqasdo*****

SMTP配置

06

SMTP_SERVICE

QQ

SMTP配置

07

SMTP_HOST

smtp.qq.com

SMTP配置

08

SMTP_PORT

465

SMTP配置

09

SMTP_SECURE

true

SMTP配置

10

BLOGGER_EMAIL

tian*****@qq.com

站长通知

11

MAIL_SUBJECT_ADMIN

${SITE_NAME}上有新评论!

站长通知

12

MAIL_TEMPLATE_ADMIN

站长通知

13

MAIL_SUBJECT

尊敬的『${PARENT_NICK}』,您在${SITE_NAME}上的评论刚刚收到了一条新回复!

用户通知

14

MAIL_TEMPLATE

用户通知

15

AKISMET_KEY

4b02d0d*****

评论过滤

16

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 修改自定义站点监控页面的样式

    许久之前就开始使用 UptimeRobot 来监控站点的状态了,不过一直是使用默认的方式,即绑定域名后使用官方的默认模板,使用体验还算可以,但令人不爽的是只有最...

    ZONGLYN
  • NameNode HA:如何防止集群脑裂现象

    转自:http://www.cnblogs.com/shenh062326/p/3870219.html 作者:南国故人

    ZONGLYN
  • 使用D3.JS进行坐标轴绘制和图绘制

    前面已经说过D3的功能十分强大,但是往往实际使用时只需要用到一部分内容,在这里,就只用到了 比例尺 和 布局 两部分,外加 核心 的请求部分(请求数据),分别用...

    ZONGLYN
  • 长度单位、calc() 表达式

    (adsbygoogle = window.adsbygoogle || []).push({});

    双面人
  • 一个搜索条样式,包括select的美化

    一直以来用CSS控制select都没有实现过。还是只能用JS来模拟。 by youku <!DOCTYPE html PUBLIC "-//W3C//DTD X...

    练小习
  • WordPress网站备案关站屏蔽首页html单页源码

    把下方的html源码放到WordPress根目录的index.html文件(如果没有就创建)。然后去网站配置文件把首页设置为index.html

    AlexTao
  • Valine Admin 配置手册

    二级域名用于评论后台管理,如 https://deserts.leanapp.cn 。

    Savalone
  • 前端|创建简单动态时钟

    动态时钟,就是通过CSS工具的美化效果和引入JavaScript,让网页呈现出钟表的动态效果,让它能够记录时间。通过改变背景颜色、指针颜色和阴影效果,让时钟呈现...

    算法与编程之美
  • 来来来,手把手教你做大白!

    这个东西也是经常被拿来玩的一个小东西,就是通过border-radius 去自己切一个图形。

    疯狂的技术宅

扫码关注云+社区

领取腾讯云代金券