Facebook (vietato nella Federazione Russa) ha aperto il codice sorgente della libreria Lexical JavaScript, che offre componenti per la creazione di editor di testo e moduli web avanzati per l'editing di testo per siti e applicazioni web. Le qualità distintive della biblioteca includono la facilità di integrazione nei siti web, il design compatto, la modularità e il supporto per strumenti per persone con disabilità, come gli screen reader. Il codice è scritto in JavaScript e distribuito sotto la licenza MIT. Sono state preparate diverse dimostrazioni interattive per familiarizzare con le capacità della biblioteca.
La libreria è progettata per facilitare la connessione e non dipende da framework web esterni, ma allo stesso tempo fornisce collegamenti già pronti per semplificare l'integrazione con il framework React. Per utilizzare Lexical è sufficiente associare un'istanza dell'editor all'elemento in fase di modifica, dopodiché, durante il processo di modifica, è possibile controllare lo stato dell'editor attraverso l'elaborazione di eventi e comandi. La libreria ti consente di tenere traccia degli stati dell'editor in qualsiasi momento e riflettere i cambiamenti nel DOM in base al calcolo delle differenze tra gli stati.
È possibile creare sia moduli per inserire testo semplice senza markup, sia costruire interfacce per la modifica visiva di documenti, che ricordano gli elaboratori di testo e forniscono funzionalità come l'inserimento di tabelle, immagini ed elenchi, la manipolazione dei caratteri e il controllo dell'allineamento del testo. Lo sviluppatore ha la possibilità di sovrascrivere il comportamento dell'editor o di connettere gestori per implementare funzionalità atipiche.
La struttura di base della libreria contiene il set minimo richiesto di componenti, la cui funzionalità viene ampliata collegando i plugin. Ad esempio, tramite plugin è possibile collegare elementi aggiuntivi dell'interfaccia, pannelli, strumenti per l'editing visivo in modalità WYSIWYG, supporto per il formato markdown o componenti per lavorare con determinati tipi di contenuti, come elenchi e tabelle. Sotto forma di plugin sono disponibili anche funzioni come il completamento automatico dell'input, la limitazione della dimensione massima dei dati di input, l'apertura e il salvataggio di file, l'aggiunta di note/commenti, l'input vocale, ecc.
Fonte: opennet.ru