Встроенное форматирование применяется при использовании форматирования «предварительно отформатированный текст» для многострочного выделения

Приоритет/Серьезность:

Средний

Платформа

Операционная система

Windows 11

Браузер

Google Chrome 139.0.7258.67

Discourse

dee24bd73b158ba97453f20035eabce430a1abcd

Описание:

Существует два стиля форматирования «текста с сохранением форматирования»:

  • встроенный (inline): для использования с контентом, не являющимся обычным текстом, внутри абзаца (например, «вызовите функцию foo») или для одной короткой строки такого контента.
  • блочный (block): для использования с несколькими строками контента, не являющегося обычным текстом.

Пользователь может применять форматирование в редакторе двумя способами:

  • проактивный: режим форматирования переключается перед добавлением контента, который нужно отформатировать.
  • реактивный: контент добавляется в неформатированном виде, затем выделяется, и к выделенному применяется форматирование.

: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 лайк