因为 JayChou'wiki 是用的 vuepress 构建的,vuepress 作为一个纯静态文档,是没有逻辑交互的,比如评论服务。但 vuepress 官方开发了很多支持插件,包括评论插件,在做 JayChou'wiki 时采用了 Waline 作为评论系统,只记录一下配置,以免日后再需要。内容摘抄 Waline 评论系统的介绍与基础配置。
部署
参考官方网站,数据引擎 LeanCloud ,服务端 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
对象传递参数,其中分别包含以下变量:
self
:该条评论本身变量备注nick
评论者姓名mail
评论者邮箱link
评论者网址url
文章地址comment
评论内容parent
:该条评论的回复对象 (父评论) 变量备注nick
评论者姓名mail
评论者邮箱link
评论者网址type
评论者类型comment
评论内容site
:网站配置变量备注name
博客名字url
博客网址postUrl
评论完整网址
比如想要显示评论者姓名,就用 {{self.nick}}
。这样一来,我们就可以对上述四个环境变量设定模板。不过由于 Vercel 的环境变量大小限制为 4KB,如果你的模板存储需求比较大,需要直接使用代码配置。
使用代码配置则需要到 GitHub 上自动创建的那个私人仓库。仓库中有一个名为 的文件,最初的内容为:index.js
在 {}
中添加相关配置即可。下面是完整的代码:
在 index.js
文件中,还可以设定安全域名、违禁词、 IP 禁止名单等等