goldmark用 Go 语言编写的 markdown 解析器
goldmark 是用 Go 语言编写的 markdown 解析器。易于扩展,符合标准(CommonMark),结构合理。
特性:
- 符合标准:goldmark 完全符合最新的 CommonMark 规范
- 可扩展:可以轻松地在 goldmark 中完成添加 @username 提及语法等操作。可以添加 AST 节点、用于块级元素的解析器、用于内联级元素的解析器、用于段落的转换器、用于整个 AST 结构的转换器以及渲染器
- 性能 :goldmark 的性能与 cmark 相当
- 鲁棒性:goldmark 已通过模糊测试工具 go-fuzz 进行了测试
- 内置扩展 :goldmark 附带常见的扩展名,例如表、删除线、任务列表和定义列表
- 仅依赖标准库
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>
评论
Nim-markdownNim 编写的 Markdown 解析器
Nim-markdown 是一个由 Nim 所编写的 Markdown 解析器。特性支持 Commo
Nim-markdownNim 编写的 Markdown 解析器
0
Nim-markdownNim 编写的 Markdown 解析器
Nim-markdown是一个由Nim所编写的Markdown解析器。特性支持Commonmark缩进的代码块Block引用有序/无序列表嵌套列表表内联链接图片链接双重强调删除线内联代码内联HTML转
Nim-markdownNim 编写的 Markdown 解析器
0
marky-markdownnpm 的 markdown 解析器
marky-markdown 是 npm 的官方 markdown 解析器,基于 NodeJS 编写
marky-markdownnpm 的 markdown 解析器
0
commonmark-javaJava 的 Markdown 解析器
commonmark-java是一个Markdown解析器,一个基于 CommonMark 规范解析和渲染Markdown文本的Java库。具有以下特性:小(最小化的依赖)快(比pegdown快10-
commonmark-javaJava 的 Markdown 解析器
0
markdown4jJava 的 Markdown 解析器
markdown4j是一个开源的Java的Markdown处理器,具备可扩展性。基于Txtmark的改进版本。特性:跨平台轻量级,无需依赖第三方库实现了JohnGruber'sincredibleMa
markdown4jJava 的 Markdown 解析器
0
markdown4jJava 的 Markdown 解析器
markdown4j 是一个开源的 Java 的 Markdown 处理器,具备可扩展性。基于 Tx
markdown4jJava 的 Markdown 解析器
0
marky-markdownnpm 的 markdown 解析器
marky-markdown是npm的官方markdown解析器,基于NodeJS编写,旨在用 GitHub-stylemarkdown进行奇偶校验。它由一个最好的 CommonMarkmarkdow
marky-markdownnpm 的 markdown 解析器
0
commonmark-javaJava 的 Markdown 解析器
commonmark-java 是一个 Markdown 解析器,一个基于 CommonMark 规
commonmark-javaJava 的 Markdown 解析器
0