md2xml.go

v0.1.0
Doc Versions Source
1
package converter
2
3
import (
4
	"bytes"
5
6
	"github.com/yuin/goldmark"
7
	"github.com/yuin/goldmark/extension"
8
	"github.com/yuin/goldmark/renderer"
9
	"github.com/yuin/goldmark/util"
10
11
	"go.bigb.es/confluence-md-utilities/confluence"
12
)
13
14
// MarkdownToConfluence converts Markdown source to Confluence storage format XML.
15
func MarkdownToConfluence(source []byte) (string, error) {
16
	md := goldmark.New(
17
		goldmark.WithExtensions(
18
			extension.GFM,
19
			extension.TaskList,
20
		),
21
		goldmark.WithRenderer(
22
			renderer.NewRenderer(
23
				renderer.WithNodeRenderers(
24
					util.Prioritized(confluence.NewRenderer(), 100),
25
				),
26
			),
27
		),
28
	)
29
30
	var buf bytes.Buffer
31
	if err := md.Convert(source, &buf); err != nil {
32
		return "", err
33
	}
34
	return buf.String(), nil
35
}
36

Source Files