关闭评论区,把 Waline 当留言板来用
目录
之前我使用的是 Disqus 博客评论系统,积攒了一些评论。但是因为 Disqus 的广告实在是太多了,界面也丑,于是我转向了无广告、简洁干净的 Waline 评论系统。
从 Disqus 迁移到 Waline 的步骤(操作指南)
- 在 LeanCloud 注册 Waline 评论系统。
- 部署自己的 Waline 评论系统,例如使用 Netlify,部署过程可以参考 Vercel 部署 (服务端),设置大同小异。
- 把 Disqus 的评论导出,生成
.xml.gz
文件,并解压得到xml
文件。指路: Disqus Admin -> Setup -> Export。 - 使用 Waline 提供的 数据迁移助手 将
xml
文件转换成json
格式。 - 将
json
格式的评论导入 LeanCloud 后台(在数据存储 -> 导入导出
)。完成后在结构化数据
中可以看到所有评论。 - 部署博客,即可在文章下看到原本 Disqus 的评论显示在 Waline 评论系统中。
为什么不想要文章评论区了?
在迁移评论的过程中,我意识到一件事情:我不想要文章评论区。因为:
- 我反感使用表情符号来表达读者对某篇文章的态度。我不认为这能够带来有意义的互动。
- 我写文章不需要别人的评论。但是,谢谢你的夸奖,我看到之后确实很高兴。
- 管理文章评论区对我来说需要心力,是很累的。
- 如果有人问了需要解答的问题,我会在文章的正文补充回答。所以读者不需要翻看评论区。
- 我不想看评论区,读者不需要看评论区,那么要评论区有什么用?读者如果有反馈,可以给我写邮件,或者,一个留言板就够了。
留言板
我刚开始使用互联网的时候,就很流行“留言板”这种东西。甚至很多人没有博客,但是有留言板。
自己搭建一个留言板还是挺麻烦的,但是我们刚才不是已经有了部署好了的 Waline 评论系统了吗?就用它了。
Hugo DoIt 主题更改
目前我使用的是 Hugo 的 DoIt 主题。我想要实现的是:关闭文章评论区,开启留言板。
需要更改的内容如下:
- 在
config.toml
中,确保以下内容的 true/false 状态:
# config.toml
[params.page]
comments = false
[params.page.comment]
enable = true
[params.page.comment.waline]
enable = true
serverURL = "https://你部署成功的地址.netlify.app/.netlify/functions/comment/"
pageview = false
comment = false
这样,每篇文章默认评论关闭,并且 Waline 能够正常运行。
- 在
content
目录下,新建一个文件夹board
。在content/board
下,创建文档index.md
,这是我们的留言板页面。内容是:
---
title: "留言板"
comments: true
---
# 留言板内容
注意留言板页面要使用 comments: true
开启评论。
别忘了回到 config.toml
文件增加下面的内容:
# config.toml
[[menu.main]]
identifier = "board"
name = "留言板"
url = "/board/"
weight = 10
- 这时我们注意到,做完以上两步,评论区还是没有关闭。为什么呢?这是因为 Hugo 的 DoIt 主题写得不是很完善(对不起了主题作者)。我们需要修改主题文档。
-
把
themes/DoIt/layouts/_partials
文件夹下的comment.html
和controls.html
复制粘贴到自己项目目录下的layouts/_partials
下,直接在自己的项目文件里做更改,因为 Hugo 会优先使用你的版本。 -
关闭文章评论区、只开启“留言板”页面的评论:
在 comment.html
文件里,把这行
<!-- comment.html -->
{{- if $waline.enable -}}
换成:
<!-- comment.html -->
{{- if and $waline.enable (eq .RelPermalink "/board/") -}}
这样就可以确保 Waline 的评论页面只出现在留言板页面上。
- 去掉文章页面的跳转评论区按钮:
在 controls.html
文件里,把这行
<!-- controls.html -->
{{- if .Page.Scratch.Get "enableComment" -}}
换成:
<!-- controls.html -->
{{- if and (.Page.Scratch.Get "enableComment") (eq .RelPermalink "/board/") -}}
这样跳转评论区按钮就不会在文章页面的右下角固定显示了,只会显示在“留言板”页面。
- 将历史文章评论导入留言板。
- 之前的文章评论是在每篇文章下对应的,我想把它们全部移到留言板。
- 进入 LeanCloud 后台
数据存储 -> 结构化数据
,将导入的评论的url
项改成:/board/
。 - 注意:更改之前做好备份。比如,之前的
json
格式的评论文件可以存好。
施工完毕。欢迎大家使用留言板!