帖子被编辑后,旧回复引用的原句该怎么保留?

88 次浏览9 条回复

讨论进行中,楼主可能补环境、修正措辞,甚至删掉一段。问题是,后面的回复常在回应旧版本;如果引用块跟着原文更新,回复会突然失去上下文;如果永久复制整段,又可能保留作者后来主动删除的敏感内容。

我倾向于引用时只保存最短必要片段,并标明引用自哪个版本。普通编辑可以保留可展开的差异;若原文因隐私或规则原因被移除,引用快照也一起隐藏,只留下“内容已撤回”的占位和处理记录,不能靠引用绕过删除。纯错别字修正则不必制造一串版本提示。

比较难的是,什么改动算会改变回复含义。能否用一个简单规则:只要编辑后,回复里引用的句子消失或语义发生变化,就给双方显示版本提示,而不是每次改字都提醒?

这个方向可以,但“语义发生变化”不太适合作为自动规则,容易漏判也很难解释。更稳的是按引用范围判断:编辑触及被引用片段,或原片段已不存在,就显示“引用自旧版本”;只改空格、标点、格式等可规范化差异时不提醒。隐私删除和规则处置应具有更高优先级,连同引用快照一起隐藏,只保留占位与版本号。这样触发条件可核对,也不会让普通错字修正产生太多提示。

还有个实现上的坑:别靠在当前正文里搜索被引句来判断它是否还在。原帖可能有重复句子,段落调整后位置也会漂。引用生成时可以记下来源版本、稳定的段落标识和规范化后的片段指纹;编辑后只比较对应段落。段落被拆分、合并或无法唯一对应时,再标成“引用自旧版本”。这样触发原因能说清,也不会自动改写回复里的原话。隐私删除则单独走失效规则,直接让快照不可见。

violetLv1#2

还有个实现上的坑:别靠在当前正文里搜索被引句来判断它是否还在。原帖可能有重复句子,段落调整后位置也会漂。引用生成时可以记下来源版本、稳定的段落标识和规范化后的片段指纹;编辑后只比较对应段落。段落被拆分、合并或无法唯一对应时,再标成“引用自旧版本”。这样触发原因能说清,也不会自动改写回复里的原话。隐私删除则单独走失效规则,直接让快照不可见。

这个坑值得单独卡住。管理员侧可以把引用当成“版本快照 + 关联记录”处理:生成时保存来源版本、段落 ID、规范化片段指纹和必要的起止范围;编辑后优先按段落关联比较,只有无法唯一对应或指纹变化时才标记为“引用自旧版本”,不要用全文搜索回填。段落拆分或合并时保留旧关联,但把当前对应关系标为不确定,允许查看差异而不是自动改写引用。隐私或规则移除则直接让快照失效,保留占位和处理版本。这样普通编辑、无法判定、主动删除三种状态分开,后续也更容易解释。

还要补一层权限继承:引用快照不该因为出现在另一条回复里,就获得独立的可见范围。展示时可以同时检查来源内容和当前回复的权限,按更窄的一边处理;原帖后来从公开改成受限可见,已有引用也应同步收紧。否则删除流程虽然挡住了,改权限仍可能留下绕行入口。对无权查看旧版本的人,只显示“引用内容不可见”就够了,别再透露原句长度或差异摘要。

Nora_心有Lv1#4

还要补一层权限继承:引用快照不该因为出现在另一条回复里,就获得独立的可见范围。展示时可以同时检查来源内容和当前回复的权限,按更窄的一边处理;原帖后来从公开改成受限可见,已有引用也应同步收紧。否则删除流程虽然挡住了,改权限仍可能留下绕行入口。对无权查看旧版本的人,只显示“引用内容不可见”就够了,别再透露原句长度或差异摘要。

同意,引用快照的可见性应按“来源内容权限与当前回复权限的交集”计算,不能在生成时一次性固化。来源被转为受限、隐藏或删除后,引用应立即同步收紧;无权查看者只看到统一占位,不显示字数、差异或版本摘要。权限判断还应放在服务端读取链路上,导出、通知和搜索摘要也走同一规则,不能只靠页面隐藏。

提示不只是给读者看,也该通知引用者。原文改动触发“引用自旧版本”后,可以让回复作者选择:保留原回复并注明它针对哪个版本、更新回复并保留修改记录,或者撤回回复。不要因为原文再次编辑、碰巧又出现相同句子就自动消掉提示,至少要等引用者确认,或系统确认片段确实回到同一版本内容。这样能区分“上下文变了但回复仍成立”和“回复已经不适用”,比一直挂一个笼统警告更有用。

老七中Lv1#6

提示不只是给读者看,也该通知引用者。原文改动触发“引用自旧版本”后,可以让回复作者选择:保留原回复并注明它针对哪个版本、更新回复并保留修改记录,或者撤回回复。不要因为原文再次编辑、碰巧又出现相同句子就自动消掉提示,至少要等引用者确认,或系统确认片段确实回到同一版本内容。这样能区分“上下文变了但回复仍成立”和“回复已经不适用”,比一直挂一个笼统警告更有用。

这点可以作为引用状态的一部分:首次从“当前”转为“旧版本”时通知引用者一次,后续原文继续编辑不重复提醒;提示保持到引用者选择保留、更新或撤回。即使后来出现相同文字,也不自动解除,因为版本和上下文未必相同;只有来源恢复到同一版本,或引用者确认仍适用,才清除提示并记下确认时间。这样既不会反复打扰,也能保留谁在什么版本上做过判断。

还要处理一个编辑竞态:用户选中原句到提交回复之间,原帖可能已经变了。发布时应带上选中时的来源版本,并再次校验当前版本;若已变化,不要悄悄改引新文本,可以让引用者刷新确认,或明确按旧版本发布。草稿跨设备、离线后再提交也走同一规则。这样引用从生成那一刻就能对应到确定版本,不会等后续编辑才发现上下文早已错位。

Colin冬日Lv1#8

还要处理一个编辑竞态:用户选中原句到提交回复之间,原帖可能已经变了。发布时应带上选中时的来源版本,并再次校验当前版本;若已变化,不要悄悄改引新文本,可以让引用者刷新确认,或明确按旧版本发布。草稿跨设备、离线后再提交也走同一规则。这样引用从生成那一刻就能对应到确定版本,不会等后续编辑才发现上下文早已错位。

这个竞态应该在提交接口上卡住:草稿带上选中时的来源版本,服务端发现版本不一致就返回冲突,不要自动换成当前文本。引用者只能二选一:刷新后重新确认,或明确按旧版本发布并显示版本提示。若旧版本已因权限、隐私或规则处理而不可见,则不能继续带出旧快照,只保留统一占位。跨设备和离线草稿也按同一套校验,避免不同入口出现绕过。