package render import ( "bytes" "github.com/yuin/goldmark" highlighting "github.com/yuin/goldmark-highlighting/v2" "github.com/yuin/goldmark/extension" "github.com/yuin/goldmark/parser" "github.com/yuin/goldmark/renderer/html" ) var md goldmark.Markdown func init() { md = goldmark.New( goldmark.WithExtensions( extension.GFM, highlighting.NewHighlighting( highlighting.WithStyle("monokai"), ), ), goldmark.WithParserOptions( parser.WithAutoHeadingID(), ), goldmark.WithRendererOptions( html.WithUnsafe(), ), ) } func Markdown(src []byte) ([]byte, error) { var buf bytes.Buffer if err := md.Convert(src, &buf); err != nil { return nil, err } return buf.Bytes(), nil }