CYFOR
写的很差,毕竟张小龙说要提防 blog 写得很好的产品经理
非资深产品经理,8 年+工作经验,邮箱 cyfor@foxmail.com
垂直经验:DevOps 、 OpenApi 、 ToB 、 ToG 、区块链、数字政务、智慧城市
(左侧社交链接不重要,放几个是为了好看)

使用 Waline 给 Vuepress 增加评论功能

因为 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_SUBJECTMAIL_TEMPLATEMAIL_SUBJECT_ADMINMAIL_TEMPLATE_ADMIN  四个环境变量是用来自定义回复邮件标题和内容的。不过一般而言,邮件回复的时候,标题和内容都不是固定的。比如说 A 回复了某条评论,系统发送邮件通知评论作者 B 的时候,标题最好含有 B 的名字。内容也应该含有 A 对 B 的什么评论作出了什么评论。这些内容会随着评论作者和评论内容的不同进行改变,所以不能直接简单的设置成固定的内容,需要设定一个回复模板。

模板可以通过 selfparent  和 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 禁止名单等等

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理