~bigbes/confluence-md-utilities

ref: 4692639972ac74f39389c2d9767aa0bd2072bdf6 confluence-md-utilities/converter/md2xml.go -rw-r--r-- 753 bytes
46926399 — Eugene Blikh Move CLI to cmd/mdcx/, add justfile and CLAUDE.md 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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/confluence-md-utilities/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
}