Facebook адкрыў код Lexical, бібліятэкі для стварэння рэдактараў тэксту

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

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

Магчыма стварэнне як формаў для ўводу простага тэксту без разметкі, так і пабудова інтэрфейсаў візуальнага рэдагавання дакументаў, якія нагадваюць тэкставыя працэсары і якія прадстаўляюць такія магчымасці, як устаўка табліц, малюнкаў і спісаў, маніпуляцыі са шрыфтамі і кіраванне выраўноўваннем тэксту. Распрацоўнік мае магчымасць пераазначэння паводзін рэдактара ці падлучэнні апрацоўшчыкаў для рэалізацыі нетыповай функцыянальнасці.

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

Крыніца: opennet.ru

Дадаць каментар