TL4s 在已归档的主题中发帖

这是 bug 还是预期功能?如果是预期行为,我该如何限制它(如果可能的话)?

我已经关闭了多个线程,因为它们不再及时。我一直在定期更新我们从前一个软件迁移到 Discourse 的进展。问题是,我们的 TL4(本地代表)仍然在这些线程中发帖。是的,我可以删除并重定向(这正是我一直在做的)。所以我想,好吧,存档应该是不可更改的,那就去那里吧。

于是我归档了该帖子。

他们仍然能够在那里发帖。我对存档的理解是,它应该禁止发帖、点赞等操作。然而,对于 TL4 来说,情况并非如此。对于工作人员能够更新已归档的主题,这很合理,但 TL4 并不是工作人员。

那么,我到底该如何真正锁定这些帖子,让人们停止更新呢?移除 TL4 并不是一个可行的选项(相关群体出于多种原因需要它)。其中很大一部分是教育问题,没错,但我们都知道人们阅读并遵守指示的效果有多差。存档的目的就是将其锁定,将其冻结在碳素中。如果社区仍然可以与之互动,那就不算归档。我不担心他们能够取消归档;这没问题,这很合理。他们至少需要在能够发帖和不能发帖之间多一个步骤。

好的,是的,我经过一番研究终于找到了答案。没错,这确实是预期行为。

不过,我想说这使得归档功能有点奇怪。在我看来,归档就应该是归档……即被存档。如果需要修改,应该先取消归档才能操作。否则,除了能否点赞帖子之外,关闭和归档在功能上没有任何区别。

关于存档主题的几次讨论中存在一些混淆。

也许以下几点可以澄清概念空间,以及 Discourse 的存档功能如何融入其中:

1. Discourse 中允许编辑存档主题是专为 TL4 及以上级别设计的。这并非错误或疏漏。

这与 2015 年“像被冻结在碳中”的声明形成对比,该声明显然与 Discourse 存档功能的实际情况不符。

遗憾的是,该帖子被反复引用。它听起来和看起来都不错,但却设定了一个不切实际的期望,即存档内容永远不会发生变化。在现实世界中,这种情况从未发生过,因为存档项目中的信息总是可以被添加或修订的。

2. 一般来说,存档有两个关键特征:已存储和未发布

  • 它们被保存以供后世参考,因为它们具有某种期望的价值。
  • 它们被转移并存储在“未发布”状态。

从概念上讲,使用图书馆访问已发布项目与使用存档访问未发布项目之间存在明显区别。

由于存档越来越多地使用电子目录和对项目的数字化成像,这种区别在实际使用中正在逐渐模糊。这意味着存档项目或其复制品正越来越多地通过图书馆系统被访问。

Discourse 的情况也大致相同,其中存档主题仍然被列出,但不会出现在所有列表中。取消列出主题使其更像传统的存档项目,需要额外努力才能在隔离的存储区中找到它。

3. 在 Discourse 中,我们与存档主题的互动方式与现实生活中处理存档项目的方式非常相似。

我们可以访问存档区域(房间、储物柜、架子、文件夹、文件等),并且可以访问任何项目以向其添加内容、添加注释或标签、借出,甚至移除(例如销毁)。

因此,在现实生活中,除非是为了销毁项目或以其他永久方式将其从收藏中移除,否则通常不会取消存档以进行此类更改。

原因如下。在现实世界中,更改状态需要体力劳动,因此除非状态更改是永久性的,否则我们不会这样做,例如将箱子从存储区移到不同的大楼、删除目录条目并更新索引、在箱子上盖章表示已从存档中移除,以防其被意外归还。

在数字世界中,更改存档项目的状态毫不费力。实现这种逻辑是可行的,但这会削弱“存档”一词的实用性。

问题在于,这段引文出自开发人员,并且经常在 此处的方法文档 中被引用。如果这并非当前实现的实际情况,那么必须发生以下两种情况之一:

  1. 需要修改文档,使其清晰反映当前功能的实际情况。

  2. 需要更新当前功能,使其符合最初的设计意图。

这就是我对于“归档”的理解:要更改归档内容,必须将其从归档中物理移除。在数字形式中采用类似的行为是合乎逻辑的。

我遇到的问题是,“关闭”和“归档”之间的功能差异微乎其微,几乎毫无意义。“关闭”对我来说意味着禁止进一步评论;而“归档”与“关闭”相比,意味着“不可再被修改”。

“取消列出”是一项与归档完全无关的功能,因此在此处并不相关。正因如此,它才是一个独立于归档之外的功能。

在我的情况下,我并不想取消列出那些帖子,我只是希望人们停止回复它们!它们包含有用的历史信息,只是不再与当前的投诉或功能相关。如果我只希望它们通过链接访问,那我就会取消列出它们。

这正是“关闭”以及后来“归档”的全部意义所在。

至于现实世界的类比……网络上的归档,尤其是论坛归档,始终是只读的。它们是为了历史目的而提供的,而不是为了“需要我们时再更新”。你可以查看,但不能修改。这就是你建立它们的原因。目前,该功能并未像真正的归档那样运作。你并不打算向数字归档中添加内容。你可以向归档中添加新项目,但不应打开现有项目并进行修改。如果你需要这样做,那么它们就不应该被归档,因为它们仍然是活跃且相关的。

如果你希望某项内容不再相关但仍可更新,那就将其“关闭”。将“关闭”设定为 TL4 及以上用户等级无关的状态是合理的。

这并非技术层面的问题。如果你的 TL4 用户不尊重“请勿回复已关闭或已归档话题”的要求,那么他们可能本就不该拥有 TL4 权限。

另一方面,如果你从未要求他们避免与这类话题互动,那情况就完全不同了。

不过,一个插件或许能解决您的技术问题:禁止在已归档的主题中添加或修改帖子。这可以验证您的偏好是否受欢迎。如果它变得流行,那么您可能希望进行的更改或许会被整合到 Discourse 中。

这种视觉呈现并不完整。我更喜欢关注实际功能,而非隐喻。

我说的是更改状态,即从“已归档”变为“未归档”,这比更改归档项本身要复杂得多。

并非如此。Discourse 的归档功能会大幅将主题从用户界面中移除。此时,查找某些主题的主要途径就是显式链接。归档类似于部分取消收录,以减少随意互动:

取消收录完成了整个取消列表的过程,因此它与此相关。

从技术上讲,网络上的大多数归档都是表示层的“快照”。这也是它们通常只读的原因,因为它们并未包含其所代表的完整实体。它们更像照片,正如“快照”一词所暗示的那样。它们通常缺少必要的程序代码和数据库结构,无法允许与原始实体进行进一步交互。

更具体地看论坛归档(以及博客、电子邮件和其他媒体类型),可提供的交互级别各不相同。并非所有归档都是只读的,许多归档只需点击“恢复”或“发布”即可取消归档。归档与核心论坛代码和数据结构之间的距离越远,其只读属性通常就越强。我知道有些论坛在取消归档时会遇到问题,因为原始分类已不存在。Discourse 的归档功能避免了这一问题。