# 概述

解析有两个阶段:

  1. 在第一阶段,输入行被替换,文档的块结构 - 段落,块引号,列表项等在这里被构建。文本被分配给这些块但未解析。解析链接引用定义并构建链接映射。
  2. 在第二阶段,使用阶段一中构建的链接引用的映射,将段落和标题的原始文本内容解析为 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"