草稿与公开正文分开保存

编辑器里的最新文本可能还在修改,读者看到的正文应当是已经确认的版本。草稿可以反复修改,发布时再切换公开版本,避免一次未完成的编辑直接影响读者。

文章表保存稳定身份和发布指针,正文放在不可变的 article_revisions 中。每次发布记录版本号和内容哈希;网站、RSS 和只读 API 都读取 published_revision_id 指向的同一份修订。

分别记录各渠道的发布结果

网站发布成功后,RSS、Atom、小程序和公众号各有自己的处理状态。公众号投递失败时,不应回滚网站已经公开的正文。无法确认外部渠道结果时,保留 needs_reconcile 一类待核对状态,不能用一个「失败」覆盖所有渠道。

Outbox 用来保存待处理的发布事件:数据库事务先记录需要执行的工作,消费者随后清理缓存或投递内容。这样可以查明发布了哪个版本、各渠道处理到哪一步,以及失败后能否安全重试。

为结论保留验证时间和依据

文章需要分别记录首次发布时间、修订更新时间和最后验证时间。计划中的功能不能写成已经上线;本地实验需要注明环境;结论过时后,应保留历史版本并更新验证状态。

个人站可以从简单的内容管理开始,但应尽早保留正文版本和验证依据。下一次项目需要引用这篇文章时,才能判断哪些结论仍可使用。