github toeverything/blocksuite v0.10.0
v0.10.0 - Almost Beta!

latest releases: v0.19.5, v0.19.4, v0.19.3...
15 months ago

The v0.10.0 release of BlockSuite includes a total of 246 PRs and welcomes 10 new contributors. Besides the continuous enhancement of the framework and more product features for the prebuilt AFFiNE editors, with an increased number of bug fixes and broader usage in production environments, we believe BlockSuite has been very close to its beta stage. This signifies:

  • For first-party editors based on BlockSuite, their stability is now sufficient for production environment usage, and common functionalities are covered by E2E tests. Notably, about 20% of the BlockSuite codebase are test cases, ensuring a robust and reliable experience. Except for a few edge cases, interactions like selection and shortcuts should mostly align with intuition during typical operations.
  • The architecture of the block-editing framework is now established, with best practices for operation data flow and event stream determined. Some legacy logic will be gradually refactored and removed, such as the _legacy directory in the @blocksuite/blocks package. Documentation about the relevant API surface is being continuously improved. However, understanding the usage for customizing blocks and extending selections may still require code consultation at this point.
  • Subsequent releases may still feature API breaking changes, but data will continue to be forward compatible.

We plan to enter the beta phase of BlockSuite in the next upcoming release. Exciting updates are on the way!

Below is a brief overview of the framework improvements and editor features in 0.10.0:

Framework Refinements

  • Enhanced Documentation (#5263): Added comprehensive API documentation for key packages and updated getting started guides to align with new API designs. The BlockSuite documentation site has also been vastly updated.
  • Page Load Callback Functionality (#5325): The new page.load API distinguishes between creating and loading documents, offering more precise control. Details are provided in the BlockSuite Data Persistence Tutorial.
  • Partial Update Support in Store (#5396): Refactored the store event stream to support incremental updates to nested object structures, removing events that could lead to leakage of underlying Yjs abstractions.
  • Optimized Batch Drag Update Size (#5272): Optimized the batch drag update size to reduce redundant ydoc writes, minimizing the update patch sizes in collaborative edits.
  • Recursive Deletion in deleteBlock (#5224): Modified deleteBlock to allow recursive deletion of child nodes by default, with configurable behavior.
  • Garbage Collection in Blob Manager (#5196): The BlobManager now actively removes unlinked resources, enhancing efficiency in resource management.
  • Configurable Block-Level Config (#5158): Support for dynamic configuration (e.g., maximum file size for attachment block) via service config.

Editor Features

  • Surface Reference Block (#5013): The new affine:surface-ref block enables embedding whiteboard frames or groups into the document mode.
  • Grouping Capability in Edgeless (#5069): Enhanced ability to group edgeless elements, with support for nested groupings.
  • New Style Collapsible Note in Edgeless (#5337): Edgeless now supports note blocks with various shadow, corner, and border styles, including preset effects for visually rich notes.
  • Per-Element Selected Box in Edgeless (#5322): Multi-selection now shows individual selection boxes for each selected element, enhancing clarity in grouped selections.
  • Auto-Connect Indicator and Index Label (#5136): Automatically connects and indexes content visible in document mode, enhancing navigational clarity.
  • New Connector Addition Method (#5161): Introduces a new way to add connectors by dragging with an auto-complete button, along with widgets for easy connector shape selection.
  • Optimized Double Click for Canvas Text Edit in Hollow Shapes (#5043): Enhanced click detection for text-filled shapes, preserving transparency effects for easier selection of elements beneath hollow shapes.
  • Extended Font Support in Canvas Text (#5339): Introduced new preset fonts like Satoshi, Lora, and Bebas Nene, alongside an updated toolbar UI for easier font adjustments.
  • Revamped Text Highlighting (#5434): Enhanced text highlighting now allows setting the text color itself, not just the background color.
  • Expanded Connector Arrow Styles (#5064): Added new connector endpoint styles including Triangle, Circle, and Diamond.
  • Linked Page Creation from Selected Text (#5171): Quickly create and link new pages from selected text using a simple keystroke.
  • Refined Indent Behavior (#5072): Improved indent behavior for maintaining child node hierarchy more intuitively.

Detailed Bugfixes

New Contributors

Full Changelog: v0.9.0...v0.10.0

Don't miss a new blocksuite release

NewReleases is sending notifications on new releases.