package render import ( "bytes" "github.com/yuin/goldmark" "github.com/yuin/goldmark/extension" "github.com/yuin/goldmark/renderer/html" ) var md goldmark.Markdown func init() { md = goldmark.New( goldmark.WithExtensions( extension.GFM, extension.Typographer, ), goldmark.WithRendererOptions( html.WithHardWraps(), html.WithUnsafe(), // Allow raw HTML in markdown ), ) } func Markdown(source []byte) (string, error) { var buf bytes.Buffer if err := md.Convert(source, &buf); err != nil { return "", err } return buf.String(), nil }