リッチテキストエディタに貼り付けられたフォーマット済みコンテンツの偶然のMarkdownが公開時にレンダリングされる

優先度/重大度:

プラットフォーム:

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

  • Windows 11

ブラウザ

  • Google Chrome 141.0.7390.123

Discourse

fb4bd7951aa6ae8c814df702807c12ccb77bd3fd

説明:

“リッチテキストエディタ” は、「WYSIWYG」エクスペリエンスを提供することを目的としており、コンポーザで表示されるコンテンツは、公開された投稿で表示されるとおりにレンダリングされます。

一部のソースからコピーされたテキストは、プレーンテキスト (text/plain) に加えて、フォーマットされた形式 (text/html タイプ) でクリップボードに保存される場合があります。

コンポーザにテキストが貼り付けられると、クリップボードにフォーマットされたデータ型が存在する場合、プレーンテキスト型ではなく、このデータが使用されます。

構文の最小限の性質上、テキストにMarkdownマークアップに偶然似ているコンテンツが含まれることは一般的です。

:bug: フォーマットされたコンテンツが貼り付けられた際に、特定の偶然のMarkdownマークアップが含まれている場合、公開された投稿は「リッチテキストエディタ」に表示されるものとは異なる方法でレンダリングされます。

再現手順:

偶然のリストマークアップ

  1. 次のコンテンツを含むHTMLファイルを作成します。
    <html>
      <body>
    <br />- foo
      </body>
    </html>
    
  2. ファイルをWebブラウザで開きます。
  3. Webページのコンテンツをコピーします。
  4. ポストコンポーザを開きます。
  5. コンポーザを「リッチテキストエディタ」モードにします。
  6. コピーしたコンテンツをコンポーザに貼り付けます。
    :slightly_smiling_face: テキストはリストとしてレンダリングされるのではなく、そのまま貼り付けられました。

    - foo

  7. ポストを公開します。

:bug: コンポーザで見たものとは異なり、コンテンツは順序なしリストとしてレンダリングされました。

  • foo

偶然のコードブロックマークアップ

  1. 次のコンテンツを含むHTMLファイルを作成します。
    <html>
      <body>
        <span style="white-space: pre">    foo</span>
      </body>
    </html>
    
  2. ファイルをWebブラウザで開きます。
  3. Webページのコンテンツをコピーします。
  4. ポストコンポーザを開きます。
  5. コンポーザを「リッチテキストエディタ」モードにします。
  6. コピーしたコンテンツをコンポーザに貼り付けます。
    :slightly_smiling_face: テキストはコードブロックとしてレンダリングされるのではなく、そのまま貼り付けられました。

        foo

  7. ポストを公開します。

:bug: コンポーザで見たものとは異なり、コンテンツはコードブロックとしてレンダリングされました。

foo

偶然のコードブロックマークアップと偶然のBBCode

  1. 次のコンテンツを含むHTMLファイルを作成します。
    <html>
      <body>
        <span style="white-space: pre">    [foo]</span>
      </body>
    </html>
    
  2. ファイルをWebブラウザで開きます。
  3. Webページのコンテンツをコピーします。
  4. ポストコンポーザを開きます。
  5. コンポーザを「リッチテキストエディタ」モードにします。
  6. コピーしたコンテンツをコンポーザに貼り付けます。
    :slightly_smiling_face: テキストはそのまま貼り付けられました。

        [foo]

  7. ポストを公開します。

:bug: コンポーザで見たものとは異なり、コンテンツはコードブロックとしてレンダリングされ、ブラケットの前にバックスラッシュが追加されました。

\[foo\]

追加コンテキスト:

「text/html」タイプを持つ貼り付けられたコンテンツに含まれる、明らかにMarkdownのようなマークアップは、リッチテキストエディタが無視するのが正しいと思います。そのようなコンテンツの意図されたフォーマットはHTMLタグによって定義されるため、Markdownに似ているコンテンツは、実際のマークアップではなく、偶然である可能性が最も高いです。したがって、ここでの欠陥は、偶然のMarkdown構文が公開時にレンダリングされることであり、コンポーザでレンダリングされないことではありません。


try.discourse.org の「セーフモード」で、この欠陥を再現できます。

「いいね!」 1