概述
解析有两个阶段:
- 在第一阶段,输入行被替换,文档的块结构 - 段落,块引号,列表项等在这里被构建。文本被分配给这些块但未解析。解析链接引用定义并构建链接映射。
- 在第二阶段,使用阶段一中构建的链接引用的映射,将段落和标题的原始文本内容解析为 Markdown 内联元素(字符串,行内代码,链接,强调等)的序列。
在每个处理的节点,文档被表示为由块(block)组成的一颗树。树的根是一个文档(document)
块。文档
可以有任意数量的其他块作为子节点(children)。反过来,这些子节点可能也还有其他子节点。块的最后一个子节点通常被视为打开的块(open),这意味着后续的输入可以改变其内容。(未打开的块作为关闭的块(close)。)例如,这里有一个文档树结构,其中打开的块用箭头标记:
-> document
-> block_quote
paragraph
"Lorem ipsum dolor\nsit amet."
-> list (type=bullet tight=true bullet_char=-)
list_item
paragraph
"Qui *quodsi iracundia*"
-> list_item
-> paragraph
"aliquando id"