// The editor's shape for a note body: a list of blocks rather than one string. // // The note is still one markdown body underneath (M304) — this is a rendering and // input shape, and nothing below the editor can tell it exists. `joinBlocks` puts the // string back together on every edit, and for a body already in canonical form it // returns exactly what `splitBlocks` was handed. // // Why blocks at all: a checklist item has to be a real ``, and // a widget cannot live inside a `