快速引用主题组件

:information_source: 摘要 简单来说:它通过单击自动引用帖子,改变了“回复帖子”按钮(非“回复主题”)的行为。
:hammer_and_wrench: 仓库链接 GitHub - merefield/discourse-quick-quote: A Theme component to change the behaviour of the Post Reply buttons to quote a Post automatically in a single click. · GitHub
:open_book: 安装指南 Installing a theme or theme component
:heart: 赞助 请考虑成为我开源工作的长期赞助者,赞助金额请根据您或您所在组织的资源和需求而定,以确保该组件得到应有的维护,并继续为您的站点提供服务。

喜欢这个主题组件?请在 GitHub:star:

功能说明

简单来说:它通过单击自动引用帖子,改变了“回复帖子”按钮(非“回复主题”)的行为。

有多个设置可供调整,以优化引用的内容和时机。您甚至可以指定引用的嵌套层级,以营造那种“复古”的感觉。

由于自动生成的引用会直接输入到编辑器中,如果您愿意,可以在此处手动进行微调(但这多少有些违背“快速”的初衷 :snail:)。

它不会改变底部“回复主题”按钮的行为,也不会影响现有的引用工具。

为什么需要它

  • 有些人觉得在默认安装中,引用操作需要点击太多次。在触控设备上这个问题尤为突出。

  • “自动引用”在回复较早期的帖子时特别有用。该插件会计算被引用帖子的位置深度,如果足够深,则会自动插入引用。这有助于读者更快地理解上下文。

  • 它带回了“嵌套引用”功能!(默认关闭)该组件对那些习惯于某些“复古”论坛平台 :space_invader: 的用户可能特别有吸引力。这属于个人偏好——如果您喜欢看到嵌套引用,现在您可以实现了,但请注意这会占用更多空间!

您不需要它,如果

您对默认的“回复帖子”行为完全满意。我就很满意,但拥有更多选择总是好的,对吧?

设置项

quick_quote_post_location_threshold: “启用快速引用的帖子回溯数量阈值。”

控制帖子需要回溯多远才会触发自动引用。避免对近期帖子进行不必要的引用。

quick_quote_remove_links: “从引用中移除所有链接(包括图片)”

清理内容,优化空间利用。

quick_quote_remove_prior_quotes: “移除所有先前(嵌套)的引用”

默认启用。取消此设置可获得极致的复古嵌套体验。(抱歉,Jeff!;))

quick_quote_remove_contiguous_new_lines: “移除多余的空行”

空行被高估了。

quick_quote_character_limit: “引用字符限制(如果总长度超过限制,则仅保留最后 x 个字符)”

摘录功能相当基础 :slight_smile: 如果您需要更精准的引用(插件不会覆盖此功能),请改用引用工具。

已知局限性

该主题组件在处理引用准备时相对简单。某些设置组合效果更佳,具体取决于管理员的自行判断。为了保持简单,避免了一些复杂性,例如摘录字符限制可能会导致单词被截断。格式也被简化,因为会移除标签以避免截断标签导致损坏的风险——这同样是为了实现简洁。引用处理严重依赖正则表达式,并非所有正则表达式都完美无缺,但“足够好用”。这些可能在主题组件的生命周期内得到改进。

该组件最近由我同名的插件移植而来,但在移植过程中可能引入了一些 bug。如果您发现任何问题,请告诉我。

我的赞助者及该组件的灵感来源

请感谢 @Merlls_Rizzini 赞助了这项工作。该功能是我们要两人头脑风暴的结果,部分灵感来源于 @eesty这篇帖子

注:该组件基于我的 Fast Quote 插件,但为了让更多托管在第三方平台的站点管理员能够使用,将其转换为主题组件格式。@sam 建议将其转换为主题组件,因为其中没有后端组件部分;@sully 在创建了他自己的主题版本后,给了我最后的推动力,促使我完成了这次迁移。

欢迎所有反馈。

38 个赞

如果我当时没有跳读,我本可以少花些时间去琢磨它的价值,

我喜欢这个功能 :+1:

3 个赞

如果能按类别使用那就太棒了,我们很希望把它放在我们的 AMA 类别中,否则会有点混乱。

3 个赞

最近对 topic.js 的 Git 提交似乎破坏了该主题组件:

Quote.build() 已不存在;他们似乎正在导入并使用 buildQuote() 函数。简单的替换并未奏效;需要再仔细思考一下。

2 个赞

我的疏忽!quick-quote 插件不在 all-the-plugins 列表中,所以我在查找回归问题时错过了它。我会把它加上去,并且已经为这个插件提交了一个修复的 PR:

(另外还有一个针对设置的小修复:https://github.com/merefield/discourse-quick-quote/pull/2)

5 个赞

太棒了,谢谢 Jarek(也感谢 @sully 的反馈!),已合并!(还感谢这个 bug 修复!)

1 个赞

我正在使用这个主题,昨天更新了,今天就开始收到投诉。

当我创建帖子进行回复和解释时,发现如果我在回复某个帖子后,转到另一个帖子并想完整回复,却无法做到,回复仍然停留在最初的那个帖子上。

以前它会自动切换,不过快速引用功能仍然正常。

为了让我完全理解,您能否再详细拆解一下……能否用更细致的步骤解释,并指出您认为问题出在哪里?

1 个赞

是的,这个问题现在正在讨论中。无法回复超过 3 层之前的帖子,很可能会成为一个令人头疼、需要反复解释的问题。

快速引用功能很棒,但能否恢复回复功能?

我仍然不太明白您的意思。能否请您提供更详细的说明和更多步骤?

我已在本地重新测试了该组件,它似乎运行正常?

1 个赞

没问题,也许是我误解了函数,或者有其他疏忽。

但目前的情况是,如果我在一个帖子中向上滚动 4 条回复,回复按钮就会变灰不可用。

这个问题是今天才被提到的,而我在昨天进行了更新。

所以我认为这可能与更新有关,也许涉及某个设置?

你能展示一下你的主题设置吗?

另外,请确认你使用的是最新版本的 Discourse 以及最新版本的主题组件。

此外,请告诉我你在控制台中是否看到任何 JavaScript 错误?

1 个赞

在一个随机帖子中

image

这个网站没有显示版本,就像我自建的那样

1 个赞

谢谢。

好的,我已经将我的设置调整为相同,但无法复现该问题。4 条帖子之前的“回复”按钮工作正常。

不过,鉴于你的设置,这非常可疑。(那个“3”很显眼!)

我使用的是最新版本的 Discourse 和 TC。请确保你的两个系统都已完全更新。

1 个赞

查看源代码显示 Discourse 2.5.0.beta2

TC 是主题组件吗?

将 3 改为 5 后,我可以回复到第 5 条帖子。

那我是否应该设置为 9999?这样会不会影响其他功能?

好的,我已经在生产环境中复现了您的问题……

v2.5.0.beta2 +459

Jarek 提交的这些更改是专门针对最新版本的 Discourse 的。

您是否可能处于 Jarek 提交更改之前的 Discourse 版本?如果是这样,它将无法与最新的 TC 配合使用。您需要同时升级两者,或者都不升级。

此外,我刚刚将该站点升级到了最新版本(+495),现在一切正常。

所以,是的,您需要将您的 Discourse 升级到他的提交之后。

1 个赞

能否提供一些我可以用来回退的 CSS?

等我的网站更新后,我再将其移除?

谢谢 :slightly_smiling_face:

或者

@team 我的网站很快就能更新吗?

啊,好主意,不过我认为无法从界面访问 JavaScript 文件夹的内容(如果我说错了,请有人纠正我!)。不幸的是,我相信你也不能安装某个特定提交的主题组件(同上!)。所以我的建议是,是的,把那个 3 改成 9999,然后等到你的 Discourse 版本更新一些再说。

1 个赞

没问题,别担心,感谢配合,非常感激 :+1:

1 个赞

嘿,各位快速引用、即兴发言的 Discourse 用户……我已发布了一个修复版本,让快速引用功能在最新版 Discourse 上重新可用。

我正在跟踪 tests-passed 分支,因此如果您不在该分支上,请勿更新。

3 个赞