Djot.StreamA parse fed its input in parts. Blocks are returned as the input closes them, and finish gives the source, and with it the document.
Doc.blocks in one way: a heading is not wrapped in a Block.t.Section (see Sections).With frontmatter, see Frontmatter, a first line of --- is held, and the lines after it, until a closing --- or the end of the input says whether they are frontmatter. Frontmatter gives no block; lines that are not frontmatter give theirs then.
Feed bytes: any part of the input, holding several lines or part of one.
The source of all the input fed, equal to Source.of_string on its concatenation. Every block returned by a feed, followed by peek, is the parse its document was built from. With locs, Doc.textloc of that document locates the returned blocks.
module Sections : sig ... endThe sections Doc.blocks nests the blocks in, as events over the returned blocks: a heading leaves every open section of its level or deeper and enters its own.