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版本