Meta 開源可擴(kuò)展的文本編輯器框架 Lexical
Meta(前 Facebook)近日在 GitHub 上開源了一個(gè)名為 Lexical 的項(xiàng)目,該項(xiàng)目是一個(gè)基于 JavaScript 的 Web 文本編輯器框架,具有可擴(kuò)展、可訪問(wèn)和高性能的特性。Meta 在介紹中表示,結(jié)合 Lexical 高度可擴(kuò)展的架構(gòu),開發(fā)者可以構(gòu)建在大小和功能上均可以擴(kuò)展的獨(dú)特文本編輯器。
Lexical 的核心是一個(gè)文本編輯引擎 —— 一個(gè)為網(wǎng)絡(luò)建立功能豐富的編輯器的平臺(tái)。為了避免用戶在每一個(gè)實(shí)現(xiàn)中重復(fù)編寫相同的富文本功能,Lexical 還公開了一組單獨(dú)的、模塊化的包,諸如用戶界面組件、工具欄、富文本功能和標(biāo)記等功能都可以通過(guò)這些包來(lái)實(shí)現(xiàn)和擴(kuò)展。
Lexical 的底層引擎主要由三個(gè)部分組成:
- 編輯器實(shí)例,每個(gè)實(shí)例都附加到一個(gè)可編輯的內(nèi)容元素上。
- 一組編輯器狀態(tài),代表編輯器在任何特定時(shí)間的當(dāng)前和待定狀態(tài)。
- 一個(gè) DOM 調(diào)節(jié)器,它接收一組編輯器狀態(tài),對(duì)變化進(jìn)行差異化處理,并根據(jù)其狀態(tài)更新 DOM。
在設(shè)計(jì)上,Lexical 的核心是盡可能的簡(jiǎn)化。以 UI 組件、工具欄、富文本和 Markdown 這些功能為例,它們?cè)谶壿嬌峡梢酝ㄟ^(guò)一個(gè)插件接口包含進(jìn)來(lái),并在需要的時(shí)候使用。這確保了極大的可擴(kuò)展性,并將代碼大小保持在最低水平。
瀏覽器兼容性:
- Firefox 52+
- Chrome 49+
- Edge 79+(Chromium)
- Safari 11+
- iOS 11+ (Safari)
- iPadOS 13+ (Safari)
- Android Chrome 72+
注意:Lexical 不支持 Internet Explorer 或舊版本的 Edge 瀏覽器。Lexical 目前正處于早期開發(fā)階段,API 和包可能會(huì)發(fā)生變化。
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:Meta 開源可擴(kuò)展的文本編輯器框架 Lexical
本文地址:https://www.oschina.net/news/191308/meta-open-source-lexical