v0.11.0 - The Editor Framework! #5961
doodlewind
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The BlockSuite v0.11.0 release is now available! With 317 PRs landed and 6 new contributors, this version marks a milestone in our journey: evolving from a proprietary editor to a general-purpose editing framework.
BlockSuite originated as an editor designed to meet the needs of the AFFiNE knowledge base, which is why, for a long time, it provided a default
EditorContainer
that included both document editing and whiteboard functionalities. Early updates also focused heavily on specific features for AFFiNE products.However, during the development of BlockSuite, we've built a range of front-end infrastructures from the ground up, spanning from rich text editing to whiteboard rendering. This version introduces extensive engineering refactoring and modular layering, resulting in the birth of a new, universal editing framework.
Traditionally, developing a stable rich text editor could take years of challenging work. But the evolution of BlockSuite has far outpaced this. We believe our work stems from embracing a new architectural pattern called document-centric, which simplifies the complex architecture of traditional editors by natively building the data layer in the editor with CRDT, thereby providing a more efficient development experience.
Key changes in BlockSuite 0.11.0 for developers include:
@blocksuite/presets
package, which splits the independently usableDocEditor
andEdgelessEditor
, among others.Editor
,Block
,Fragment
,Widget
, and definitive guides on how they combine. The currentDocEditor
andEdgelessEditor
are based on this headless framework layer.The establishment of the framework layer is just the first step in BlockSuite's longer-term vision. The current stable framework layer modules and APIs are still akin to the more low-level, headless part of tools like ProseMirror. Plans are already in place for more out-of-the-box preset support. Stay tuned!
Notable Product Features in 0.11
Notable Framework Enhancements in 0.11
LayerManager
(feat(edgeless): allow canvas content interleaving with DOM based onLayerManager
#5347): Enabled canvas content interleaving with DOM based onLayerManager
, enhancing the editor's visual representation and flexibility.InlineSpec
feature, enhancing flexibility in text editing, especially for advanced content editing like inline LaTeX.Y.Map
manipulations.ContentParser
and introduced a new export manager based on snapshot and adapter mechanisms, greatly enhancing support for third-party formats and scalability.SessionStorage
, enhancing usability in frequent switching scenarios.SurfaceSelection
inEdgelessEditor
more aligned withDocEditor
.VirgoEditor
->InlineEditor
#5671): RenamedVirgoEditor
toInlineEditor
to more accurately reflect its functionality.stash
andpop
functionalities for reactive proxies, making state management of local non-collaborative fields easier.EditorContainer
into sub editors #5612): Divided theEditorContainer
into multiple sub-editors, improving manageability and modularization.@blocksuite/editor
->@blocksuite/presets
#5570): Renamed@blocksuite/editor
to@blocksuite/presets
to more accurately reflect its function and purpose.createEmbedBlock
helper API in@blocksuite/blocks
, simplifying the creation and management of embedded content.Detailed bugfixes
New Contributors
Full Changelog: v0.10.0...v0.11.0
This discussion was created from the release v0.11.0 - The Editor Framework!.
Beta Was this translation helpful? Give feedback.
All reactions