このホームページに、Webmentionを実装しました。
きっかけ
そもそもこのホームページを作ったのは、まじめにソーシャル・ネットワーキングをやりなおす2026という記事を読んだのがきっかけでした。
あらためて自分の手で、ぼくの書いたもの・話したことを受け取ってくれる人たちとの関係を、結び直していきたいと思います。
これを自分なりのかたちでやってみたくなったのです。
そして2026-09-25の記事でWebmentionを知り、先日このホームページにも組み込みました。
Webmentionとは
記事にリンクを書いたとき、リンク先のサイトに「あなたの記事にリンクしました」と知らせる仕組みです。知らせる側が、リンク先のページから受け口のURLを探して、source(自分の記事)とtarget(リンク先)をPOSTします。
送る
記事の公開(deploy)の最後のステップで、CRubyで送っています。
- 公開した記事の本文から、よそのサイトへのリンクを拾う
- リンク先から受け口を探す(HTTPの
Linkヘッダ、HTMLの<link rel="webmention">) - 受け口へ
sourceとtargetをPOSTする
送った組はD1に記録していて、次のdeployで同じところへ送り直すことはありません。受け口が無いリンク先も記録して、探し直しません。
受ける
受け口はCloudflare Workersの上のPicoRubyで動いています。ページの<head>とLinkヘッダで、受け口の場所を知らせています。
呼ばれるのは、どこかのサイトがこのホームページの記事にリンクを書いて、そのサイトの送信処理が受け口を探して送ってきたときです。
受けたら、送り元のページを取りに行って、本当にこちらの記事へのリンクがあるかを確かめてから、D1に入れます。
いまのところ
いただいたWebmentionは、自分用の管理画面で拝見させてもらうようにしています。
