goldmark用 Go 語言編寫的 markdown 解析器
goldmark 是用 Go 語言編寫的 markdown 解析器。易于擴(kuò)展,符合標(biāo)準(zhǔn)(CommonMark),結(jié)構(gòu)合理。
特性:
- 符合標(biāo)準(zhǔn):goldmark 完全符合最新的 CommonMark 規(guī)范
- 可擴(kuò)展:可以輕松地在 goldmark 中完成添加 @username 提及語法等操作。可以添加 AST 節(jié)點(diǎn)、用于塊級元素的解析器、用于內(nèi)聯(lián)級元素的解析器、用于段落的轉(zhuǎn)換器、用于整個 AST 結(jié)構(gòu)的轉(zhuǎn)換器以及渲染器
- 性能 :goldmark 的性能與 cmark 相當(dāng)
- 魯棒性:goldmark 已通過模糊測試工具 go-fuzz 進(jìn)行了測試
- 內(nèi)置擴(kuò)展 :goldmark 附帶常見的擴(kuò)展名,例如表、刪除線、任務(wù)列表和定義列表
- 僅依賴標(biāo)準(zhǔn)庫
goldmark 對 Markdown 文本的處理流程如下:
<Markdown in []byte, parser.Context>
|
V
+-------- parser.Parser ---------------------------
| 1. Parse block elements into AST
| 1. If a parsed block is a paragraph, apply
| ast.ParagraphTransformer
| 2. Traverse AST and parse blocks.
| 1. Process delimiters(emphasis) at the end of
| block parsing
| 3. Apply parser.ASTTransformers to AST
|
V
<ast.Node>
|
V
+------- renderer.Renderer ------------------------
| 1. Traverse AST and apply renderer.NodeRenderer
| corespond to the node type
|
V
<Output>
評論
圖片
表情
