html2wp / 数据

隐私说明:html2wp 如何处理你的数据

这里用平实的语言说明:哪些数据会离开你的电脑、原因是什么、我们保留多久。README 对这些内容只是一笔带过。这一版可以直接拿给客户看。

BELNEM s.r.o., Beckovská 5, Bratislava, IČO 53713486. hello@html2wp.dev

最后更新:2026 年 10 月 5 日。

转换本身

要转换一个网站,服务必须先收到它。当你运行第 3 阶段时,skill 会向 api.html2wp.dev 上传一个压缩包:

  • conversion-manifest.json:你对网站所做的各项决定
  • astro-report.json:第 1 阶段生成的清单,列出各页面共用的部分(即 chrome,页面外框)
  • astro-project/:包括 dist/,即构建好的网站
  • chrome-at-rest/、chrome-groups.json 和 style-specimens/(如果存在)

这就是你客户的网站:它的标记、样式、脚本和图片。不发送网站,就无法转换网站,任何暗示相反的说法都是不实的。SKILL.md 在 What goes up(上传内容)一节列出了确切的文件。如果你想亲自核实,而不是只听我们说,convert-remote.sh 是一个可读的 shell 脚本。

压缩包里没有什么

你的输入目录不在其中,因为只有构建产出会被传输。node_modules 也不在其中。任何看起来像凭据的东西也不在其中:.env 和 .env.*、*.pem、*.key、id_rsa、credentials.json、.npmrc、.netrc、.ssh/、.aws/,以及内容中含有私钥块或明显密钥赋值的任何文件。过滤器会在 astro-report.json 中按名称列出它剔除的所有文件,你可以看到哪些没有被传输。

你电脑上的工作(测量、与原版比对和修复)由你自己 ChatGPT 账号中的 AI 驱动。OpenAI 按你账号的条款处理 AI 所处理的内容,和你以其他方式使用 ChatGPT 时一样。

我们保留多久:工作区在最后一次变更 48 小时后删除。保留下来的只有一个摘要(哈希值)。正是它让同一网站的重新运行算作重新运行,而不是第二次转换。

检查关卡结果

你在本地验证一次转换后,skill 会上报结果。这是必需的:上一次转换上报之前,下一次转换会被拒绝。上报的内容很少,而且采用白名单方式,而不是过滤方式。

  • 发送的内容:关卡名称、结果(通过、失败或未运行)、页面数量、最差的还原度百分比,以及未通过的页面键名。键名是你选定的短名称,例如 about 或 pricing。
  • 不发送的内容:不含 URL、域名、标记、文案、截图、文件路径、许可证密钥或网站名称。

命令 send-verdicts.sh <workspace> --dry-run 会打印确切的上报内容,但不发送任何东西。

为什么必需:这些关卡在你的电脑上运行,针对的是服务永远看不到的 WordPress。没有这些结果,服务只能知道转换没有崩溃,却完全无法知道它是否正确。我们将结果保留 365 天。

转换记录

每次转换一行记录:多少个页面、多少种 chrome 变体、是否有博客或商店、是否为重新运行、哪个阶段拒绝了(如果有),以及生成器关于自身的警告。警告会经过脱敏:写入记录前,页面文件名和 URL 都会被替换。记录保留 365 天。其中不含任何内容、地址或网站标识。

缺陷报告

如果你通过 POST /v1/report 发送缺陷报告,我们会按你写的原文保存,并通过 Resend 发邮件给一位会阅读它的人。报告保留 90 天。不要在其中粘贴任何你不希望保留这么久的内容。

如何识别你

  • 没有密钥时:转换次数按 Cloudflare 看到的 IP 地址计算。我们以截断的哈希值保存,从不保存地址本身。
  • 该哈希值所在的国家:两个字母,来自 Cloudflare 添加的请求头。它只和上面的计数器放在一起,不出现在其他任何地方。尤其是,它不在转换记录中,转换记录里没有任何能定位你的信息。国家信息告诉我们 html2wp 在哪些国家使用,但不能看出哪次转换是你的。未知地区和 Tor 分别显示为 XX 和 T1,我们照原样保存,不做猜测。
  • 有许可证时:通过许可证密钥识别,同样以哈希值保存。我们通过 UpdatePulse(updates.designready.studio)验证密钥,UpdatePulse 能看到密钥。
  • 查询密钥或下载 Visual Edit Pro 时:下载页面和 npx html2wp-license 查询工具只把你输入的密钥发送到同一台许可证服务器,用来读取其状态,不发送其他任何内容。返回结果不含个人信息,页面和查询工具都不保存密钥。

购买许可证

我们通过 Paddle 销售方案。Paddle.com Market Limited 是记录商户(Merchant of Record),即交易中的卖方。就付款而言,它是独立的数据控制者,而不是代表我们行事的处理者。结账时,Paddle 收集你的姓名、邮箱地址、国家和邮政编码、付款信息,以及你提供的增值税号(如有)。它按照自己的隐私声明处理这些数据。

  • Paddle 传给我们的内容:你的邮箱地址、姓名和国家,交易 ID 和订阅 ID,以及你购买的产品。有了这些,我们才能把密钥发给正确的人,并在你来信时找到订单。
  • 我们保存的内容:在我们的许可证服务器 UpdatePulse(updates.designready.studio)中,保存许可证密钥、你的邮箱地址和姓名、交易 ID、购买日期和到期日期,以及许可证状态。
  • 密钥邮件通过 Resend 发出,Resend 只负责投递,不做其他任何用途。
  • 发票上的公司信息(企业名称或商号、地址,可选的增值税号和邮箱):如果你在付款前选择 For a business or freelancer(给公司或自由职业者),这些信息会从你的浏览器直接发送到 Paddle 的结账页面。之后 Paddle 把它们印在发票上。本网站不会把它们发送到我们的服务器,也不会保存。
  • 银行卡数据从不经过我们。它从你的浏览器直接发往 Paddle,我们即使想看也看不到。
  • Paddle 的脚本 Paddle.js 只在价格页面从 cdn.paddle.com 加载,因为结账是在那里打开的。本网站的其他页面都不加载它。

保留期限:在许可证有效期内保留;此后,按会计法要求保存购买记录的期限继续保留。

管理订阅

你在 Paddle 自己网站上的客户门户中管理订阅。取消订阅、更换银行卡和下载发票,都是你和 Paddle 之间的事,我们只能看到结果。要把 Pro 从按月改为按年,订阅管理页面会把你输入的邮箱地址发给 Paddle,用来查找你的订阅。如果找到,链接会通过 Resend 发送到 Paddle 记录的邮箱地址。我们不保存你输入的地址。

联系表单

你用来给我们写信的表单,是本网站上另一个需要你填写个人信息的地方。它要求填写邮箱地址(必填)、网站或组织(选填)以及你的留言。表单里还有一个名为 company 的隐藏字段,人是看不到的。它的作用是让填写所有字段的机器人暴露自己。

留言发送之前,Cloudflare Turnstile 会检查发送者是人而不是脚本。它只在使用它的表单页面上运行:联系页面和订阅页面。它从 challenges.cloudflare.com 加载。为了做出判断,Cloudflare 会查看你的 IP 地址、浏览器的 User-Agent 和 TLS 指纹。Cloudflare 表示,这些是区分人和机器人所必需的。它不会读取你在表单中输入的内容。我们只收到“通过”或“未通过”,没有其他信息。详情见 Cloudflare 的 Turnstile 隐私附录。

你的留言通过 Resend 以邮件形式送到一个人手中。它不会进入 CRM,也不会被加入邮件列表。我们在沟通需要的期间内保留它,并在 24 个月内删除。如果你要求提前删除,我们就会删除。

Google 用户数据

html2wp 只使用一个 Google API,即 Google Ads API,而且只用于我们自己的关键词研究:人们使用哪些搜索词、搜索频率如何、竞争程度如何。它是内部工具。除我们团队外,没有人会在 html2wp 的任何地方用 Google 登录,转换器也从不要求你这样做。

  • 我们申请的权限:https://www.googleapis.com/auth/adwords 范围,由我们团队的成员为我们自己拥有的 Google Ads 账号授权。它用于读取关键字规划师(Keyword Planner)的数据:关键词建议、历史搜索量、竞争程度和出价范围。
  • 我们不碰的内容:广告系列、广告、受众群体、结算,以及我们自己账号以外的任何 Google 账号。不会向 Google Ads 写入任何内容。
  • 保存位置:登录令牌保存在完成授权的那台电脑的操作系统钥匙串中。关键词结果用于我们自己的内容规划,是关于搜索词的数字,而不是关于人的数据。
  • 还有谁能看到:没有人。我们不出售、不共享这些数据,也不把它用于广告或训练 AI 模型。
  • 删除:你可以在 myaccount.google.com/permissions 撤销访问权限。只要向 hello@html2wp.dev 提出请求,我们就会删除由此衍生的任何数据。

html2wp 对从 Google API 获得的信息的使用,以及向任何其他应用的传输,都将遵守 Google API 服务用户数据政策,包括其中的“有限使用”要求。

还有谁参与

  • Cloudflare(美国)托管本网站,并运行网站的小型服务端函数(联系表单、Visual Edit Pro 下载和付款 webhook)。它也位于转换 API 之前。它负责终止 TLS,因此能看到每个请求及其来源地址。在联系页面和订阅页面上,它还运行 Turnstile,即上文所述的机器人检查。就这项检查而言,Cloudflare 是我们的处理者。只有当它用同样的信号改进机器人检测时,它才是控制者。
  • UpdatePulse 运行在我们自己的服务器上,用于验证许可证。由于许可证是出售的,它还在密钥旁保存客户的邮箱地址和姓名。
  • Paddle(Paddle.com Market Limited,英国)是每笔购买的记录商户,也是其所收集付款数据的独立控制者。
  • Resend(美国)投递四类邮件:购买后的许可证密钥、订阅管理链接、通过联系表单发送的留言,以及转换器缺陷报告。
  • Coolify 运行在我们自己的服务器上,用于托管转换服务和许可证服务器。
  • agentmods.dev 提供每个页面页脚中的小型插件测量徽章。和加载任何来自其他网站的图片一样,加载这张图片会把你的 IP 地址和浏览器信息发送给它。除此之外,不与它共享任何内容。
  • Umami 是开源分析工具,运行在 umami.agentmods.dev,只用于本网站。它统计页面浏览量和少量点击:统计的是哪个按钮被点击,而不是谁点击的。不使用 cookie,没有跨站标识,也不在你的设备上存储任何东西。因此,本网站没有需要你点掉的 cookie 横幅。

没有广告,没有跨站跟踪,不出售数据

唯一的分析工具就是上面提到的无 cookie 工具,运行在本网站上。你收到的主题在运行时从不连接我们的任何服务器。这句话针对的是交付的网站,而且准确无误。我们不出售任何数据,也不与任何广告商共享。

数据传出欧盟

我们的服务器位于欧盟。Cloudflare 和 Resend 是美国公司。访问本网站和 API 的流量经过 Cloudflare 的基础设施,表单上的 Turnstile 检查也是如此。密钥邮件、订阅管理链接、联系表单留言和缺陷报告经过 Resend 的基础设施。两者都可能涉及向欧盟以外传输数据。这些传输以欧盟委员会的标准合同条款为依据。Paddle 位于英国,欧盟委员会认定英国提供充分的保护;Paddle 按照自己的隐私声明处理付款数据。页脚徽章和分析脚本都来自 agentmods.dev,该网站通过 Cloudflare 的全球网络提供服务。因此,这些请求在哪里得到响应,不在我们的控制范围内。本列表中的其他内容都不会离开欧盟。

法律依据

根据 GDPR,以上每一项处理都需要合法依据。各项适用的依据如下:

转换服务

  • 接收和转换你的网站:履行合同(GDPR 第 6(1)(b) 条)。你请求了转换,而没有上传就无法转换。
  • 按 IP 地址统计转换次数:正当利益(GDPR 第 6(1)(f) 条)。无法计数的免费额度会被耗尽,而截断的哈希值是我们能用来识别它的最少信息。
  • 记录该地址所在的国家:正当利益(GDPR 第 6(1)(f) 条)。产品在哪里使用,决定了它要支持什么。在已经假名化的计数器旁加两个字母,是能回答这个问题的最粗略的形式。它不会让哈希值本身可识别的范围有任何增加。
  • 验证许可证密钥:履行合同(GDPR 第 6(1)(b) 条)。
  • 关卡结论和转换记录:正当利益(GDPR 第 6(1)(f) 条)。了解哪个阶段在哪种结构的网站上失败,是改进转换器的唯一途径。写入之前,我们会去除所有能识别网站的信息。
  • 你发送的缺陷报告:正当利益(GDPR 第 6(1)(f) 条)。是否发送由你决定。

许可证购买

  • 签发和管理已购买的许可证:履行合同(GDPR 第 6(1)(b) 条)。
  • 保存购买记录:法定义务(GDPR 第 6(1)(c) 条)。保存期限由会计法规定。

本网站

  • 联系表单:应你的要求在订立合同前采取的步骤,或回复来信者的正当利益(GDPR 第 6(1)(b) 或 (f) 条)。
  • 联系表单和订阅表单上的机器人检查:正当利益(GDPR 第 6(1)(f) 条)。目的是让由人阅读的表单免受自动垃圾信息的干扰。它只使用 Cloudflare 为此所需的信号,不多用任何东西。
  • 统计本网站的页面浏览量:正当利益(GDPR 第 6(1)(f) 条)。之所以站得住脚,正是因为该工具不在你的设备上存储任何东西,也无法在你离开本网站后跟踪你。

自动化决策

当转换额度用完或网站过大时,服务会自动拒绝转换。这只是对计数器做的算术,对任何人都不产生法律效力。如果你就此来信,会由人来回复。我们不做任何用户画像。

你的权利

根据 GDPR,你可以向我们提出以下任何请求,只需发一封邮件到 hello@html2wp.dev。

  • 访问权:你可以获得我们所持有的关于你的数据副本(第 15 条)。
  • 更正权:如果数据有误,我们会更正(第 16 条)。
  • 删除权:我们删除数据(第 17 条)。
  • 限制处理权:在存在争议期间,我们保留数据但停止使用(第 18 条)。
  • 可携带权:你以机器可读的格式取回你提供给我们的数据(第 20 条)。
  • 反对权:你可以反对我们基于正当利益所做的任何处理,包括统计分析(第 21 条)。除非我们能证明有优先于你权益的理由,否则我们会停止。

我们会在一个月内答复,不收取任何费用。除了确保不会把你的数据交给别人所需的验证之外,我们不会要求你进一步证明身份。

有一个限制:服务持有的大部分数据都经过哈希或汇总处理,无法追溯到个人,我们自己也做不到。因此,对于这些记录,没有什么可以提供、更正或删除。上传的网站会在 48 小时后自动删除。

如果我们做错了

你可以向斯洛伐克监管机构投诉:Úrad na ochranu osobných údajov Slovenskej republiky(斯洛伐克共和国个人数据保护局),Hraničná 12, 820 07 Bratislava,dataprotection.gov.sk。如果你住在其他欧盟国家,也可以改向你所在国的监管机构投诉。先联系我们会更快,但这不是前提条件。

漏洞报告请发送到安全页面上的地址,不要发在公开的 issue 中。

谁是负责方

数据控制者是 BELNEM s.r.o.,地址 Beckovská 5, Bratislava, Slovakia(斯洛伐克),公司编号(IČO)53713486。邮箱:hello@html2wp.dev。我们的规模未达到必须任命数据保护官的标准,也没有任命。上述地址可以直接联系到负责决定这些事务的人。

向我们提供数据从来不是法定要求。只是转换需要网站,许可证需要一个接收密钥的地址。

本页关于转换的说明以插件仓库中随附的 PRIVACY.md 为准。如果两者在转换方面有任何不一致,以仓库中的文件为准。关于本网站、结账、联系表单、下载页面和订阅页面,以本页为准。