功能请求:添加一个选项以禁用回复后自动跳转到最后一条帖子

大家好,

我最近花了一些时间浏览 Meta 和其他基于 Discourse 论坛上的旧主题和讨论,发现多年来许多用户反复提出了同一个担忧

发布回复或关闭编辑器后,Discourse 会自动跳转到主题的最后一个帖子。

对相当一部分人来说——包括我自己——这种行为实际上是有碍而非有益的。

为什么这会造成问题

根据许多用户的表达,常见的问题包括:

  • 当你在长帖子的中间回复时,编辑器关闭后视图会突然跳到底部,迫使你一直滚动回去才能继续阅读你之前所在的位置。

  • 如果你在跟进阅读旧消息时进行回复,这种自动跳转会打断阅读流程

  • 一些用户甚至认为这可能是一个错误,因为跳转发生得太快,让人感觉意外且不直观。

  • 许多过去的讨论表明,人们尝试过变通方法、脚本或黑客手段,但没有一个是可靠或官方支持的。

简而言之,虽然自动跳转到最新帖子对一些用户很有用,但根据不同的阅读习惯或工作流程,它对许多其他人来说是多余的

功能请求:请让此行为可选

通过回顾过去的帖子,似乎:

  • 没有内置设置可以禁用此自动跳转

  • 没有官方插件提供切换选项

  • 管理员和用户目前完全无法控制此行为

因此,我请求 Discourse 提供以下任一选项:

一个用户偏好设置,例如:

“发布或关闭编辑器后,停留在当前位置(不要跳转到最后一个帖子)。”

或者

一个全站/管理员设置,例如:

“启用/禁用回复后自动滚动到最新帖子。”

这将允许不同的社区(和单个用户)选择更适合其阅读风格的交互模式。这也符合 Discourse 的设计理念,即通常允许定制阅读流程行为。

为什么提供选项对每个人都有益

  • 喜欢自动跳转的用户可以保持现状

  • 不喜欢此功能的用户可以将其关闭

  • 论坛管理员可以设置符合其社区需求的默认值

  • 没有人需要依赖脆弱的自定义 JavaScript 或浏览器用户脚本

  • 它可以改善可访问性,并减少对某些读者可能不适的突然移动

考虑到这么多人多年来都提出了这个问题,添加一个可配置的选项可以显著改善社区中很大一部分用户的用户体验。

如果我错过了现有的设置或插件,请随时指点我——但根据我的发现,似乎目前不存在这样的选项。

感谢您的考虑,我非常感谢团队或其他插件开发者的任何见解。

1 个赞

发布内容后,您不会因为发现自己落在了帖子列表的几十个帖子之上而感到困惑,并且没有任何提示表明您已经发布了吗?如果您想评论其余的帖子,为什么不继续阅读呢?

2 个赞

感谢您的解释!让我澄清一下我的实际用例,因为当前的行为仍然给我带来了真正的问题。

想象一下这个场景:
我发起一个讨论串,然后去睡觉,第二天醒来发现有一百多条回复。其中很多都很有趣,我想在阅读整个帖子时回复其中一些

问题在于:

当我在主题的中间阅读某条回复并对其进行回复时,发送回复后,Discourse 会立即跳转到主题的最底部
但对话不是实时的——人们可能要过几个小时才会再次回复。我不需要被带到最新的帖子。我只是想按顺序继续阅读其余的回复。

我真正需要的是:

  • 一个明确的指示,表明我的回复已成功发布

  • 会丢失我当前的阅读位置

  • 这样我就可以自然地继续按顺序阅读接下来的回复

现在,在强制自动跳转后,我必须手动滚动回去并试图记住我之前的位置,这很繁琐,并且打断了阅读流程。

这就是为什么提供一个发帖后停留在当前滚动位置的选项会非常有帮助。
自动跳转对某些工作流程很有用,但在我的情况下,它只是碍事。

关于此问题,在 Will disable_jump_reply make a return? 及相关主题中有成千上万的讨论。

简而言之,您可以在发帖时按住 Shift 键以防止滚动。

1 个赞

感谢您的提示!我不知道有 Shift + 回复 这个行为——这在某些情况下确实有帮助。

话虽如此,我仍然觉得这真的可以从一个适当的设置或用户偏好中受益。每次都使用修饰键不太容易被发现,而且很容易忘记,特别是对于可能甚至不知道存在此类快捷键的非技术用户来说。

我非常欣赏 Discourse 的一点是它已经提供了高度的自由——用户可以自定义他们阅读、导航和交互的许多方面。在我看来,正是这种自由使 Discourse 成为一个很棒的平台。对于这个特定的行为,如果用户可以简单地选择他们的默认偏好,那就太好了:

  • 回复后自动跳转到最后一篇帖子,或者

  • 停留在当前位置并继续阅读

有一个明确的默认设置加上调整它的能力,将使该行为更直观、更易于访问。例如,在我自己的浏览习惯中,我倾向于在新标签页中从主页打开大多数主题,因为现代计算机内存充足,关闭标签页通常比来回导航更快、更方便。这只是说明不同用户重视不同工作流程的一个例子。

所以我的一般理念是:用户选择越多越好。
如果一个功能有多种合理的行为,让用户决定——而不是强迫每个人走一条路——通常会为所有人带来更好的体验。这也意味着像我这样的用户就不需要创建小的脚本或插件来恢复对我们来说很自然的工作流程。

再次感谢您有帮助的回复,我希望将来仍能将此视为一个潜在的可选设置来考虑。

1 个赞

请阅读 Will disable_jump_reply make a return?

2 个赞

:heart: 感谢您的指点——我现在已经阅读了整个“disable_jump_reply 是否会回归?”的主题。

我理解移除旧的 disable_jump_reply 偏好设置背后的原因:当时它已损坏,很少有人使用,而且 Discourse 通常会避免积累大量的全局用户偏好设置。我还了解您在那里描述的设计理念——使用自动跳转作为鼓励人们在回复前阅读完整主题的方式,而更“专家级”的工作流程则隐藏在修饰键或高级选项等后面。

Shift + Reply 快捷键在某些情况下确实有帮助,感谢您的提及。但对我的问题是:

  • 如果没有阅读过那个特定的 Meta 主题或没有别人告知,这个功能完全无法被发现,
  • 每次都需要记住一个特殊的按键会增加心智负担,
  • 当您在多个 Discourse 论坛上追看长篇主题时,被猛地拉到离您阅读位置几百个帖子远的地方,对于一个简单的回复来说,仍然感觉像是一种相当沉重的“惩罚”。

我个人喜欢 Discourse 的一点正是它的灵活性:作为管理员或用户,您可以调整很多细节以适应自己的阅读和导航习惯。从这个角度来看,这似乎是一个只需要少量额外配置就能大有裨益的领域,而不会让界面变成一堆选项。

例如,以下任何一个都会有很大的改进:

  • 在用户界面中提供一个可见的“不跳转回复”选项(即使它被认为是高级/专家操作),
  • 或者一个隐藏在“高级”部分下的用户级别/站点级别切换,这样真正关心这种行为的人就可以一次性选择退出,而不是永远依赖一个隐藏的快捷键。

我完全理解对拥有太多偏好设置的担忧,我并不是要求恢复每一个晦涩的设置。我只是想分享一个花大量时间在阅读旧帖子时进行回复的人的观点:对于这种特定的行为,缺乏一个清晰、可发现的选择所付出的代价,比许多其他偏好设置要高。

无论如何,再次感谢您的解释和 Shift 提示——了解背景信息非常有帮助,尽管我仍然希望将来这可能会被重新考虑为某种可选的或“专家级”的设置。

1 个赞

再次感谢——有趣的是,当我问了几个基于 Discourse 的论坛上的相同问题时,几位用户也不知道按住 Shift 键可以阻止跳转。所以这显然不是一个很容易发现的行为。

从积极的一面来看,现在我知道了 Shift 机制,明天编写一个小插件或主题组件应该相当简单。它实际上给了我一个更清晰的实现方法,因为我将不必依赖繁重的 DOM 突变观察器来抵消自动滚动——我可以挂接到相同的逻辑中。

无论如何,感谢您提供的信息。即使这仍然是一个“专家级”行为,我也很高兴我终于足够了解底层机制,可以对其进行适当的扩展。

2 个赞