IndieWeb 实现测试
生命在于折腾,是吧……
技术与研究 https://m.cmx.im/@Hollis/112126468891283297https://aaronparecki.com/2018/06/30/11/your-first-webmention生命在于折腾,是吧……
在实现了双语站点后,我又开始了新的折腾之旅。
本站使用的部分标签修改自 Kristof Zerbe 的 hexo-tag-plugins。我在他的文章中了解到 IndieWeb 社区,并由此又了解到与之关联的 microformats、IndieAuth、RelMeAuth、Webmention 等技术。原来,世界上有这样一群人把独立网站作为自己主要的在线身份,并且他们的网站也使用一套开放的技术与规范互相连接、互动。
不觉得这很酷吗?作为一名理工男我觉得这太酷了,很符合我对未来生活的想象,科技并带着趣味。 [1]
我也想试着成为这个群体中的一员。独立网站和个人域名我已经有了,IndieAuth、RelMeAuth 支持也很简单,剩下要做的是支持 microformats 和 Webmention。我就参照着 Kristof Zerbe 的三篇教程:“Hexo and the IndieWeb”“Hexo and the IndieWeb (Sending Webmentions)”和“Hexo and the IndieWeb (Receiving Webmentions)”以及其他的一些资料如 Runye 的《webmention 实现参考》、Jason Chen 的《透過 webmention 來搜集 blog 的社群迴響》针对我的博客作了一些改造。
改造过程还是有点儿小插曲的——Redefine 主题使用了 Tailwind CSS,会在页面中留下许多 h-
开头的类名,导致部分 microformats 解析器解析出错误的数据,于是我不得不用过滤器对主题作一些修改,将这部分 h-
开头的类名替换为其他类名。替换后,我生成的 h-entry 似乎能够正常解析。对于需要特殊类名如 u-in-reply-to
、u-like-of
的互动链接,我是写在 front-matter 里,用过滤器插入到页面中并隐藏起来。经测试,一篇文章最好只插入一个互动链接,并且一旦插入了互动链接,正文中最好不要出现其他链接了,否则可能会有解析错误。此外,我其实不确定我能提供正确的 h-entry 及其包含的链接的格式——在此前的测试中,Webmentioin Rocks! 说我没有正确包含 u-in-reply-to 链接,但这看起来是个 bug。刚刚说到 Webmention,在我的网站这边,需要做的工作是解析它们并显示在页面上。我选用了 PlaidWeb 的 webmention.js,作了一些适配性修改使其使用我自己写的简易的 i18n 系统。此外,我还增加了在评论及 Webmentions 两套互动系统间切换的功能,并且为 Webmentions 互动系统增加了一个手动发送的功能。
这一系列操作下来,我的网站又增加了好些屎山代码……我也该去忙忙我的毕业设计了。
2025-03-01 更新:
编写新主题后重新测试 IndieWeb 功能。应该显示喜欢了“Sending your First Webmention from Scratch”。
完
UP 主“老师好我叫何同学”的“理工男”梗 ↩︎