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

推荐订阅源

宝玉的分享
宝玉的分享
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
V
Visual Studio Blog
爱范儿
爱范儿
H
Help Net Security
J
Java Code Geeks
I
InfoQ
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
S
SegmentFault 最新的问题
S
Securelist
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园_首页
B
Blog
F
Fortinet All Blogs
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
S
Secure Thoughts
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Schneier on Security
Project Zero
Project Zero
Martin Fowler
Martin Fowler
C
Cybersecurity and Infrastructure Security Agency CISA
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic

Dallas Lu

邮件服务的域名成功从 SURBL 黑名单移除 网站多语言的设计细节 在公网使用 iptables 转发端口时保留客户端 IP 邮件投递平台 Postal 的使用经验 自建 Postal 完美替代 SendGrid 互联网在崩塌吗,然后呢 在 SvelteKit 应用中使用 JSON-LD 网页的打印样式应该怎么写 “茴字的四种写法”之 IP 与域名 怎么伪造 Git 提交的时区 供大众交流的论坛和其它替代产品还是不好用 改编不是照搬 一次排查诡异的网络问题的经历 在 OpenWRT 23 中使用 nftset 配置 Shadowsocks 规则 使用自建 Tabby Web 来同步 Tabby 配置 手动建立自己的 IPv6 Tunnel 服务 在 PVE 手动配置网络及虚拟机 IPv6 公网 在 PVE 中缩小 Ubuntu 虚拟机的磁盘 Beancount 摊销与折旧的使用以及相关插件
网站评论系统的目前进展和展望
达拉斯・卢 · 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. ↩