<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>去中心化 on 映屿</title>
    <link>https://blog.verdant.ee/tags/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96/</link>
    <description>Recent content in 去中心化 on 映屿</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    
      <managingEditor>i@glowisle.me (五葉地錦)</managingEditor>
    
    
      <webMaster>i@glowisle.me (五葉地錦)</webMaster>
    
    
    
    <lastBuildDate>Fri, 05 Dec 2025 17:22:22 +0800</lastBuildDate>
    
    
    <atom:link href="http://blog.verdant.ee/tags/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96/atom.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>一次对Webmention的探索</title>
      <link>https://blog.verdant.ee/posts/exploring-webmention/</link>
      <pubDate>Fri, 05 Dec 2025 17:22:22 +0800</pubDate><author>i@glowisle.me (五葉地錦)</author>
      <guid>https://blog.verdant.ee/posts/exploring-webmention/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Webmention is a simple way to notify any URL when you link to it from your site.&lt;/p&gt;&#xA;&lt;p&gt;It is an open web standard (W3C Recommendation) for conversations and interactions across the web, a powerful building block used for a growing distributed network of peer-to-peer comments, likes, reposts, and other responses across the web.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Webmention 是一种开放网络标准（W3C推荐标准），用于在链接到某个网址时，自动向该网址发送通知。它是构成分布式网络的基础组件，支持跨网站的点对点评论、点赞、转发等多种互动。&lt;/p&gt;&#xA;&lt;p&gt;在 &lt;a href=&#34;https://www.glowisle.me/posts/tear-hypocrisy-apart/&#34;&gt;上一篇文章&lt;/a&gt; 写完后，我开始寻找更合适的评论方案。Webmention这个看起来古老，但又超前的形式很快引起了我的兴趣。「去中心化」这个词貌似对我有什么魔力，就比如Mastodon，比Twitter更吸引我。&lt;/p&gt;&#xA;&lt;p&gt;我很想试试用Go手搓一套收发系统，但时间并不充裕，正巧&lt;a href=&#34;https://webmention.io&#34;&gt;webmention.io&lt;/a&gt;提供现成的服务和&lt;a href=&#34;https://indielogin.com/setup&#34;&gt;详细的文档&lt;/a&gt;，那就跟着文档配置吧。&lt;/p&gt;&#xA;&lt;h2 id=&#34;验证与接收&#34;&gt;验证与接收&lt;/h2&gt;&#xA;&lt;p&gt;教程提供了多种验证方案，这里使用最简便的Github. 只要在网站的首页挂上一个链接，指向用户档案页：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#d6cbb4;background-color:#252b2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#7a8478&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;https://github.com/example&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;me&amp;#34;&lt;/span&gt;&amp;gt;github.com/example&amp;lt;/&lt;span style=&#34;color:#7a8478&#34;&gt;a&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果不想让它可见，也可以设置为一个`&lt;link&gt;：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#d6cbb4;background-color:#252b2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#7a8478&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;https://github.com/example&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;me&amp;#34;&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;figure class=&#34;image-caption&#34;&gt;&#xA;    &lt;img src=&#34;https://images.glowisle.me/2025-12-05_18-26.png&#34; alt=&#34;作为验证，你需要在Github主页中包含你的网站&#34;&gt;&#xA;    &lt;figcaption&gt;作为验证，你需要在Github主页中包含你的网站&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&lt;/p&gt;&#xA;&lt;p&gt;这里我部署后回退了一下网页就弹出来Github APP 认证请求了，大概需要刷新网页或打开Github？&lt;/p&gt;&#xA;&lt;p&gt;这样，访问之后页面中提供的链接，就可以看到别人发送的Webmention了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;渲染&#34;&gt;渲染&lt;/h2&gt;&#xA;&lt;p&gt;在网页中添加link&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#d6cbb4;background-color:#252b2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#7a8478&#34;&gt;link&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;rel&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;webmention&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;href&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;https://webmention.io/你的用户名/webmention&amp;#34;&lt;/span&gt; /&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我使用&lt;a href=&#34;https://github.com/PlaidWeb/webmention.js&#34;&gt;webmention.js&lt;/a&gt;，根据说明文档，可以复制仓库中的&lt;code&gt;/static/webmention.min.js&lt;/code&gt;到博客的&lt;code&gt;/static/js/webmention.min.js&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;在评论框下方提供一个容器&lt;code&gt;&amp;lt;div id=&amp;quot;webmentions&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;，并引用脚本&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#d6cbb4;background-color:#252b2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#7a8478&#34;&gt;div&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;id&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;webmentions&amp;#34;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span style=&#34;color:#7a8478&#34;&gt;div&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#7a8478&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;/js/webmention.min.js&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;data-id&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;webmentions&amp;#34;&lt;/span&gt; // &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;与容器id匹配&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;data-page-url&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;https://yourdomain.com/当前文章永久链接&amp;#34;&lt;/span&gt; // &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;建议使用&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;data-max-webmentions&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;50&amp;#34;&lt;/span&gt; // &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;最多显示数量&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;data-wordcount&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;30&amp;#34;&lt;/span&gt; // &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;回复预览最大字数&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;data-sort-by&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;published&amp;#34;&lt;/span&gt; // &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;按照发布时间排序&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;data-sort-dir&lt;/span&gt;&lt;span style=&#34;color:#7a8478&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#b2c98f&#34;&gt;&amp;#34;up&amp;#34;&lt;/span&gt; // &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;时间升序&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#d699b6;font-weight:bold&#34;&gt;async&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#7a8478&#34;&gt;script&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hugo用户在永久链接上可以使用：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#d6cbb4;background-color:#252b2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;data-page-url=&amp;#34;https://yourdomain.com{{ .RelPermalink  }}&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;为了本地测试，使用相对链接的变量拼接。脚本会对API发送请求，如果拿到的数据是空的，则会把最终的HTML输出为一个空字符串，所以刚开始看不到输出是正常的。大概写点CSS就可以正常投入使用了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;对webmention的看法&#34;&gt;对Webmention的看法&lt;/h2&gt;&#xA;&lt;p&gt;我认为Webmention是一种很像友情链接的互惠模式，优于在评论区下方留下链接的形式。续上上一篇文章的话题，这样不仅促成高质量的互动，也能丰富自己的写作素材，分量应该重于评论区链接的手段。就像上一篇文章的结尾所说，利人利己，何乐而不为呢？&lt;/p&gt;&#xA;&lt;p&gt;虽然这种模式的普及程度不高，但我相信去中心化会称为互联网的新趋势。开放、互联才能称为「互联网」。&lt;/p&gt;&#xA;&lt;p&gt;我通过一些Webmention，一条一条顺藤摸瓜也找到了很多有趣的博客。我准备有时间优化渲染格式，可能也会研究一点桥接的功能，不过还是要保持博客一贯的简洁风格。当然，要先有人回应才有数据拿来渲染，欢迎大家使用Webmention参与互动！&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
