Подсветка синтаксиса Markdown в редакторе постов

Чтобы добавить немного подробностей: во-первых, я действительно хочу, чтобы ядро поддерживало это, но также стоит рассмотреть сложность этой задачи.

Ядро Discourse использует множество API, работающих напрямую с элементом TEXTAREA: упоминания (@mentions), вставки из панели инструментов, загрузки, вырезание и вставка изображений и многое другое.

Всё это не абстрагировано и предполагает, что работа ведётся именно с TEXTAREA. Прямое добавление contenteditable означало бы необходимость точно и корректно эмулировать поведение TEXTAREA, что, скорее всего, приведёт к ошибкам. Нам потребуется значительная работа по созданию фреймворка провайдеров, чтобы мы могли подменять компоненты.

См. также:

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

Возможно, существует какой-то хитрый трюк, позволяющий скрыть TEXTAREA и отрендерить поверх него contenteditable, перенаправляя события обратно в оригинал, но даже это потребовало бы переосмысления реализации позиционирования @mention.

9 лайков