v0.6.0
🍬 We are excited to announce the release of BlockSuite 0.6.0! This version is shipped in AFFiNE Client 0.6.0, including 351 new pull requests merged and 18 more new contributors. In this version, we mainly focused on improving the usability of doc editing and whiteboard editing. Here are the updates:
- Architectural Updates
- Add event dispatcher for standardized DOM event handling @Saul-Mirone (#2680 #2691 #2722 #2725 #2754)
- Support schema validator for blocks @Saul-Mirone (#2291 #2317)
- Switch to single root block @Saul-Mirone (#2554 #2607 #2622 #2761)
- Add new
@blocksuite/lit
package for common UI components @Saul-Mirone (#2509 #2595) - Support co-existing of multiple editor instances @zzj3720 @lawvs (#2406 #2456)
- Use yjs-based data flow in phasor @Flrande (#2486)
- Editor Functionalities
- Database block @zqran
- New row-level selection and cell-level selection (#2561 #2612 #2656 #2665 #2705 #2769 #2902)
- New column type
checkbox
,progress
support (#2376 #2383 #2533 #2709) - Auto scroll on dragging support (#2531)
- New UI style improvements (#2330 #2356 #2476 #2487 #2526 #2543 #2562 #2587 #2598 #2613 #2633 #2733 #2894 #2896 #2919)
- Better
Enter
/Backspace
/Esc
and other keyboard operation support (#2455 #2458 #2701 #2736 #2768 #2975 #2962) - Hide clear icon when no search content (#2543)
- Click outside support (#2395)
- Preserve at least 1 blank row and empty state with 0 row (#2488 #2734)
- Support scaling in edgeless mode (#2758)
- Optimize interop with drag handle and format bar (#2773 #2828 #2936)
- Optimize the behavior of changing column types (#2900)
- Many other usability bugfixes (#2414 #2466 #2511 #2329 #2324 #2323 #2321 #2322 #2319 #2338 #2340 #2346 #2354 #2363 #2362 #2367 #2429 #2481 #2541 #2524 #2570 #2597 #2634 #2636 #2640 #2739 #2740 #2770 #2771 #2859 #2839 #2914 #2925 #2959 #2927 #2369)
- Bookmark block flavour that caches preview content of URLs @QiShaoXuan (#2693 #2906 #2940 #2827 #2818 #2871 #2912 #2951 #2980)
- Import and export
- Support Notion import @zuoxiaodong0815 (#2621 #2767 #2778 #2838 #2861 #2903 #2898 #2920 #2932 #2956 #2958)
- Add basic support for pdf and png export @fourdim (#2724 #2813)
- Fix code block export markdown and html @lzlme (#2637)
- Fix redundant list item line breaks on pasting rich content @zuoxiaodong0815 (#2494)
- Fix item in the middle of a unordered list disappears when backspace @zuoxiaodong0815 (#2506)
- Fix wrong format when paste a specify text @zuoxiaodong0815 (#2530)
- Fix part of what is copied in the list block is lost @zuoxiaodong0815 (#2538)
- Edgeless whiteboard improvements
- Optimize rendering perfmance by using page-level layer to replace block-level transform @fundon (#2700)
- Support canvas text rendering @Flrande (#2546 #2977 #2992 #2996 #2755 #2904 #2985 #2719 #2790 #2817 #2753 #2777 #2756 #2780 #2766 #2777 #2819 #2907)
- Support hand-drawn-like shape style @Flrande (#2575 #2584 #2696 #2808 #2721 #2590 #2591 #2565)
- Support switch to pan mode when holding right-key @fundon (#2512)
- Support delete shortcut to delete content @fundon (#2513)
- Support image uploads @fundon (#2610)
- Support support bring forward and send backward elements @fundon (#2527)
- Support smooth zoom and fit @regischen (#2765)
- Support dragging with
option
to duplicate element @regischen (#2843) - Support edge dragging on frame @fundon (#2895)
- Support select all via hotkey @blurname (#2789)
- Support
shift
+ click to multi-select @regischen (#2860) - Support shortcuts for zooming @fundon (#2911)
- Support proportional scaling with shift key @fundon (#2593)
- New connector line style @alt1o (#2310)
- Switch to
PointerEvent
with basic mobile compatibility @alt1o (#2269) - Split original block after drag out a block in edgeless mode @QiShaoXuan (#2477)
- Support max zoom @fundon @doodlewind (#2482 #2747)
- Auto add frame on click when no frame exists @regischen (#2905)
- Fix z-index for toolbar @karti16 (#2404)
- Fix continuous undo redo lost frame @regischen (#2965)
- Other UI improvements and usability bugfixes (#2731 #2675 #2676 #2678 #2717 #2699 #2833 #2857 #2875 #2917 #2571 #2714 #2596 #2626 #2420)
- Misc (common functionalities)
- Support automatic identify and convert link @QiShaoXuan (#2624)
- Add page command to the slash menu @lawvs (#2646)
- Code block supports fuzzy search @lawvs (#2387 #2516)
- Support input under block-level selection @QiShaoXuan (#2558)
- Click to add a paragraph block at the end of the page @rottenpen (#2410)
- Fix double click range error on blank area @donaldxdonald (#2585)
- Fix slash menu if insert "/" before select block @QiShaoXuan (#2999)
- Fix inline code or strikethrough error when hard enter @fourdim (#2642)
- Fix scrollbar not visible for code blocks @hritikchaudhary (#2659)
- Fix linked page popover CJK support @lawvs (#2413)
- Fix multi-line indentation @zzj3720 (#2397)
- Fix linked page keyboard shortcut not working on German keyboards @AlessioGr (#2371)
- Fix incorrect placeholder position for empty list parent @smallnine9 (#2845)
- Fix cursor position when using cmd+z hotkey @smallnine9 (#2881)
- Support shift-click @fundon (#2280)
- Fix code block scroll behavior when enter or backspace @lzlme (#2289)
- Store user can't define own root flavor @zzj3720 (#2292)
- Requires double enter to input a link @Lmmmmmm-bb (#2337)
- Press arrow-right works incorrect with multi-line selection @zzj3720 (#2352)
- Keep paragraph block's type when pasting excerpt text type (quote block) @PerfectPan (#2350)
- Init _cssVariables @donglixiaoche (#2420)
- Enable clipboard test cases in multiple editor @zzj3720 (#2427)
- Cleanup active editor when disconnected @himself65 (#2444)
- Support dragging block to blank @lawvs (#2469)
- Select texts when clicking on blank area @fundon (#2474)
- Ignore input event in code language filter @lawvs (#2501)
- Remove unreliable delimiter @lawvs (#2539)
- Fix wrong cursor position when pressing up/down in zoomed viewport @QiShaoXuan (#2532)
- Hide unregister flavour @lawvs (#2545)
- Fix wrong position in page mode after drag out a block in edgeless mode @QiShaoXuan (#2560)
- Slash menu insert image @lawvs (#2583)
- Press enter on title should add new line @Saul-Mirone (#2605)
- Hide divider in balloon toolbar @lawvs (#2604)
- Linked page trigger should not break bracket completion @lawvs (#2738)
- Fix deleting parent lost nested children @donteatfriedrice (#2969)
- Fix cursor pos when select multiple blocks and input @lawvs (#2983)
- Fix toolbar do not trigger in edgeless mode in some case @QiShaoXuan (#2995)
- Fix pasting code is not as expected @donteatfriedrice (#2993)
- Fix the block-hub toggle @imyuanx (#2655)
- Paste issue causing empty single-line block to not focus @boomyao (#2343)
- Fix input at left side of the bi-directional link will create redundant link @Flrande (#2348)
- Move cursor at the last line of the last block to the end @SevenOutman (#2418)
- Fix undo/redo in virgo-input @Flrande (#2568)
- Fix in title line, press key arrowdown will create a new line @donteatfriedrice (#2812)
- Do not convert markdown in quote block @donteatfriedrice (#2884)
- Database multi-select tab close icon invisible @donteatfriedrice (#2888)
- Fix number mode in virgo-input @Flrande (#2897)
- Shift-click in block level selects redundant blocks @donteatfriedrice (#2989)
- Optimize position of indicator in database @fundon (#2206)
- Fix position when hovering over border of database @fundon (#2674)
- Fix position when database has scrollLeft > 0 @fundon (#2683)
- Should not use native Text @Flrande (#2703)
- Sync debug menu color transition with content area on switching dark mode @Innei (#2825)
- Support responsive image block @fundon (#2224)
- Switch to PointerEvent @fundon (#2341)
- Don't show toolbar on selection @fundon (#2365)
- Schema validator of
moveBlocks
@zqran (#2366) - Support moving blocks in multiple frames @fundon (#2723)
- Fix input in the beginning of line may fail when inputting with IME @Flrande (#2287)
- Fix lit may be crashed by IME @Flrande (#2796)
- Fix arrow down not work well in zero-width character @Flrande (#2866)
- Move
calcDropTarget
method out of drag-handle @fundon (#2392) - UI stying optimization @JimmFly @zqran @Flrande (#2446 #2462 #2496 #2529 #2873 #2876 #2926 #2718 #2588 #2508 #2720)
- Database block @zqran
- Housekeeping
- Fix cyclic dependence in schema @himself65 (#2638)
- Remove duplicate shadowless element in block @Saul-Mirone (#2542)
- Unify editor theme from
@toeverything/theme
package @himself65 (#2412) - New element operation APIs @alt1o (#2347)
- Use typescript@5 const type param for
matchFlavours
@Saul-Mirone (#1786) - Remove redundant
transact
@Flrande (#2885) - Extract
AbstractEditor
for better typing @lawvs (#2448) - Add new
pageModeSwitched
slot @lawvs (#2452) - Refactor on database block code structure @zqran (#2372 #2394)
- Add
exportHtml
andexportMarkdown
@doodlewind (#2493) - Rename
transformPropertyValue
tocomputedValue
@Flrande (#2708) - Support JSON-based
importPageSnapshot
@doodlewind @Flrande @zzj3720 (#2359 #2972) - Add double click event dispatch for embed blocks @himself65 (#2328)
- Restore css debug menu @thorseraq (#2485)
- Add custom formatter for BaseBlockModel @lawvs (#2398)
- Support doc search @sxzz (#2373)
- Add custom elements slot in menu @himself65 (#2664)
- Remove string index on
PageMeta
@himself65 (#2382) - Remove redundant
as const
used formatchFlavours
@blurname (#2695) - Fix playwright VSCode Extension not work @zzj3720 (#2510)
- Fix typing @himself65 (#2824 #2840 #2826)
- Fix
SHORT_KEY
reference @boomyao (#2286) - CI updates @himself65 @doodlewind @Brooooooklyn @Flrande (#2333 #2353 #2686 #2979)
🙌 New Contributors
- @boomyao made their first contribution in #2288
- @Lmmmmmm-bb made their first contribution in #2337
- @sxzz made their first contribution in #2373
- @karti16 made their first contribution in #2404
- @donglixiaoche made their first contribution in #2420
- @SevenOutman made their first contribution in #2421
- @Alkaidcc made their first contribution in #2553
- @rottenpen made their first contribution in #2410
- @imyuanx made their first contribution in #2657
- @fourdim made their first contribution in #2645
- @hritikchaudhary made their first contribution in #2659
- @Brooooooklyn made their first contribution in #2686
- @regischen made their first contribution in #2765
- @pegak made their first contribution in #2811
- @smallnine9 made their first contribution in #2809
- @donteatfriedrice made their first contribution in #2803
- @tillkwl made their first contribution in #2974
- @ahonn made their first contribution in #2997
If you have any questions, feel free to discuss them in the GitHub discussion.
Full Changelog: https://github.com/toeverything/blocksuite/compare/@blocksuite/[email protected]