优先级/严重性:
中等
平台:
操作系统
- Windows 11
浏览器
- Google Chrome 141.0.7390.123
Discourse
fb4bd7951aa6ae8c814df702807c12ccb77bd3fd
描述:
"富文本编辑器"旨在提供“所见即所得”的体验,即在编辑器中看到的内容将完全按照发布帖子时的样子进行渲染。
从某些来源复制的文本除了纯文本(text/plain 类型)外,还可能以格式化形式(text/html 类型)存储在剪贴板中。
当文本粘贴到编辑器中时,如果剪贴板中存在格式化数据类型,则将使用该数据而不是纯文本类型。
由于语法的最小化特性,文本经常包含碰巧看起来像 Markdown 标记的内容。
当粘贴的格式化内容包含某些巧合的 Markdown 标记时,已发布帖子的渲染方式与“富文本编辑器”中显示的方式不同。
可重现步骤:
巧合的列表标记
- 创建一个包含以下内容的 HTML 文件:
<html> <body> <br />- foo </body> </html> - 在您的网络浏览器中打开该文件。
- 复制网页内容。
- 打开帖子编辑器。
- 将编辑器置于“富文本编辑器”模式。
- 将复制的内容粘贴到编辑器中。
文本被逐字粘贴,而不是被渲染为列表:
- foo
- 发布帖子。
内容没有像在编辑器中看到的那样被渲染,而是被渲染为无序列表:
- foo
巧合的代码块标记
- 创建一个包含以下内容的 HTML 文件:
<html> <body> <span style="white-space: pre"> foo</span> </body> </html> - 在您的网络浏览器中打开该文件。
- 复制网页内容。
- 打开帖子编辑器。
- 将编辑器置于“富文本编辑器”模式。
- 将复制的内容粘贴到编辑器中。
文本被逐字粘贴,而不是被渲染为代码块:
foo
- 发布帖子。
内容没有像在编辑器中看到的那样被渲染,而是被渲染为代码块:
foo
巧合的代码块标记与巧合的 BBCode
- 创建一个包含以下内容的 HTML 文件:
<html> <body> <span style="white-space: pre"> [foo]</span> </body> </html> - 在您的网络浏览器中打开该文件。
- 复制网页内容。
- 打开帖子编辑器。
- 将编辑器置于“富文本编辑器”模式。
- 将复制的内容粘贴到编辑器中。
文本被逐字粘贴:
[foo]
- 发布帖子。
内容没有像在编辑器中看到的那样被渲染,而是被渲染为代码块,并且在括号前添加了反斜杠:
\[foo\]
附加信息:
我认为,富文本编辑器忽略粘贴内容中存在的、具有“text/html”类型的明显 Markdown 标记是正确的。此类内容中的任何有意格式都将由 HTML 标签定义,因此看起来像 Markdown 的内容很可能是巧合,而不是真正的标记。因此,这里的错误在于巧合的 Markdown 语法在发布时被渲染了;而不是它在编辑器中没有被渲染。
我能够在 try.discourse.org 的“安全模式”下重现该错误。