维护单一来源的关键,不是让同一篇内容在多个栏目里各存一份,而是先确定哪一个栏目拥有正文的编辑权,其他栏目只做引用或聚合。引用和聚合如果由手工复制完成,迟早会出现两处措辞不一致;如果由系统按规则生成,就应接受“聚合页不承载独立正文”这一取舍。下面用一个假设情境说明判断顺序。
假设你有一个个人博客,旧站里“读书笔记”和“年度总结”两个栏目都收录了同一篇书评。旧系统里两个栏目各有一份正文,改一处另一处不会跟着变。现在你要重建站点,需要决定是否继续保留两份。
先区分三种进入方式:
如果分不清属于哪一种,可以问自己:删除其中一个栏目后,这篇内容是否仍然完整存在?如果答案是肯定的,被删除的那个位置大概率只是聚合或引用,而不是正文归属。
确定归属后,需要让这个决定在系统里可执行,而不只是写在编辑规范里。以假设的静态博客为例,可以把正文文件放在一个内容目录中,由它携带栏目归属字段,其他栏目页只读取同一份数据生成列表或摘要。
实际动作可以是这样:先给每篇旧内容标出唯一归属栏目,再把另一栏目的旧副本改为指向该归属的引用。完成这一步后,修改正文只需改一处,两个栏目同时反映新版本。下一步的维护成本会明显下降,因为你不再需要逐栏核对重复文本。
但这里有一个取舍:如果另一个栏目原本依赖独立摘要、独立配图或独立排序,引用方案可能无法完全满足。此时可以保留独立摘要字段,但正文仍只存一份。不要因为摘要不同就恢复两份正文。
旧系统或旧合作关系退出时,常见做法是整批删除重复副本。但删除前应确认哪些部分仍然有价值。假设旧站有一个“精选”栏目,里面的内容其实都来自“读书笔记”,只是当年为了首页展示而复制了一份。现在“精选”栏目要下线,正确的处理不是把“精选”里的正文全部删掉,而是:
这样做的结果是,旧栏目退出后,内容没有丢失,但单一来源重新成立。如果某篇内容在归属栏目中已经不存在,才需要单独决定是补录还是彻底删除。
判断是否成功,不能只看某个栏目页面是否还能打开。可以观察几个可区分的信号:
这些现象只能说明结构关系,不能单独证明某种做法一定更好。例如,聚合页不输出全文,可能是模板限制,也可能是内容确实没有进入该聚合。需要结合归属字段和模板逻辑一起看。
假设你在归属正文中把书名从《A》改成《B》。如果两个栏目都引用同一份数据,修改后两个栏目都会显示《B》,你不需要再打开第二个栏目。这个结果会直接影响下一步:你可以放心把更多旧副本迁移为引用,而不必为每个栏目保留编辑入口。
反过来,如果修改后只有一个栏目变化,另一个栏目仍显示《A》,说明那个栏目还持有独立正文。此时不应继续扩大引用范围,而应先清理这个副本,再决定是否迁移其他内容。这个顺序能避免旧副本越积越多。
对于个人博客建站来说,单一来源不是追求所有栏目长得一样,而是让正文只有一个可编辑的归属。聚合、推荐和归档可以保留各自的外观和排序,但不应各自保存一份正文。只要这个边界清楚,旧内容退出时就不容易误删仍然有价值的部分。