富文本编辑器破坏了 Apple 平台上的文本替换功能

我负责的论坛最近切换到了新的富文本编辑器,我立刻注意到它似乎(在某种程度上)破坏了操作系统文本替换功能,例如 iOS 上的“通用”>“键盘”>“文本替换”。这很不幸,因为我在 Discourse 中经常使用几个替换功能。例如,我最常见的版主任务之一是将用户重定向到其他论坛,因此我设置了文本替换,将 adf 替换为指向 Apple 开发者论坛的链接。(我倾向于不为此使用预设回复,因为帖子的大部分内容通常不是样板化的,但它们总是包含该链接。此外,我还有其他几个不符合此模式的替换。)

有趣的是,我的一些替换功能仍然有效;例如,\\tau 似乎可靠地变成了 τ。我的 adf 替换功能在用反引号括起来时似乎也几乎有效:我正在 macOS Safari 上撰写此帖子,输入 [反引号] adf [反引号] [空格] 会短暂地显示 [Apple Developer Forums](https://forums.developer.apple.com/),尽管如果我之后以任何方式与编辑器进行交互,它会消失并变回 adf

我假设前导反斜杠一定与我的其他替换功能有效有关,所以我可能可以通过将我的 adf 替换更改为 \\adf 来解决此 bug。但实际上我不应该这样做。

这对我很重要,因为它影响了我从 Discourse iOS 应用中有效执行此类版主任务的能力。(这也是为什么我不想添加前导反斜杠:在手机键盘上输入反斜杠很烦人。)

1 个赞

也许这是一个功能请求,但我想你只需要点击 image 切换回 Markdown 编辑器,如果你想使用此类自定义。

当然,仅使用 Markdown 编辑器即可接受。将此视为一项功能请求,以便在所有编辑模式下都能一致地使用该功能。同样,富文本编辑器并不总是忽略这些替换——我猜它们是以某种方式由操作系统发起的——它只是倾向于糟糕地处理它们。

2 个赞

我怀疑这是我们正在预处理剪贴板以确保安全的问题类别。

[test] 粘贴到富文本编辑器中会导致原始文本中出现 \[test\]

同样粘贴:

<a>apple</a>

会导致在 RTE 中出现 apple(不是链接)

但如果将其粘贴到原始文本中,则会出现 <a>apple</a>


感觉高度相关 @renato

2 个赞

我觉得这像是一个 bug,可能在我们粘贴到选区上方时创建链接的逻辑中。我会看看。

iOS 文本替换可能与 Android 的 IME 类似,会绕过通常预期的文本插入事件。我不确定,但这似乎是另一个问题。

这些不一致的出现并非不可能由运行时错误引起。我这周会尝试重现它。

3 个赞