← 返回博客

· · 更新

品牌词汇迁移

从规范名称、依赖迁移到机器数据保真,说明词汇守卫实际检查什么,以及 PNG 像素和 APK 的明确例外。

参考别家牌桌布局时,一个临时代号跟着进入了我们的组件、样式、测试和官网文案。编译发现不了这种问题:名字拼写正确、引用也能解析,只是不该出现在我们的产品里。清理时要分开处理源码标识符、用户文案、文件名和机器数据里的偶然字节,不能对全仓做一次字符串替换。

我们先定好替换后的名称:用户文案统一叫“新版牌桌”,组件、标识符和相关测试用 Table2 / table2。然后沿依赖关系迁移:用 git ls-files --cached --others --exclude-standard -z 盘点已跟踪和未忽略的文件,重命名文件和目录并修好 import、路由和测试选择器,再改文案、快照、截图名和生成数据。机器数据由 scripts/brand-language-machine-data.mjs 改写成受支持的等价表示(JSON 字段用 Unicode 转义,HTML src/href 里的 data URI 用数字字符引用),源码字节变了,解析后的值不变;这套方法不能用在普通正文上。

之后由 scripts/brand-language-guard.mjs 在 pre-push 和 CI 中检查文件名和内容。它的二进制例外是明确的:合法 ZIP 格式的 APK 跳过内容、只查文件名;受支持且结构校验通过的 PNG 跳过压缩像素,仍查其他字节和文字元数据;不支持或校验失败的 PNG 回到完整字节扫描。所以不能说它保证“所有二进制原始字节零命中”。Git 历史、忽略文件和外部缓存也不在扫描范围内,名称检查更不能证明视觉设计原创或替代商标审查。

经验是:先定名称,再迁移所有消费方;以后改名时,把引用和守卫一起改。