Hotdry.
application-security

构建平静技术栈:IndieWeb的Micropub发布、Webmention互动与Feeds订阅

最小化IndieWeb协议栈,实现去中心化个人发布:Micropub参数配置、Webmention验证、Feeds生成与calm原则监控。

平静技术(Calm Technology)由 Mark Weiser 和 John Seely Brown 于 1995 年在施乐 PARC 提出,强调技术应最小化注意力需求,利用外围信息告知用户,避免干扰核心任务。这种理念在物联网时代尤为重要,而 IndieWeb 作为去中心化个人网站运动,正好与之契合。通过 Micropub(发布 API)、Webmention(互动通知)和 Feeds(RSS/Atom 订阅),可以构建一个最小 calm tech 栈,实现数据自主、平静互动的个人发布系统。

Micropub:平静的发布接口

Micropub 是 W3C 推荐标准(RFC 2017),一种简单 HTTP API,用于第三方客户端创建、更新、删除帖子,支持文章、笔记、照片等,支持 IndieAuth 认证。不同于中心化平台,它让用户在个人域名上发布内容,避免算法推送干扰。

证据与落地参数

  • 使用 Indiekit 作为 Micropub 服务器,轻量 Node.js 工具,支持静态生成器如 Eleventy、Hugo。安装:npm install -g indiekit,配置indiekit.config.yml
    host: https://yourdomain.com
    port: 3000
    storage:
      adapter: fs
      path: /path/to/posts
    publication:
      url: https://yourdomain.com
    
  • 发布参数:POST 到/micropub,Content-Type: application/json,示例创建笔记:
    {
      "h": "entry",
      "content": [{"html": "平静发布测试"}],
      "mp-syndicate-to": ["https://twitter.com/your"]
    }
    
    阈值:超时 30s,重试 3 次;媒体上传用 multipart/form-data,限制 5MB / 文件。
  • Calm 实践:客户端如 Quill(PHP Micropub 编辑器)后台运行,仅推送成功时外围通知(LED 闪烁),失败时振动提醒,避免屏幕打扰。

这种配置确保发布过程外围化,用户专注写作,系统默默处理。

Webmention:低干扰互动通知

Webmention 是 W3C 标准,用于跨站通知提及,支持评论、点赞、转发。源站发现目标 Webmention 端点(),POST source/target URL。

证据与清单

  • 服务:webmention.io 免费接收,转储 JSON 到站点;或自建 mention-tech。验证:检查 source 是否链接 target,过滤垃圾(vouch 机制)。
  • 参数:端点返回 202 Accepted,处理延迟 <5min;显示阈值:仅> 0 点赞 / 评论时外围更新(浏览器标题闪烁)。
  • 清单:
    1. HTML 头添加:
    2. 聚合:用 Eleventy 插件解析 JSON,生成 h-entry 微格式。
    3. Calm 监控:Webhook 到 Discord/Slack,仅高价值互动(如首次提及)推送通知。

Webmention 实现分布式社交,无需登录平台,互动如外围光信号般平静。

Feeds:订阅的被动分发

IndieWeb 用 Atom/RSS feeds 分发内容,h-feed 微格式包裹帖子,支持阅读器订阅。Atom 优于 RSS,支持更新时间、作者等。

证据与配置

  • 生成:Hugo/Eleventy 内置,路径/index.xml;示例 Atom:
    <feed xmlns="http://www.w3.org/2005/Atom">
      <entry><title>Calm Post</title><updated>2025-12-07T00:00:00Z</updated></entry>
    </feed>
    
  • 参数:更新频率每日,条目数 50;PuSH(PubSubHubbub)实时推送,hub=pubsubhubbub.net。
  • Calm 整合:Feed 阅读器如 Feedly 后台拉取,用户仅需偶读,避免推送洪水。

Calm Tech Stack 完整清单与监控

部署清单(Netlify 免费托管):

  1. 静态站点:Eleventy 模板,添加微格式。
  2. Micropub:Indiekit Docker 部署,端口 3000。
  3. Webmention:webmention.io + 聚合脚本。
  4. Feeds:生成 Atom,订阅 PuSH。
  5. 监控:Prometheus 阈值 - 发布延迟 < 1s、互动垃圾率 < 5%;外围仪表盘(Home Assistant LED)。

风险回滚:备份帖子 JSON;失败默认静态页。

此栈总代码 <500 行,托管成本 < 10 元 / 月,实现数据自主、零干扰发布。引用 IndieWeb wiki:“Micropub 允许使用任何客户端管理网站。”W3C Webmention:“自动通知跨站互动。”

资料来源

  • IndieWeb: indieweb.org
  • W3C Micropub: w3.org/TR/micropub/
  • Calm Tech: calmtech.com
  • Indiekit: indieweb.org/Indiekit

(正文约 1200 字)

查看归档