既然要理解Markdown源码是怎样被处理的,我们需要先仔细思考一下一个Markdown编译器应该有什么构成:
- 词法解析器 帮助我们从源码中分析出Markdown规定的规则
- 语法分析器 帮助我们根据词法分析器分析出来的进行语法分析,也就是根据词法拼接‘句子’
基础流程
在Markdown里面有块级元素和内联元素的区别,块级元素有有序列表、无序列表、引用、标题、段落等,内联元素有强调、斜体等。
块级解析器供词法解析器进行调用,分析出来各种块级的元素,这就是词法所需要做的事情。
内联解析器供语法解析器调用来实现内联的元素的解析。
现在是这样的流程:
内联解析器
OK,让我们敲一下代码吧,ES6的语法。
class Lexer {
}
class Parser {
}
class InlineLexer {
}