04.07.2022

Facebook открыл код Lexical, библиотеки для создания редакторов текста

Компания Facebook (запрещена в РФ) открыла исходные тексты JavaScript-библиотеки Lexical, предлагающей компоненты для создания текстовых редакторов и продвинутых web-форм редактирования текста для сайтов и web-приложений. Из отличительных качеств библиотеки выделяется простота интеграции на сайты, компактное исполнение, модульность и поддержка средств для людей с ограниченными возможностями, таких как экранные ридеры. Код написан на языке JavaScript и распространяется под лицензией MIT. Для ознакомления с возможностями библиотеки подготовлено несколько интерактивных демонстраций.

Библиотека рассчитана на простоту подключения и не зависит от внешних web-фрейворков, но при этом предоставляет готовые привязки для упрощения интеграции с фреймворком React. Для использования Lexical достаточно привязать экземпляр редактора к редактируемому элементу, после чего в процессе редактирования можно контролировать состояние редактора через обработку событий и команд. Библиотека позволяет отслеживать состояния редактора в любой момент времени и отражать в DOM изменения на основании вычисления различий между состояниями.

Возможно создание как форм для ввода простого текста без разметки, так и построение интерфейсов визуального редактирования документов, напоминающих текстовые процессоры и предоставляющих такие возможности, как вставка таблиц, изображений и списков, манипуляции со шрифтами и управление выравниванием текста. Разработчик имеет возможность переопределения поведения редактора или подключения обработчиков для реализации нетипичной функциональности.

Базовый каркас библиотеки содержит минимально необходимый набор компонентов, функциональность которого расширяется через подключение плагинов. Например, через плагины можно подключить дополнительные элементы интерфейса, панели, средства для визуального редактирования в режиме WYSIWYG, поддержку формата markdown или компоненты для работы с отдельными видами контента, такими как списки и таблицы. В форме плагинов также доступны такие функции как автодополнение ввода, ограничение на максимальный размер вводимых данных, открытие и сохранение файлов, прикрепление примечаний/комментариев, голосовой ввод и т.п.

Источник.