Meta(前 Facebook)近日在 GitHub 上了一個名為 Lexical 的專案,該專案是一個基於 JavaScript 的 Web 文字編輯器框架,具有可延伸、可存取和高效能的特性。Meta 在介紹中表示,結合 Lexical 高度可延伸的架構,開發者可以構建在大小和功能上均可以擴充套件的獨特文字編輯器。
Lexical 的核心是一個文字編輯引擎 —— 一個為網路建立功能豐富的編輯器的平臺。為了避免使用者在每一個實現中重複編寫相同的富文字功能,Lexical 還公開了一組單獨的、模組化的包,諸如使用者介面元件、工具列、富文字功能和標記等功能都可以通過這些包來實現和擴充套件。
Lexical 的底層引擎主要由三個部分組成:
- 編輯器範例,每個範例都附加到一個可編輯的內容元素上。
- 一組編輯器狀態,代表編輯器在任何特定時間的當前和待定狀態。
- 一個 DOM 調節器,它接收一組編輯器狀態,對變化進行差異化處理,並根據其狀態更新 DOM。
在設計上,Lexical 的核心是儘可能的簡化。以 UI 元件、工具列、富文字和 Markdown 這些功能為例,它們在邏輯上可以通過一個外掛介面包含進來,並在需要的時候使用。這確保了極大的可延伸性,並將程式碼大小保持在最低水平。
瀏覽器相容性:
- Firefox 52+
- Chrome 49+
- Edge 79+(Chromium)
- Safari 11+
- iOS 11+ (Safari)
- iPadOS 13+ (Safari)
- Android Chrome 72+
注意:Lexical 不支援 Internet Explorer 或舊版本的 Edge 瀏覽器。Lexical 目前正處於早期開發階段,API 和包可能會發生變化。