🎉 Announcing BlockSuite 0.7.0! This version is bundled in AFFiNE Client 0.7-beta, incorporating 318 new merged pull requests and an addition of 7 contributors. In the past few weeks, we have significantly enhanced data persistence and whiteboard usability. Feature highlights:
- 📑 We now support subdocument in data model, facilitating async loading of multiple pages (#2948 #3157 #3221 #3082 #3176). This introduces the
page.waitForLoaded()
API and comes with novel provider adaptation support (#3182 #3186 #3193 #3073 #3190 #3200 #3201 #3222 #3213). - 🧩 We've added block spec support (#3175), which serves as the fundamental layer for forthcoming standardized third-party block definitions. This includes a new block-std package (#3164 #3179 #3261 #3297) and a work-in-progress widget API implementation (#3128 #3449 #3307).
- 🎨 We've enhanced whiteboard functionalities, including element rotation support (#2931 #3394), new connector (#3184 #3557 #3099 #3285 #3313 #3390 #3403 #3441 #3517), eraser tool (#3126), in-shape text functionality (#3423 #3386 #3521 #3554 #3573 #3552), a block slicer (#3314 #3343), and a redesigned toolbar (#3230 #3335 #3382 #3465 #3309 #3464 #3380 #3388 #3410 #3262 #3258).
- 🏷️ We've launched new page-level tag support (#3203), which can operate as a cross-page data source, complete with filtering capabilities (#3065).
- 📤 We've incorporated support for exporting to PDF and PNG (#3047 #3072 #3205 #3502 #3534 #3450 #3494).
So far, the primary focus of the BlockSuite project has been on feature-richness. However, with the next major release, we plan to make the editing feature more adaptable with a new API surface. Stay tuned!
Detailed Commits
block-std
@himself65 (#3179)
Node
@himself65 (#3199)
lit-analyzer
@Flrande (#3168)
link
column type @zqran (#3187)
Move Right
@zqran (#3255)
Move Left
of the first normal column @zqran (#3354)
blur
from cell of title column @zzj3720 (#3528)
@popperjs/core
with @floating-ui/dom
@zqran (#3021)
@import
to playground @Flrande (#3026)
@zzj3720 (#3279)
frame
-> note
@Flrande (#3144)
embed
-> image
@Saul-Mirone (#3147)
Bound.deserialize
@regischen (#3131)
mode
-> tool
@doodlewind (#3181)
surface-text-editor
-> edgeless-text-editor
@Flrande (#3389)
SurfaceElement
export @Flrande (#3150)
isVRangeEqual
should not accept null values @Flrande (#3560)
New Contributors
- @HydenLiu made their first contribution in #3039
- @doouding made their first contribution in #3146
- @zhengjitf made their first contribution in #3148
- @Yukiniro made their first contribution in #3311
- @AliceLanniste made their first contribution in #3438
- @youhua made their first contribution in #3547
- @joshirakesh made their first contribution in #3564
Full Changelog: v0.6.0...v0.7.0