回复《Shoka:+Webmention》

感谢 Shoka:+Webmention 的提及。
其实周日就在 RSS Fead Reader 里确认到这个消息了,忙于其他事第三天才回复。
webmention 能自动发送在改善使用体验上是必要的,之前尝试和 Mastodon 整合的时候用了 Huginn, 订阅 Feed 然后发到 Mastodon 和 Webmention API 的方式。
不过 Huginn 失修之后这个流程就坏掉了,记得是跑着跑着把 VPS 拉挂了,当时也没太在意就先关了再说。

逐渐开始有 webmention 往来的话还是打算抽空恢复起来。https://www.webmention.app/ 里基本概括了能用的方案和取舍。考虑到之前主要用的是 https://telegraph.p3k.io/ 的服务,感觉如果切换服务 + 根据 Feed 自动发送 webmention 可能会导致重复提及,这篇依然手动操作。
不太想用 IFTTT 而是继续这些,果然还是看有没开源是否可以自部署吧。虽然懒癌发作的话自己没好好维护服务就会导致服务质量根本比不上用那些别人部署的,从这个角度说用稳定的镜像+容器服务也是个路子。

立个 Flag 抽个时间把这个站配个自定义域名,也不带 path,更符合 IndieWeb 相关实践, 更好地使用相关服务,比如 https://fed.brid.gy/

回复《webmention 实现参考》

webmention 实现参考
几年前的探索被搜到总结了这么好的文章,感觉挺惊喜的。
如果是用 webmention.io 的服务的话,订阅其 RSS Feed 接受 Webmention 提醒这个实践看来确实还是能工作的,配合 FreshRSS 等服务可做到多端同步。
Feed 突然有提示也算惊喜了。

Webmention Demo

为本站加上Webmention支持,并尝试与其他自称支持webmention的服务交互。
通过订阅webmention.io提供的RSS源,也能足够及时地收到提示,各种信息汇集到一个视图下,注意力可聚焦。

Fediverse

发一个toot提及博文并发webmention,Blog上的脚本从中构造出用于交互的链接,包括操作栏和联邦宇宙入口。

比起把toot上下文集成进来作为评论区,目前还是更倾向把移步Fedivese讨论,因为可以让读者在自己的主场回复。

Comment

  • 尝试做一个评论插件,把页面的webmention加载出来。

参考时间线模板

1
2
3
4
5
6
7
8

<div class="timeline">
<article class="media">
<div class="media-content">

</div>
</article>
</div>

参考KAIX.IN的Webmention区实现,对Fediverse入口做了特殊处理,增加了Emoji来加强语义

尝试

Micro.blog

Micro.blogs声称会把对博文的回复作为Webmention来对待

Hosted blogs on Micro.blog can also receive Webmentions from other sites outside of Micro.blog. If the site URL has been verified in a Micro.blog user’s profile, Micro.blog can also match the incoming Webmention with a Micro.blog user and use their username. If not, Micro.blog will create a special “domain name” user for the incoming Webmention.

测试结果是站外的webmention能发送成功,返回202,但是无法在Micro.blog内看到来自这里的Webmention。
应该是接收了,但是不在Micro.blog体系内就难以用@xxx的形式展现出来,还是因为这个站的域名是二级域名,所以不被认可呢?
看来还是“自成一格”的

独立Blog

Re:Linked

能找到基于相同的理由在做相同的事的博客,还是很欣慰的。

  • 2021-02-02 在页面里没有找到webmention相关link,也许是出于某些考虑暂时撤下了?
  • 2021-02-03 在Fediverse里联系上,webmention成功!

KAIX.IN

从上文溯源就会找到这位的Blog。

真是一位了不起的咖啡师。


测试结果,返回201了,看来是发送成功了呢。

在对方页面上看到链接了,评论区实现方式好精巧,值得参考。

参考社区入口链接的处理方式,对关联到Mastodon的webmention做特殊处理吧。

Mastodon Integration

(RSS->Mastodon)->Webmention->Share

思路

为每一篇博文生成一个对应的Toot,并把Toot链接回链到博文上,形成双向链接,以Toot接入Fediverse;
前者有web规范,以前有linkback,pingback等,这里用Indiweb推荐的Webmention形式

步骤

  1. 用hexo生成atom.xml文件,即Blog文章的订阅源

  2. 用Huginn/IFTTT/自定义bot订阅1的RSS源,对每一条目调用Mastodon API, POST Statuses,content为我发布了博客文章: {title} {url}

  3. 取2的response body,解析为JSON对象,取其id,即为toot的id

  4. 调用telegraph API, source为3中返回的id拼装出的url https://{mastodonDomain}/interact/{statusId}?type=reply,target为RSS每个条目的url

    • telegraph会把这个消息发送给对应的webmention server
  5. 在Blog模板添加“分享”脚本,调用webmention API,获取页面收到的webmention

  6. 过滤5中获取的webmention,过滤出由自己mastodon实例发出的webmention(根据域名和作者)
    6-1. 取webmention的url,即第4步拼装出的url,把url设置到【回复】链接上;
    6-2. 把type=reply替换成type=reblog,把url设置到【转嘟】链接上
    6-3. 把type=reply替换成type=favourite,设置到【喜欢】链接上