Приоритет/Серьезность:
Средний
Платформа
Операционная система
Windows 11
Браузер
Google Chrome 141.0.7390.123
Discourse
ad36231adab58a8a249bfe8139aade2bde2134d3
Описание:
Существует два стиля форматирования «предварительно отформатированного текста»:
- встроенный: для использования с контентом, не являющимся текстом, внутри текстового отрывка (например, «вызовите функцию
foo») или с одной короткой строкой контента, не являющегося текстом. - блочный: для использования с несколькими строками контента, не являющегося текстом.
Пользователь может выбрать один из двух подходов к применению форматирования при использовании редактора:
- проактивный: режим форматирования переключается до добавления контента, подлежащего форматированию.
- ретроспективный: контент добавляется в неформатированном виде, затем выделяется, и к выделению применяется форматирование.
Применение форматирования «предварительно отформатированного текста» к многострочному выделению использует некорректный стиль «встроенный» при следующих условиях:
- Редактор находится в режиме «текстовый редактор с форматированием».
- Форматирование применяется ретроспективно.
- В выделенном контенте отсутствует жесткий разрыв строки.
Это приводит к тому, что пост становится трудно читать, а контент, не являющийся текстом, — трудно копировать (что является распространенным требованием для общего кода).
Шаги для воспроизведения:
- Откройте редактор.
- Переключите режим редактора в положение «текстовый редактор с форматированием».
- Введите
fooв редакторе. - Нажмите сочетание клавиш Shift+Enter, чтобы добавить «мягкий разрыв».
- Введите
barв редакторе.
Не добавляйте разрыв строки. - Нажмите сочетание клавиш Ctrl+Shift+Home, чтобы выделить весь контент от конца строки 2 до начала поста.
- Нажмите кнопку </> на панели инструментов редактора.
Каждая из выделенных строк была отформатирована индивидуально во встроенном стиле:
foo
bar
Правильным поведением было бы размещение контента в одном блоке кода:
foo
bar
Дополнительная информация
Я выбрал подход ручного ввода контента для демонстрации, чтобы избежать ненужного усложнения, связанного с учетом форматирования, которое может присутствовать в скопированном контенте в зависимости от источника копирования. Однако ошибка также возникает при вставке контента, и условия отсутствия жесткого разрыва в контенте будут более вероятны при работе с таким контентом (поскольку пользователь, вероятно, будет нажимать Enter во время ввода, даже если он не хотел делать жесткий разрыв).
Ошибка не возникает, если вы используете «Выделить все»/Ctrl+A для выделения контента.
Редактор Markdown имеет правильное поведение: он всегда помещает выделенный контент в блок кода, когда к многострочному выделению применяется форматирование «предварительно отформатированного текста» ретроспективно.
Мне удалось воспроизвести ошибку на try.discourse.org в «безопасном режиме».
Изначально сообщено по адресу Why did the Forum functions change? - #37 by sterretje - Website and Forum - Arduino Forum

