Splits markdown into independent blocks for incremental rendering.
Earlier blocks are stable — they won't change as new tokens arrive. Only the last block needs re-rendering on each update.
Summary
Functions
Splits markdown into a list of block strings.