我最近在做什么
以结构化 JSON 返回 /now 页面上的活动,内容会在网站部署后更新。
请求
GET /api/now默认返回英语。添加 ?lang=zh 返回中文,或用 ?lang=en 指定英语。不支持其他查询参数。
curl --fail --silent --show-error 'https://leodeng.dev/api/now?lang=zh'响应示例
此示例只展示一项活动。实际响应包含全部活动,包括暂停和已完成的项目。
{
"schemaVersion": 1,
"url": "https://leodeng.dev/zh/now",
"language": "zh",
"updatedAt": "2026-10-24T13:13:19+08:00",
"detailsFormat": "markdown",
"events": [
{
"id": "ipad-2-home-assistant",
"title": "iPad 2 + Home Assistant",
"status": "active",
"startedAt": null,
"updatedAt": "2026-10-24T13:13:19+08:00",
"finishedAt": null,
"details": "正在折腾 iPad 2 与家里 Home Assistant 服务器的兼容性。"
}
]
}响应字段
| 字段 | 含义 |
|---|---|
schemaVersion | 响应格式版本,目前为 1。 |
url | 对应语言的 /now 页面地址。details 中的相对链接应基于此地址解析。 |
language | title 和 details 的语言:en 或 zh。 |
updatedAt | 内容最后编辑时间,采用 ISO 8601 格式,并非本次请求时间。 |
detailsFormat | 固定为 markdown。details 返回源文本,不包含渲染后的 HTML。 |
events[] | 全部活动,每项包含 id、title、status、startedAt、updatedAt、finishedAt 和 details。 |
events[].id | 稳定的活动标识符,可用于匹配不同请求中的同一项活动。 |
events[].status | active:正在做;recurring:持续进行;paused:暂停;finished:已完成。 |
events[].startedAt / updatedAt / finishedAt | 活动日期在有值时采用带时区偏移的 ISO 8601 格式。缺失日期为 null,请保留原时区。 |
在智能体中使用
获取 JSON 后按状态筛选。例如,下面的命令会列出我正在做的项目:
curl --fail --silent --show-error 'https://leodeng.dev/api/now?lang=zh' \
| jq '.events[] | select(.status == "active") | {id, title, details}'HTTP 行为
GET 返回 JSON。HEAD 返回相同的响应头,不返回正文。支持浏览器的 OPTIONS 请求,允许跨域读取。响应最多可缓存 60 秒,每分钟轮询一次即可。
无效查询参数返回 400 和 JSON 错误。不支持的请求方法返回 405,并附带 Allow 响应头。此接口只读。