Goldmark 开源项目教程

随笔3周前发布 得来我愿
41 0 0

Goldmark 开源项目教程

goldmark:trophy: A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.项目地址:https://gitcode.com/gh_mirrors/go/goldmark

1. 项目的目录结构及介绍

Goldmark 是一个用 Go 语言编写的 Markdown 解析器,它遵循 CommonMark 规范。项目的目录结构如下:

  1. goldmark/

  2. ├── ast/

  3. │ ├── block.go

  4. │ ├── inline.go

  5. │ └── node.go

  6. ├── extension/

  7. │ ├── definition_list.go

  8. │ ├── footnote.go

  9. │ ├── mathjax.go

  10. │ └── table.go

  11. ├── parser/

  12. │ ├── block.go

  13. │ ├── inline.go

  14. │ └── parser.go

  15. ├── renderer/

  16. │ ├── html.go

  17. │ └── renderer.go

  18. ├── test/

  19. │ ├── commonmark_test.go

  20. │ └── goldmark_test.go

  21. ├── util/

  22. │ ├── html.go

  23. │ └── util.go

  24. ├── README.md

  25. ├── LICENSE

  26. └── goldmark.go

目录介绍

  • ast/:包含抽象语法树(AST)相关的文件,定义了 Markdown 文档的结构。
  • extension/:包含各种扩展,如定义列表、脚注、数学公式等。
  • parser/:包含解析器相关的文件,负责将 Markdown 文本解析成 AST。
  • renderer/:包含渲染器相关的文件,负责将 AST 渲染成 HTML。
  • test/:包含测试文件,用于确保解析器的正确性。
  • util/:包含一些工具函数和常量。
  • README.md:项目说明文档。
  • LICENSE:项目许可证。
  • goldmark.go:项目的主文件,定义了 Goldmark 的主要功能。

2. 项目的启动文件介绍

Goldmark 的启动文件是 goldmark.go,它定义了 Goldmark 的主要功能和接口。以下是 goldmark.go 的主要内容:

  1. package goldmark

  2. import (

  3. "github.com/yuin/goldmark/ast"

  4. "github.com/yuin/goldmark/parser"

  5. "github.com/yuin/goldmark/renderer"

  6. "github.com/yuin/goldmark/util"

  7. )

  8. type Markdown struct {

  9. Parser parser.Parser

  10. Renderer renderer.Renderer

  11. }

  12. func New(options ...Option) *Markdown {

  13. m := &Markdown{

  14. Parser: parser.NewParser(),

  15. Renderer: renderer.NewRenderer(),

  16. }

  17. for _, opt := range options {

  18. opt.SetConfig(m)

  19. }

  20. return m

  21. }

  22. func (m *Markdown) Convert(source []byte, writer io.Writer) error {

  23. doc := m.Parser.Parse(text.NewReader(source))

  24. return m.Renderer.Render(writer, source, doc)

  25. }

主要功能

  • New 函数:创建一个新的 Markdown 实例,并应用传入的配置选项。
  • Convert 方法:将 Markdown 源文本解析成 AST,并渲染成 HTML。

3. 项目的配置文件介绍

Goldmark 没有传统的配置文件,但可以通过代码中的选项(Options)来配置。以下是一些常见的配置选项:

  1. import (

  2. "github.com/yuin/goldmark"

  3. "github.com/yuin/goldmark/extension"

  4. "github.com/yuin/goldmark/renderer/html"

  5. )

  6. md := goldmark.New(

  7. goldmark.WithExtensions(extension.GFM),

  8. goldmark.WithRendererOptions(

  9. html.WithHardWraps(),

  10. html.WithXHTML(),

  11. ),

  12. )

配置选项

  • WithExtensions:添加扩展,如 GitHub Flavored Markdown(GFM)。
  • WithRendererOptions:设置渲染器选项,如启用硬换行和 XHTML 输出。

通过这些选项,可以灵活地配置 Goldmark 的行为,以满足不同的需求。

goldmark:trophy: A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.项目地址:https://gitcode.com/gh_mirrors/go/goldmark

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...