保存不等于发布:个人网站内容版本的边界
从一次改到一半的文章出发,解释草稿、固定版本、预览和正式发布为什么需要各司其职。
文章目录
写一篇文章时,最容易被忽略的需求往往很普通:改到一半,可以先保存;修改尚未完成,读者仍然看到上一版。
如果网站直接读取编辑表里的最新正文,这两件事就发生了冲突。一次自动保存可能把半句话、待核对的链接,甚至临时备注带到公开页面。让编辑放心保存,需要先明确“正在写的内容”和“已经公开的内容”是两个不同的对象。
草稿负责保留输入
草稿可以不完整。标题还没有确定,摘要尚未整理,配图也可能没有准备好。保存首先应该尽量保住这些输入,并清楚地告诉编辑者:哪些内容已经落库,哪些仍留在当前设备上。
两个设备同时编辑时,也不能用最后到达的一次请求无声覆盖前一次修改。保存请求带上读取时的版本,服务端发现版本已经变化,就返回冲突,让两边的输入都有机会被保留。
这解决的是编辑问题,还没有决定什么可以公开。
发布需要固定一个版本
一次发布应当明确引用某个已经保存的修订。任务开始后,即使编辑者继续输入,这次任务的正文、标题和素材选择也不应随之变化。
可以把它理解成一张写清楚内容的清单:发布哪篇文章的哪一版,使用哪份网站设置,公开哪些具体素材。后续修改进入新的草稿,留待下一次发布。
这个边界也让失败重试变得容易解释。重试的目标是完成原来那张清单,而不是悄悄改成“再取一次最新内容”。
预览也应该有自己的快照
预览并非缩小后的线上页面。它首先是一份只给维护者查看的、版本固定的内容。
假如预览仍然实时读取草稿,编辑者改了一张图,之前发起的预览也跟着变化,就无法确认自己到底检查过哪一版。正文、引用和图片都固定之后,“看过预览再发布”才有明确含义。
预览还应当保持私有。拥有一个预览地址,不等于任何拿到地址的人都可以读取尚未公开的文字和素材。
公开页面需要一起变化
一篇文章公开后,会同时出现在详情、栏目、首页、搜索和订阅里。如果只更新详情,再慢慢更新其余入口,读者就可能看到彼此不一致的结果。
本站采用完整发布包:先生成并检查页面、索引与媒体清单,准备完成后再切换当前包。生成失败时继续提供原来的内容,后台保留失败阶段和原操作。
这并不意味着所有网站都必须采用相同实现。真正需要坚持的是同一个结果:保存让输入安全留下,预览让检查对象明确,发布让读者看到经过确认的一版。三个动作分清之后,日常写作反而会简单一些。