Generic [wrap]/Markdown-it пользовательские типы токенов вызывают ошибки в RTE

Приоритет/Серьезность: Низкий?

Платформа: Устройства, использующие новый RTE.

Описание: Создание пользовательских типов токенов, которые ранее корректно работали только с движком markdown-it, вызывает ошибки в ProseMirror. Поскольку отсутствует схема ProseMirror для обработки преобразования в DOM, любые пользовательские типы токенов приводят к ошибке. Аналогично возникают проблемы с поведением при переключении между RTE и Markdown с использованием BBCode.

Шаги для воспроизведения:

Сначала RTE:

  1. Открыть редактор.
  2. Установить режим RTE.
  3. Вставить пользовательский BBCode.
    a. Например, с Discourse Meta: [wrap=test2 user-id=1]Content[/wrap]
  4. Закрыть сообщение об ошибке и переключаться между режимами RTE и Markdown.
    a. BBCode экранируется.

Сначала Markdown:

  1. Открыть редактор.
  2. Установить режим Markdown.
  3. Вставить пользовательский BBCode.
  4. Переключаться между режимом Markdown и RTE.
    a. BBCode не отображается.
  5. Переключиться обратно, чтобы увидеть исходный код.

Текущее обходное решение:
Использовать только режим Markdown.


Сама по себе ошибка не так уж критична, главная проблема заключается в странном поведении при переключении режимов или при вставке кода.

Идеальное решение заключалось бы в том, чтобы каждый плагин Markdown создавал правильную схему визарда/ProseMirror для его обработки.

Что касается универсального BBCode [wrap], возможно, лучше оставить его в виде обычного текста, так как несколько компонентов могут использовать этот универсальный BBCode в одном экземпляре Discourse. Идеальным решением, вероятно, будет предоставление разработчикам возможности создать собственный визард и сопоставить вывод со своими реализациями, с возвратом к обычному тексту, если совпадений не найдено.

В более общем плане для любых существующих плагинов, которые не были обновлены для использования ProseMirror, хорошим временным решением было бы использование обычного текста по умолчанию (который не экранируется и не скрывается).

3 лайка

Спасибо за сообщение! @renato следит за подобными пограничными случаями. Wrap — наш основной инструмент для определённых компонентов темы, мы добьёмся его корректной работы.

2 лайка

Я получаю аналогичное сообщение об ошибке, если добавляю тег Галереи [grid] в Markdown, а затем повторно редактирую свой пост в режиме WYSIWYG.

Я понимаю, что проблема известна и над ней работают, я просто добавлю точное сообщение об ошибке:

No parser processed bbcode_open token for tag: div, attrs: [["class","d-image-grid"]]

Для тех, кто будет искать эту строку на Meta после столкновения с этой проблемой (как только что сделал я). :slight_smile:

1 лайк

Мы в курсе, над проблемой действительно работают, и она должна быть решена в течение нескольких недель.

3 лайка

Столкнулся с этим сам. Рад, что над этим работают.

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

Тег [wrap] теперь поддерживается в визуальном редакторе. Я закрываю эту тему, но, пожалуйста, не стесняйтесь создать новую, если столкнётесь с какими-либо проблемами.

1 лайк