「プリフォーマットテキスト」フォーマットを複数行選択に適用した際のフォーマット誤り

優先度/重大度:

プラットフォーム

オペレーティングシステム

Windows 11

ブラウザ

Google Chrome 139.0.7258.67

Discourse

dee24bd73b158ba97453f20035eabce430a1abcd

説明:

「整形済みテキスト」フォーマットには2つのスタイルがあります。

  • インライン:文章の途中でプログラミング以外のコンテンツに使用(例:「foo関数を呼び出す」)、または短く1行のプログラミング以外のコンテンツに使用。
  • ブロック:複数行のプログラミング以外のコンテンツに使用。

コンポーザーを使用する際に、ユーザーはフォーマットを適用するために次のいずれかのアプローチを取ることができます。

  • プロアクティブ:フォーマットするコンテンツを追加する前にフォーマットモードを切り替える。
  • レトロアクティブ:コンテンツをフォーマットされていない形式で追加し、その後選択してその選択範囲にフォーマットを適用する。

: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