简述
uid 是每个 节点 的永久身份,一个写在 md frontmatter 里的 UUID,一旦生成永不改变。它跟 slug 分工:slug 是 URL、可以改,uid 是身份、不能改。
详解
为什么需要它:早先节点靠 slug(文件名)当身份,可 slug 会变——改个文件名,或者 ingest —rebuild 重排了自增 id,评论和版本就全指错了。uid 把这个焊死:评论锚 uid、版本绑 uid,不管文件怎么改名、库怎么重建,身份都不动。用的是 UUIDv7,带时间戳、有序,对数据库索引友好。
深化
uid 是整个”评论+版本”系统的地基,是那几刀里第一刀就做的。它带出一条纪律:新建 md 必须补 uid(有个小工具 assign_uid 专干这事),ingest 遇到没 uid 的文件直接报错中止——身份不能是可选的。回报是:十年里这个站可以重写无数遍、文件可以随便重命名归档,但每一条 朱批、每一版 校勘记,始终认得它当初绑的那个节点。改名不丢派生,全靠这一个不变的号。