当对多行选择应用“预格式化文本”格式时,使用了不正确的格式

优先级/严重性:

平台

操作系统

Windows 11

浏览器

Google Chrome 139.0.7258.67

Discourse

dee24bd73b158ba97453f20035eabce430a1abcd

描述:

“预格式化文本”有两种样式:

  • 行内:用于散文段落中的非散文内容(例如,“调用 foo 函数”),或单行非散文内容。
  • 块:用于多行非散文内容。

用户在使用编辑器时,可以选择以下两种应用格式的方法之一:

  • 主动:在添加要格式化的内容之前切换格式模式。
  • 被动:先以未格式化的形式添加内容,然后选中该内容并应用格式。

:bug: 在“富文本编辑器”模式下使用编辑器时,当多行被选中并被动应用“预格式化文本”格式时,会应用行内样式。这导致帖子难以阅读,并且非散文内容难以复制(这是共享代码的常见要求)。

可复现步骤:

  1. 打开编辑器。

  2. 将编辑器模式开关置于“富文本编辑器”位置。

  3. 在帖子中添加以下内容:

    void setup() {
      // put your setup code here, to run once:
    
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    
    }
    
  4. 选中帖子内容。

  5. 点击编辑器工具栏上的 </> 按钮。

:bug: 选中的每一行都分别以行内样式格式化:

void setup() {

// put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

}

正确的行为应该是将内容放入单个代码块中:

void setup() {

  // put your setup code here, to run once:



}



void loop() {

  // put your main code here, to run repeatedly:



}

其他信息

Markdown 编辑器在对多行选择被动应用“预格式化文本”格式时,具有将所选内容放入代码块的正确行为。


我能够在 try.discourse.org 的“安全模式”下复现该故障。

5 个赞

感谢您的错误报告,我可以重现该问题。

我们将着手修复。

5 个赞

如果您有机会,请再次测试一下?

我们在该 PR 中进行了一些改进:DEV: make formatCode action more context-aware on rich editor by renato · Pull Request #35362 · discourse/discourse · GitHub

我确认当我执行报告中提供的步骤时,帖子现在已按预期格式化。

非常感谢 @renato 的修复,以及您花时间在此处发布更新!

1 个赞