summaryrefslogtreecommitdiff
path: root/content/notes/automate-outgoing-webmentions.md
blob: cb3e1f42cc552273816d6454f9af623174b23b47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
+++
title = "为静态博客添加自动发送 Webmention 的功能"
date = 2026-02-06 10:56:27
tags = ["IndieWeb"]
draft = false
+++

使用 [webmention.app](https://webmention.app/) 提供的命令行工具,在静态博客构建完成后扫描 RSS Feed。这个工具会扫描最新十个条目(也可以指定数目)中的 URL 并寻找那些提供了 Webmention 接收端口的 URL,然后向他们发送 Webmention。

命令行工具通过 NPM 提供,笔者使用 PNPM,使用如下命令安装。

```shell
pnpm install @remy/webmention
```

接下来需要指定一个源,如果使用的静态网站生成器能够生成 RSS/Atom 的 XML 文件最好。如果是 Hugo,可以用这条命令:

```shell
pnpm wm public/index.xml
```

默认情况下是 `dry-run`,只会扫描并找到 Webmention 的源和目标网址,不会发送,加上 `--send` Flag 才会发送;也可以用 `--limit` 指定扫描的文章数量,如果是 `--limit 3` 就只会扫描 Feed 中的前三条。

我的构建过程定义在一个 `.sh` 文件里,把这条命令添加到博客构建完成之后即可。

```shell
#!/bin/sh

git pull
pnpm build:uno:prod
hugo --gc --minify
pnpm pagefind --site public
pnpm wm public/index.xml --limit 3 --send
```

这样就能实现 Webmention 的自动发送了。

## 参考资料

- https://webmention.app/docs#using-the-command-line