markdown_nocgo.go

 1//go:build !cgo
 2
 3package clib
 4
 5import (
 6	"bytes"
 7	"log"
 8
 9	"github.com/yuin/goldmark"
10	"github.com/yuin/goldmark/renderer/html"
11)
12
13// MarkdownToHTML converts Markdown bytes to HTML using goldmark (pure Go fallback).
14func MarkdownToHTML(md []byte) []byte {
15	var buf bytes.Buffer
16	p := goldmark.New(
17		goldmark.WithRendererOptions(
18			html.WithUnsafe(),
19		),
20	)
21	if err := p.Convert(md, &buf); err != nil {
22		log.Printf("markdown: goldmark conversion failed, falling back to escaped plain-text HTML: %v", err)
23		return markdownPlainTextHTML(md)
24	}
25	return buf.Bytes()
26}