参考: Waline 评论系统的介绍与基础配置 | 荷戟独彷徨
前端: 配置 LeanCloud
使用 LeanCloud 国际版 创建应用, 进入控制台的「设置」→「应用 Keys」界面, 记录AppID、AppKey、MasterKey 三个值。
首先是注册 Vercel 账户,用 GitHub 账户注册即可。然后使用开发者提供的快速部署链接 ,直接将开发者的 Waline 仓库 Clone 到 Vercel 新创建的项目中。
在环境变量(Environment Variables)中配置 LEAN_ID
、LEAN_KEY
和 LEAN_MASTER_KEY
三个环境变量。它们的值分别对应在 LeanCloud 中获得的 AppID、AppKey 和 MasterKey。
点击「Deploy」就会进行部署。稍等片刻,会看到满屏的烟花庆祝你部署成功。点击「Visit」会跳转到部署好的地址上,该地址即为之后需要填入的 serverURL
地址
自定义域名
在DNS管理页面, 添加:
指向cname.vercel-dns.com
的CNAME
指向76.76.21.21
的A Recoder
将评论插入主题:
详见插入 MemE 主题
开启邮件提醒功能
邮件提醒功能,即当某人在文章下方进行评论的时候,博主能够收到提醒邮件;某人的评论得到新回复的时候,这个人也能收到提醒邮件。这虽然不是一个必要的功能,但能节省两个人之间沟通的间隔时间,不必天天守在后台去看是否有人评论了某篇文章。
添加Vercel环境变量
在 Vercel 的项目中添加以下新的环境变量:
AUTHOR_EMAIL
:博主邮箱,用来区分发布的评论是否是博主本身发布的。如果是博主发布的则不进行提醒通知。
SMTP_SERVICE
:SMTP 邮件发送服务提供商,可以在这个页面 查看所有支持的运营商。如果没在列表中的可以自行配置 SMTP_HOST
和 SMTP_PORT
。
SMTP_HOST
:SMTP 服务器地址,如果未配置 SMTP_SERVICE
的话该项必填。
SMTP_PORT
:SMTP 服务器端口,如果未配置 SMTP_SERVICE
的话该项必填。
SMTP_USER
:SMTP 邮件发送服务的用户名,一般为登录邮箱。
SMTP_PASS
:SMTP 邮件发送服务的密码,一般为邮箱登录密码,部分邮箱(例如 163 邮箱)是单独的 SMTP 密码。
SITE_NAME
:网站名称,用于在消息中显示。
SITE_URL
:网站地址,用于在消息中显示。
SENDER_NAME
:自定义发送邮件的发件人,选填。
SENDER_EMAIL
:自定义发送邮件的发件地址,选填。
MAIL_SUBJECT
:评论回复邮件标题自定义。
MAIL_TEMPLATE
:评论回复邮件内容自定义。
MAIL_SUBJECT_ADMIN
:新评论通知邮件标题自定义。
MAIL_TEMPLATE_ADMIN
:新评论通知邮件内容自定义。
自定义回复邮件标题和内容
MAIL_SUBJECT
、MAIL_TEMPLATE
、MAIL_SUBJECT_ADMIN
、MAIL_TEMPLATE_ADMIN
四个环境变量是用来自定义回复邮件标题和内容的。不过一般而言,邮件回复的时候,标题和内容都不是固定的。比如说 A 回复了某条评论,系统发送邮件通知评论作者 B 的时候,标题最好含有 B 的名字。内容也应该含有 A 对 B 的什么评论作出了什么评论。这些内容会随着评论作者和评论内容的不同进行改变,所以不能直接简单的设置成固定的内容,需要设定一个回复模板。
模板可以通过 self
、parent
和 site
对象传递参数. 在Vercel自动创建的仓库中,
有一个index.js
文件, 最初的内容为:
1
2
3
4
5
6
7
const Application = require ( '@waline/vercel' );
module . exports = Application ({
async postSave ( comment ) {
//do what ever you want after save comment
}
});
在{}
中添加相关配置即可。下面是完整的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const Application = require ( '@waline/vercel' );
module . exports = Application ({
mailSubject : '{{parent.nick}},您在博客「{{site.name}}」上的评论收到了回复' ,
mailTemplate : `
<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 8px;">
您在博客<a style="text-decoration:none;color: #12ADDB;" href="{{site.url}}" target="_blank">{{site.name}}</a>上的评论有了新的回复
</h2>
<div style="padding:0 12px 0 12px;margin-top:18px">
<p>{{parent.nick}},您曾发表评论:</p>
<div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">{{parent.comment | safe}}</div>
<p><strong>{{self.nick}}</strong> 回复说:</p>
<div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">{{self.comment | safe}}</div>
<p>您可以点击<a style="text-decoration:none; color:#12addb" href="{{site.postUrl}}" target="_blank">前往原文查看完整的回复內容</a>,欢迎再次光临<a style="text-decoration:none; color:#12addb" href="{{site.url}}" target="_blank">{{site.name}}</a>。</p>
<br/>
</div>
<div style="border-top:1px solid #DDD; padding:13px 0 0 8px;">
该邮件为系统自动发送的邮件,请勿直接回复。
</div>
<br/>
</div>` ,
mailSubjectAdmin : '您的博客「{{site.name}}」收到了新评论' ,
mailTemplateAdmin : `
<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 8px;">
有人在<a style="text-decoration:none;color: #12ADDB;" href="{{site.url}}" target="_blank">{{site.name}}</a>发表了新的评论
</h2>
<div style="padding:0 12px 0 12px;margin-top:18px">
<p><strong>{{self.nick}}</strong> 评论说:</p>
<div style="background-color: #f5f5f5;padding: 10px 15px;margin:18px 0;word-wrap:break-word;">{{self.comment | safe}}</div>
<p>您可以点击<a style="text-decoration:none; color:#12addb" href="{{site.postUrl}}" target="_blank">前往原文查看完整的评论内容。</a></p>
<br/>
</div>
<div style="border-top:1px solid #DDD; padding:13px 0 0 8px;">
该邮件为系统自动发送的邮件,请勿直接回复。
</div>
<br/>
</div>`
});