惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
G
Google Developers Blog
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
MyScale Blog
MyScale Blog
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
爱范儿
爱范儿
罗磊的独立博客
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
Vercel News
Vercel News
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
C
Check Point Blog
美团技术团队
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Dallas Lu

一些没有意义的事情 博客程序的一次大重构 OpenWRT 使用 udp2raw 对抗 WireGuard 阻断 如何证明你是原创作者 Nginx 泛域名配置的隐患与对策 WISeID S/MIME 证书 V2EX 刑满释放记 使用 Radicale 在 Ubuntu 24.04 中搭建 vCards CardDav 服务 邮件服务的域名成功从 SURBL 黑名单移除 The Domain of Mail successfully removed from SURBL blacklist 网站多语言的设计细节 Website Multilingual Design Details Current Progress and Outlook of the Website Comment System 在公网使用 iptables 转发端口时保留客户端 IP Retaining Client IP with iptables Port Forwarding on Public Networks 邮件投递平台 Postal 的使用经验 Experience with Using Postal, the Mail Delivery Platform 自建 Postal 完美替代 SendGrid Build Your Own SendGrid: Postal SMTP Server 互联网在崩塌吗,然后呢 Is the Internet collapsing and then what 在 SvelteKit 应用中使用 JSON-LD Using JSON-LD in SvelteKit Applications 网页的打印样式应该怎么写 How to write print styles for web pages “茴字的四种写法”之 IP 与域名 Trivia: Special ways of writing IP and domain names 怎么伪造 Git 提交的时区 How to fake the timezone of a git commit 供大众交流的论坛和其它替代产品还是不好用
网站评论系统的目前进展和展望
达拉斯・卢 · 2024-08-08 · via Dallas Lu

一年多前,我研究了一下当时评论系统的现状,最后给网站选择了传统的评论系统。截至目前,有了一些新的进展,和新的想法。

进展

接入 Webmention

出于研究的目的,接入了 Webmention。方便起见,选择了 webmention.io。通过一些桥接服务,可以主动地收集到更多散落各处的互动信息。比如,你将文章链接发布到社交媒体,并收到了一千个赞,这一千赞可以显示在文章上1

理论上,通过桥接,可以收集到更多类型的内容,比如 Hacker News 上的讨论互动。如果整合 Nostr 的话,就不需要网站本身接入 Nostr 网络了。

接入邮件

邮件通知

传统评论与邮件是一对老搭档了。为了更好地发送评论相关的邮件通知,我还从 SendGrid 迁移到了 Postal。

早年间,豆瓣网的站内信的邮件通知,只有一句话:你有新豆邮。我对此非常愤恨,明明邮件都发过来了,也不说一下是谁发的,说了什么。还要辛苦地登录网站去看。所幸,博客界一般都比较开放,如果你在网站发布的评论,被他人提及或回应,一般就会收到包含全文详情的邮件。

邮件回复

明明全文详情都发过来了,为什么不能直接回复呢?太多的通知邮件的发件信箱都是noreply@*,除了一些商家的工单系统,以及 Github 等服务。从这点来说,借用 Github Issue 来实现评论系统的方式还真是很棒。

通过邮件回复,也并不难,可以使用现代的邮件平台,他们可以把解析好的邮件内容转发到指定的 Http Endpoint 上2

使用邮件来做评论系统,可以让讨论博客文章像使用邮件列表一样。在页面上也很方便地处理成嵌套评论。

邮件评论

再进一步,为什么发邮件只能用来回复邮件通知呢?或许可以主动出击,可以打开邮箱客户端,直接发送邮件来评论文章或是别人的评论。喜欢用邮件来与人交流的,有福了,终于。

在发表评论的按钮旁,我放置了一个 mailto 协议的超链接,点击打开邮件客户端,就可以用发邮件来替代页面表单。

访客的身份

如果你用发邮件的方式来评论,那么你的邮箱地址就自然是有效的。在网站上就可以显示一个认证图标,以向人明示,这人使用了真实的邮箱。

当然这不是说,使用表单评论的人的邮箱就算是无效的。不过,谁知道呢,邮箱一栏是可以随便填的,可以填别人的,也可以填一个假的。

既然邮箱不一定是真实的,索性,我就允许你不写邮箱。让你彻底享受隐私的礼遇、上网的快乐,代价是在你的信息旁边显示一颗狗头——在网络上没人知道你是一条狗。

既然邮箱这样的东西,都可以不填了,那么名称也就更无所谓了。当然,后面这种信息不全的回复,是会受到一定的发送限制,以及可能需要审核。

敏感信息

一条评论,大概只有两个字段是敏感的,IP 与邮箱。我的文章内容是基于 markdown 文件的,非常便于开源。但本地评论中的敏感信息,则需要加密存储,使用时再使用密钥还原。

展望

改进

性能与有用的小功能,是永远的改进方向。比如分页加载、投票、查询等等。以及,更好的邮件通知。因为在使用 WordPress 的日子里,网站常常被 Spam 评论轰炸,而我的邮箱则被评论的邮件通知轰炸。

整合

我认为文章的评论,是文章内容的延伸。如果没有评论,那么还不如直接在 RSS 阅读器、公众号平台、营销号发的截图里读一读就算了。除了联系作者外,就没有必要访问文章了。所以四处散落的信息,可以收集起来,让读者更直观地评估文章。

评论服务

当前静态网站非常流行,更多的时候大家需要的是一个第三方评论系统。鉴于多说关闭事件,使用第三方评论系统的风险也必须要考虑。如果我来做一个评论系统的话,那么最重要的一点就是数据随时可导出,或者说实时导出——因为我的评论系统目前是基于文件存储的,可以 push 到 git repo。

结语

个人网站或博客,已经是一种怀旧玩具了。最近竟看到有人还在折腾第三方评论系统3,或是自研程序和评论系统4。怀旧不一定复古,应该会有更多花样。


  1. Jason. 透過 webmention 來搜集 blog 的社群迴響. Jason's Web Memo. 2022-09-12. ↩

  2. Tautvydas Tijūnaitis. Enable the use of email replies to post comments or messages. Mailersend. 2022-05-25. ↩

  3. ashin. 个人博客新增云评论留言板,欢迎大家测试. V2EX. 2024-08-06. ↩

  4. Darmau. This site has evolved to the third generation. Darmau. 2024-08-05. ↩