package main // #include import "C" import ( "bytes" "fmt" "unsafe" chromahtml "github.com/alecthomas/chroma/v2/formatters/html" "github.com/yuin/goldmark" highlighting "github.com/yuin/goldmark-highlighting/v2" "github.com/yuin/goldmark/util" ) var md = goldmark.New( goldmark.WithExtensions( highlighting.NewHighlighting( highlighting.WithStyle("github-dark"), highlighting.WithWrapperRenderer(func(w util.BufWriter, context highlighting.CodeBlockContext, entering bool) { lang, _ := context.Language() if entering { if lang == nil { w.WriteString(`
`)
						return
					}

					w.WriteString(fmt.Sprintf(`

%s

`, lang))
				} else {
					w.WriteString(`
`) } }), highlighting.WithFormatOptions( chromahtml.PreventSurroundingPre(true), ), ), ), ) //export MarkdownToHTML func MarkdownToHTML(source *C.char) *C.char { src := C.GoString(source) var buf bytes.Buffer if err := md.Convert([]byte(src), &buf); err != nil { return C.CString("") } return C.CString(buf.String()) } //export FreeString func FreeString(s *C.char) { C.free(unsafe.Pointer(s)) } func main() {} // required, unused