我一直在思考这个问题。根据我对“超级主题”和非超级但更新缓慢的主题的经验,用户非常讨厌他们正在关注的主题被关闭,即使有替代主题。
这表明有两种可能的解决方案,但这两种方案可能都需要核心代码或插件方面的协助。
- 一种新的主题拆分方式,将较旧的内容放入新主题,而保留较新的帖子。
- 一种拆分主题或生成续集的方式,能够复制用户的关注/跟踪/静音设置到新主题中。
以下是每个想法的更多细节:
主题顶部拆分器
我设想的工作方式是:版主选择某篇帖子,然后点击“及其之前的所有内容”,这将触发一个新的或修改后的“创建新主题”弹窗。新主题默认与原标题相同,包含起始和结束日期,并默认创建为锁定主题。第一篇和最后一篇(最后一篇为系统生成)帖子将包含指向拆分来源的主主题的链接。现有主题将保留第一篇文章,在移动帖子的位置生成一篇新帖子(忽略其他拆分主题的特殊帖子),其余保持不变。
可能还需要一个 Rake 任务来修复其他主题中的引用链接,但这可能比较棘手。
复制关注设置拆分器
这个方案可能更容易实现,但不知为何让我觉得不太令人满意。首先,类似 example.discourse/t/_/12345 的通用链接(即指向主题而非具体帖子)会失效。如果主题被用于外部讨论(例如“在此提交应用创意!”),这类链接很可能存在。使用该功能时,现有主题将被关闭,标题将更改以显示日期范围(默认情况下),并在同一类别中创建一个新主题,复制标题、第一篇文章以及所有跟踪/静音设置。旧主题的系统关闭消息中会添加指向新主题的链接。
可能还需要对未参与该主题的用户取消对已关闭主题的关注/跟踪。我考虑的场景是:用户 Elijah 活跃了几个月后消失了一年,他曾明确关注某个主题,可能并不关心他离开期间创建并关闭的两个中间主题,但当他回来时,可能仍对最新版本感兴趣。