0.51.0 (2026-05-14)
This release removes ~100 dependencies from @blocknote/core
This version we have completely rewritten the markdown ↔ html conversion primarily to remove ~80 dependencies from the package. This was a burden to everyone who does not rely on markdown conversion in their editor. If you run into issues with our new markdown parser & serializer, feel free to post an issue if it is obviously incorrect. We do ask however, if your issue is related to some edge case of the markdown format that you instead handle the markdown parsing in your application and invoke editor.tryParseHTMLToBlocks instead, as we do not intend to handle all markdown documents.
🚀 Features
- Trailing block extension rewrite (#2733)
- markdown: replace unified.js with custom markdown parser/serializer (#2624)
- react: configurable portal targets for floating UI (#2729, #2692)
🩹 Fixes
- Pasting plain text from VSCode (BLO-366) (#2713)
- Parse new lines in
text/plainas line breaks (BLO-1170) (#2712) - Code block PDF export (BLO-987) (#2725)
- Formatting toolbar opening when inserting file block with
trailingBlock: false(BLO-860) (#2704) - numbered list item decorations missed on initial render (#2734)
- flicker-free mobile formatting toolbar via CSS custom properties (#2617, #2616)
- add
bn-thread-orphanedCSS class to distinguish orphaned threads (#2737, #2735) - set width attribute on image and video elements in editor render (#2740, #2726)
- a11y: use figure/figcaption for media block captions (#2717)
- ai: loosen serialization of blocks in columns (#2716, #2718)
- core: trigger codeblock input rule on Enter and place cursor inside (#2686)
- core: preserve list item type when pasting into empty list items (#2722, #2330)
- core: unmount editors in transformPasted tests to prevent unhandled error (e62880b21)
- drag-n-drop: support PDF block drag & drop (BLO-893) (#2714)
- i18: improve french translation for empty toggle list (#2721)
- markdown: emit tight lists when serializing blocks to markdown (#2715)
- markdown: skip placeholder text for empty files (#434, #2719)
- markdown: stable round-trip for tables, captions, and audio (#2720)
❤️ Thank You
- Cyril G @Ovgodd
- Manuel Raynaud @lunika
- Matthew Lipski @matthewlipski
- Movm @Movm
- Nick the Sick @nperez0111