
Markdown是目前程序员中最流行的文档编写语言。其语法易读易写,同时也是我们锻炼技术的好目标。现在让我们用JS实现一个Markdown解析器,做成标准的JS库,发布到Github上吧。
Markdown语法
参考 https://commonmark.org/help/
| 语法 | 或者是 | 得到的效果 |
|---|---|---|
| Italic | Italic | Italic |
| Bold | Bold | Bold |
| # Heading 1 | Heading 1 ========= |
Heading 1 |
| ## Heading 2 | Heading 2 ————- |
Heading 2 |
| Link | [Link][1] ⋮ [1]: http://b.org |
Link |
![]() |
![Image][1] ⋮ [1]: http://url/b.jpg |
![]() |
| > Blockquote | Blockquote | |
| List List * List |
- List - List - List |
- List - List - List |
| 1. One 2. Two 3. Three |
1) One 2) Two 3) Three |
1. One 1. Two 1. Three |
| Horizontal Rule —- |
Horizontal Rule * |
Horizontal Rule—- |
|
| Inline code with backticks | | Inline code with backticks |
| <br /># code block<br />print '3 backticks or'<br />print 'indent 4 spaces'<br /> | ····# code block
····print ‘3 backticks or’
····print ‘indent 4 spaces’ | # code block
print ‘3 backticks or’
print ‘indent 4 spaces’ |
前置知识
-
可参考库
https://github.com/markedjs/marked
要求
要求完全实现CommonMark Spec
- 兼容HTML
- 程序至少分两个步骤(Lexer And Parse)
- 将Markdown转换为JSON格式的AST
- 通过AST转换为HTML
- 工程方面
- 请在Github上正式发布你的JS库
- 请在阶段三发布该库的TypeScript版本


