使用Webmention保障评论自由
2022/8/23 更新教程 :
本站已经启用网络提及,当您的博客文章中出现超链接指向本站时,像这样
<a class="h-entry u-url" href="https://funs.life/#!67">回应文章</a>
你可以到文章底部的回应框告知我,我成功收到 metion-of 后,你的回应内容将会自动显示在底部,这是最基本的 webmentions 呈现。
webmentions 还有很多HTML微格式可以通过此实现更多功能,例如:
当链接中出现 u-like-of 标签后,我能将你的这类回应归结于"喜欢"类型
<div class="h-entry">
<a class="u-url u-like-of" href="https://funs.life/#!67">
我喜欢这篇文章!
</a>
</div>
又比如你想要转发这篇文章,可以使用 u-repost-of 标签进行实现:
<div class="h-entry">
<a class="u-url u-repost-of" href="https://funs.life/#!67">
我要转发这篇文章!
</a>
</div>
当然,比较详细的 webmentions 它的例子是这样的,它包括了回复者的名字,博客,头像,时间,内容,而这一切我都无法干涉,你发出的回复永远属于你!
<article class="h-entry">
<h1 class="title p-name entry-title">回应标题</h1>
<a class="p-author h-card" href="回应作者"><img class="u-photo" src="回应头像" alt="" width="24" height="24">
回应名字</a>
<time class="date dt-published" datetime="回应日期 ">回应日期</time>
<a href="这是你提到本文的网址" class="u-url">[源]</a>
<div class="content e-content p-name">回复内容</div>
<a class="p-category" href="https://funs.life/#tag">回应分类</a>
</article>
# 正文:
很长一段时间,我的静态博客都使用 waline 作为博客交流的主力,但是由于我的 不主动性 以及想当 过客 的心态,我的博客很少有人来往,其留言也多是些祝福话语,亦或是闲聊碎语,垃圾广告占据多数,很难对我真正在意的文章有真实的反馈。
我也尝试过在评论区进行深入交流,但那太难了,不仅受限于字数限制,为了预防垃圾评论的审核机制也让人又恨又爱,而且留言框总给人一种 随意,简约 的态度,或许你对文章有些衍生想法,有些长篇大论?但是受限于此,最后呈现于页面的也多是些三言两语,并不能很好的与博主进行交流。
后面我取消了全站的留言框,把仅存的留言数据汇总在一起,放到页脚 留言框 位置,也许更多人习惯于这种受限制的交谈方式,所以你也可以去到那里对本文提出交流反馈。
我始终坚持互联网是建立在自由之上的,而评论也是应当如此,但是当你把辛苦撰写的评论发送到需要回复的网站上时,评论便不属于你了,是否审核通过或是是否需要删除保留,这不能由你来决定,而是由网站博主决定的,诚然现在都提倡去中心化分布式网络,自己的数据可以完全由自己管理,但是这么多分布式社交平台,给我感觉还是不够自由,没有真正统一的感觉。
得益于现在互联网的普及,比较我初中时建立一个网站要废些周折,现在多数都是一键式的,很容易就能建立起属于自己的网站,我也建议还没有博客的你建立起自己的网站,其实写文章也不是太难,每个人的生活都是多姿多彩的,你只需要记录下这一切,抱歉跑题了🤣。
所以如果非要选择一个自由的平台发布的话我认为自建博客依旧是最优选择,但是我也常想 有没有办法能在自己博客就能回复别人的文章?并且让别人及时知道这一切?或者别人在自己网站上撰写了对我所写文章的答复,提到了我,我也能及时获取通知? 就在上周,我很遗憾我过了这么长时间才了解到 Webmention 这么一个好东西~~(这可真是个水文章的好玩意儿)~~,但是也不算太晚。
Webmention 是一种用于网站之间交互的网络协议,由indieweb向W3C贡献,简单的来说,你能用此来对两个网站之间进行@对话互动,而自己的言论完全由你自己管理,它仅做的就是帮你通知对方以及通知你自己,若依据较为复杂点的协议内容(我愿称其为语法)它还能实现点赞,回复,转发等内容交互行为。
而 Webmention 工作的大概流程如下:
- 我发布了这篇关于 Webmention 的文章(博客支持接收 Webmention 通知)
↓
2. 而你想对本文作出回复,所以你在自己博客上撰写了文章,**重要:文章中提到了本文的地址并且链接到了本文**↓
3. 通过 Webmention发布软件 自动通知我的 Webmention端点 服务,你的贴子已经链接到我的文章↓
4. 这个时候 Webmention 会将你的文章(称为source)和我的文章(称为target)进行排队解析验证HTML内容,通过 Webmention 协议内容确认是否符合要求↓
5. 确认无误后,消息通知成功发送到我的 Webmention端点 ,而我也能获取相关 json 数据来将你的回复内容进行渲染,然后呈现到我的博客上,例如这样的: {
"type": "entry",
"author": {
"type": "card",
"name": "PonYoung",
"photo": "logo.webp",
"url": "https://funs.life"
},
"url": "https://funs.life/#!67",
"published": "2022-08-03T00:00:00 00:00",
"wm-received": "2022-08-03T00:00:17Z",
"wm-id": 000000,
"wm-source": "https://funs.life/#!67",
"wm-target": "https://funs.life/#!67",
"content": {
"content-type": "text/plain",
"value": "这是回复文章",
"text": "这是回复文章"
},
"in-reply-to": "https://funs.life/#!67",
"wm-property": "in-reply-to",
"wm-private": false
}
而想要实现这一切非常简单,你可以按照协议内容来自己自建 Webmention 服务~~(我做不到)~~,在 GitHub上有很多例子,或者选择别人搭建的更稳健的托管平台来实现 Webmention 通知,我的博客使用的是 Webmention.io 来进行 Webmention 的通知接收管理,虽然也是用的别人的服务,但它并不能对我的文章,或是你的回复文章进行干涉(审核,删除),仅限于你可以把某个讨厌网站发送的通知删除屏蔽而已。

实现 Webmentions 先向个人主页上添加自己的主页地址
例如编辑 GitHub 个人资料,主页位置添加你的网站 URL https://funs.life
然后插入下方代码到网站 < head > 位置
<link rel="me" href="http://github.com/abcxyz" />
<link rel="me" href="mailto:ponyoung@example.com" />
同样像上面那样通过在 Twitter,FaceBook,Instagram,Github 等设置主页地址,或是邮箱接收验证邮件,以此来验证 你是你自己 [rel=“me”] 这一问题后成功验证 IndieAuth 你就能使用 Webmention.io 通知服务,无需创建帐户或记忆密码,并且在网站头部添加如下的标签,实现网站跨站交互通知接收功能。
<link rel="Webmention" href="https://Webmention.io/你的域名/Webmention" />
<link rel="pingback" href="https://Webmention.io/你的域名/xmlrpc" />
我的博客已经依靠 Webmention.io 实现了网络提及的通知以及发送,虽然它是简陋的,但是至少它实现了,我们也向自由的网络更近了一步,如果你也在自己博客实现了网站 Webmention 的接收发送,可以尝试向本文发送 Webmention 通知,在下面看看是否有相应显示。
常常看到人们说个人博客是一个个的 网络孤岛 ,但我想通过 Webmention 可以告别这一切,掌握自己的言论,订阅自己想看的RSS,在自己的网站发布文章,自由且互联的网络本就该这样。
下面是我了解 Webmention 时看到的一些网站,或许对你有更多的帮助。
1: indiewebify me这个网站可以解析验证你的 Webmention 格式是否生效
2: Webmention.app 这个平台可以查找你的文章中支持接收 Webmention 通知的网站并进行通知
3: telegraph.p3k.io 电报,这个网站可以帮助你发送 Webmention 通知,API十分便捷
4: Webmention.rocks 端点测试,这个网站可以验证你的网络提及服务是否生效,或是符合协议规范,里面有多种验证方式
5: 如何手动提及便于开发测试,你可以看这indieweb.org/Webmention-developer
6: 如果你没有网站又想体验网络提及回复 commentpara.de 这个网站提供的匿名回复能够帮到你
7: brid.gy 也是一个 Webmention 接收服务托管平台,它可以监控您的 Twitter、Facebook 或 Instagram 活动,并为您收到的每个点赞、回复或转发发送网络提及。