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}