馋 Artalk 的自定义专属头衔很久了,但是 Twikoo 迟迟不开发这个功能,就看看能不能自己改改。

找到 twikoo.all.min.js 源代码,搜索e.comment.master快速定位到大概位置,这块是个叫 3072 的函数,看了一下猜测应该是生成评论 DOM 结构用的。

  • e.comment.master是判断该评论是否是博主的评论;

  • e.comment.nick是该评论用户的昵称;

  • e.comment.mailMd5是该评论用户的邮箱加密后的哈希值。

那么我就可以根据这个e.comment.nick或者e.comment.mailMd5标记具体的用户了,考虑到有时候用户容易输错昵称或者经常改名,所以我用的是邮箱哈希来标记。

我打印了一下评论用户邮箱的哈希,确定是采用的普通的 MD5 加密或者 SHA256 加密,我翻阅了一下 Twikoo 的更新日志,具体是 1.6.36 版本之前用的是 MD5 加密,之后用的就是 SHA256 加密。

那么如果你知道你好友的评论邮箱(一般都是QQ邮箱),那就可以算出来他的评论的邮箱哈希了。

修改 twikoo.all.min.js,并在主题设置文件 _config.butterfly.yml 中 CDN > option > twikoo 处引入。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ......
e.comment.master ? t("span", {
staticClass: "tk-tag tk-tag-green"
}, [e._v(e._s(e.config.MASTER_TAG || e.t("COMMENT_MASTER_TAG")))]) : e._e(), e._v(" "),
// 找到这段代码区域,加入以下语句
// ------begin--------------------------------------------------------------------
e.comment.mailMd5 == '邮箱哈希' ? t("span", {
staticClass: "tk-tag tk-tag-purple"
}, [e._v(e._s('自定义头衔'))]) : e._e(), e._v(" "),
// -------end---------------------------------------------------------------------
e.comment.top ? t("span", {
staticClass: "tk-tag tk-tag-red"
}, [e._v(e._s(e.t("COMMENT_TOP_TAG")))]) : e._e(), e._v(" "),
// ......

当然tk-tag-purple的样式需要自己补充一下。

效果如下:

自定义头衔示例