Комментарии 10
Правильно ли я понимаю, что это руководство по использованию draft-js? Но не создание собственного текстового редактора.
Элементарная стилизация текста давным давно реализована в ваниле. Современные браузеры в div с contenteditable=true поддерживают и некоторые сочетания клавиш, например ctrl+B, ctrl+I и т.д. Выделенному тексту можно задавать шрифт, цвет, цвет паттерна с помощью метода document.execCommand().
Ну а назначить кнопкам действие это совсем просто.
execCommand deprecated. К тому же, надо добиваться поддержки поведения во всех браузерах.
Фреймворк (draft js) все-таки даёт много высокоуровневых абстракций над браузерным апи. Поэтому, если хочется сделать хороший редактор, уметь легко добавлять новые блоки и тд, намного удобнее использовать готовый продуманный инструмент. Более того, на базе draftjs можно легко сделать поддержку «плагинов» и буквально собирать редактор, как конструктор, из готовых блоков - draft-js-plugins. Ну и существуют всякие кастомные сборки типа megadraft.
Помимо драфта есть ещё editor js. Там используется концепция последовательных блоков, тоже удобный инструмент.
Так что можно получить крутой редактор, работающий во всех браузерах, буквально установив библиотеку. А дальше уже кастомизировать. Ну а чтоб кастомизировать, нужно понимать, как это работает внутри примерно и куда копать. И статья, на мой взгляд, даёт об этом хорошее представление.
Ну да. метод помечен, как устаревший аж с 2012 г, но пока не deprecated. Выпилили только .copy(), .cat() и paste(). Кстати в новом обновлении хрома вернули и эти фичи ;)
Ну а чтоб кастомизировать...
Четырежды плюсуюсь, но для подавляющего большинства кодеров это не айс, не полезут докапываться.
Кстати, а Вы уверены. что editor js и draft-js не используют execCommand? Так что если выпилят этот метод, то и эти библиотеки благополучно также загнутся.
А то, что draft js
легко добавлять новые блоки и тд, намного удобнее использовать готовый продуманный инструмент
это конечно даёт существенную экономию времени разработки.
Создаем текстовый редактор на React.js