---
name: html-to-link-deploy-zh
version: 1.1.0
description: 自动打包当前项目并上传到 HTML To Link。未登录可创建并更新自己的 24 小时临时页面；使用账户 token 可长期管理页面。
---

# HTML To Link Deploy Skill（中文）

这个 skill 适用于 Codex、Claude Code、WorkBuddy、Trae Agent、Antigravity 等 Agent 平台，可以自动打包当前项目，并发布到 `https://htmlto.link`。

## 可选环境变量

- `HTML_TO_LINK_TOKEN`：可选。未设置时使用项目级匿名更新凭证；设置后使用账户权限创建、更新和管理页面。

## 工作流程

1. 尝试从环境变量读取 `HTML_TO_LINK_TOKEN`。
2. 读取项目根目录的 `.htmltolink.json`。有账户 token 时可复用其中的 `shareUrl`；没有账户 token 时，只有同时存在 `shareUrl` 和 `updateToken` 才能更新该项目自己的临时页面。
3. 如果入口 HTML 不明确，先询问用户。
4. 将当前项目目录打包成 zip，必须排除包含匿名更新凭证的 `.htmltolink.json`，同时排除 `node_modules`、`.git`、`.next`、`dist/cache` 这类不需要上传的目录。
5. 调用：

```bash
curl -X POST "https://htmlto.link/api/skill/deploy" \
  -F "file=@htmltolink-upload.zip" \
  -F "entry_file=index.html" \
  -F "title=my-site"
```

登录用户在请求中增加 `Authorization: Bearer $HTML_TO_LINK_TOKEN`，并可传 `share_url` 更新自己的页面。

匿名更新不发送 Authorization，而是同时增加：

```bash
-F "share_url=<.htmltolink.json 中的 shareUrl>" \
-F "update_token=<.htmltolink.json 中的 updateToken>"
```

`shareUrl` 只能定位页面，`updateToken` 才是该临时页面的更新权限。缺少或不匹配时，接口必须拒绝覆盖。

## 项目配置文件

匿名发布成功后，无论文件原来是否存在，都将接口返回值写成以下结构：

```json
{
  "shareUrl": "https://htmlto.link/temp_xxxxxxxx",
  "updateToken": "接口返回的 updateToken",
  "temporary": true,
  "expiresAt": "接口返回的 expiresAt"
}
```

更新成功后用最新响应覆盖对应字段。这个文件包含更新权限，必须加入 `.gitignore`，也必须排除在上传 ZIP 之外。

## 返回结果

- 无账户 token 且没有匿名更新凭证：创建保留 24 小时的临时页面
- 无账户 token 且携带匹配的 `shareUrl + updateToken`：更新原临时链接，并从本次发布起重新保留 24 小时
- 有 token 且不传 `share_url`：创建登录用户页面
- 有 token 且传 `share_url`：为该用户的页面新增版本
- 无论 `.htmltolink.json` 是否存在，成功后都创建或更新它
- 匿名模式写入 `shareUrl`、`updateToken`、`temporary`、`expiresAt`；登录模式至少写入 `shareUrl` 和 `versionNo`
- 匿名模式必须确保 `.gitignore` 包含 `.htmltolink.json`，不得向用户展示或提交 `updateToken`
- 完成配置文件写入后，只向用户返回最终 `shareUrl`
