智能引号破坏引号模板

在我至少两个不同的 Discourse 站点上遇到了一个问题:当我选择文本并点击“引用”进行回复时,智能引号在某个地方被使用,这破坏了我帖子的外观。这是我帖子显示不正确的示例截图,因为第一行末尾(括号内)的智能引号(在括号内):

这种情况已经持续了好几个月,我直到最近才弄清楚这些帖子到底是怎么回事。

在 Mac OS 15.4 上的 Safari 18.4 以及 Mac OS 15.3 的早期版本 Safari 上,我大约有 50% 的几率可以重现这个问题。

我运行的站点上出现了这个问题,它运行的是 Discourse 3.4.2。我刚刚在另一个站点上遇到了这个问题,它运行的是 3.4.0.beta3-dev。

我相信我也在我的站点上看到过其他人遇到这个问题,但我今天还没有仔细检查过。

1 个赞

虽然应该为 bug 提供真正的修复,但以防万一它暂时有用,我将提到一个可能的解决方法是删除 Markdown typographer quotation marks 站点设置中的双引号,或者禁用 Enable markdown typographer 站点设置。

我假设是这个“Markdown typographer”功能导致了 BBCode 标签中正确的直双引号字符被替换为不正确的“智能”或“弯引号”字符。

这是一个不错的猜测,但我记得几年前有一个类似的问题,我记得我们在 Discourse 中甚至还包含了一些代码来处理“→ ”,以应对这种情况。

@jtbayly 这些站点是否启用了新的编辑器?

两者都没有启用新组合。

另一位用户报告,如果我在 Safari 的 编辑 → 替换 → 智能引号中关闭智能引号替换,那就可以解决问题。

不过我并不特别想这么做。哈哈。我大部分时间都喜欢我的智能引号。

我认为这就是问题所在,此外,我们在此类添加中模仿 textarea 上的用户输入,以避免丢失撤销历史记录。

我认为可以通过在元素上设置 spellcheck="false" 来“解决”它,但这有一个明显的缺点。

导致问题的原因是引号不一致,如果两端使用相同风格的引号,它就可以工作——可以使用以下任何一组引号:

奇怪的是,在引用时只有第二个引号被转换了,如果手动输入相同的 BBCode,两边都会被转换。

2 个赞

这个问题也不一致。并不是每次都会发生,虽然我还没有搞清楚什么时候会发生,什么时候不会发生。

很奇怪,它用那么多不同的引号选项都能正常工作,但这个就不行。我在想……

实际上,匹配不一致的引号样式(尤其是"和”)是否是一个简单的修复,不会引起问题?

我们是否应该修改解析器以允许配对“ ”和各种晦涩的怪异引用进入 bbcode?

1 个赞