Приоритет/Серьезность:
Средний
Платформа:
Операционная система
- Windows 11
Браузер
- Google Chrome 141.0.7390.123
Discourse
fb4bd7951aa6ae8c814df702807c12ccb77bd3fd
Описание:
«Редактор с форматированием» предназначен для обеспечения режима «WYSIWYG», при котором содержимое, отображаемое в редакторе, рендерится в опубликованном посте точно так же, как оно представлено в редакторе.
Текст, скопированный из некоторых источников, может сохраняться в буфере обмена в форматированном виде (тип text/html) в дополнение к обычному тексту (тип text/plain).
При вставке текста в редактор, если в буфере обмена присутствует форматированный тип данных, используется именно он, а не обычный текст.
Из-за минималистичной природы синтаксиса часто бывает, что текст содержит содержимое, которое случайно совпадает с разметкой 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\]
Дополнительная информация:
Я считаю, что редактор с форматированием правильно игнорирует видимую разметку Markdown в вставленном содержимом типа «text/html». Любое намеренное форматирование в таком содержимом определяется HTML-тегами, поэтому содержимое, напоминающее Markdown, скорее всего, является случайным совпадением, а не настоящей разметкой. Таким образом, проблема заключается в том, что случайная синтаксическая конструкция Markdown рендерится при публикации, а не в том, что она не отображается в редакторе.
Мне удалось воспроизвести эту проблему на try.discourse.org в «безопасном режиме».