package converter import ( "bytes" "github.com/yuin/goldmark" "github.com/yuin/goldmark/extension" "github.com/yuin/goldmark/renderer" "github.com/yuin/goldmark/util" "sourcecraft.dev/bigbes/markdown-to-confluence-xml/confluence" ) // MarkdownToConfluence converts Markdown source to Confluence storage format XML. func MarkdownToConfluence(source []byte) (string, error) { md := goldmark.New( goldmark.WithExtensions( extension.GFM, extension.TaskList, ), goldmark.WithRenderer( renderer.NewRenderer( renderer.WithNodeRenderers( util.Prioritized(confluence.NewRenderer(), 100), ), ), ), ) var buf bytes.Buffer if err := md.Convert(source, &buf); err != nil { return "", err } return buf.String(), nil }