跳至正文
LNN的博客!

给 Jekyll 博客添加评论区

近日我给这个博客添加了评论区。因为是使用 Github PagesJekyll 构建的静态网页博客,不方便实时地把评论添加到网站上。

给静态博客添加评论区的一个常见方法是使用 Disqus。这是一个博客评论平台,只需在自己的静态站上引用相应的脚本,就可以创建一个评论区。

在评论区上方还可以选择表情符号进行快速互动。

不过,Disqus 在中国大陆无法访问,而其它类似的平台基本都没有免费订阅方案,所以我放弃了这个方法,使用了一种另类的办法。

我用问卷星创建了一个表单用来接收评论;在 Jekyll 博客中添加了一个 comments 数据文件,用来存储全站的所有评论:

- date: 2021-12-30T22:08:41+0800
  post_url: "/posts/210306_rouge_test"
  nickname: "DGCK81LNN"
  email: "triluolnn@163.com"
  homepage: "https://github.com/DGCK81LNN"
  content: |
    这是一条测试评论
  reply: |
    这是一条测试回复

一旦有人评论(不会真的有吧😅),我就手动把评论写进数据文件中。

我还写了一个 Liquid 扩展来显示 Gravatar 头像,因为需要对用户的邮箱地址生成 MD5 哈希。虽然 Gravatar 在国内一样无法访问,不过可以用 loli.net 镜像站。

https://gravatar.loli.net/avatar/b57408c9ef25d27a791ba9b871aa03f9

使用这个网址应该就可以正常显示出我的头像。

这个扩展里还有一个 Liquid 过滤器,可以把邮箱地址中的一些字符改成英文单词(如:triluolnn at 163 dot com)。

然后,在布局模板里添加了评论区的代码。值得注意的是,通过判断 page.collection 的值,可以只在博文中显示评论区:(Jekyll 文档的“变量”一页上好像没提这个变量)

{%- if page.collection == "posts" %}

这篇博文下有一条测试评论,可以看到评论的显示效果,我自己觉得比较满意。


评论区

加载基于 GitHub issues 的 utteranc.es 评论区组件……