Preserve block identity when editing from the block's start

Open
#550 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
typescript
Domain
frontend

Research direction

The issue names no files, tests, or entry points. Reproduce the Enter and Backspace steps in a block with remembered identity, then trace the editor behavior that changes the block ID at the start of content. Done means the original block ID remains stable in both cases, including nested lists, with regression coverage added where the behavior is implemented.

Written by the indexing model from the issue text.

Description

bug:P3

Describe the bug
At Mintter block Identity is really important. Specially because we let users create references to content inside blocks using its ID. I Notice that when I press Enter or Backspace in front of any block with content. I understand block identity might not be relevant to most use cases, but I find this could be a problem when you rely on content being accessible by a particular block ID.

To Reproduce

  1. write some content in a block and remember the block id
  2. move the cursor to the beginning of the block
  3. press Enter or Backspace (backspace if you are not on the first block of the document or of a nested list)
  4. see the blockID changed to the current block content.

Here's a video showing how the ID of the block changes when I press Enter in front of a block

https://github.com/TypeCellOS/BlockNote/assets/725120/cf5ba519-131a-4533-aed4-6471fa17331f

And here's what happens when pressing Backspace in front of a block

https://github.com/TypeCellOS/BlockNote/assets/725120/670d314a-7053-4ae0-a5db-fdfd33258ebd

How to solve this

I did some work to solve this on our side, and if this is relevant to the library I can share the solution with it.

Dominant language
TypeScript
Stars
10.2k
Forks
772
Avg merge
3d 11h
Merged PRs (30d)
17

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from TypeCellOS/BlockNote

All issues in TypeCellOS/BlockNote

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.