package backend

import (
	"bytes"
	"fmt"

	"github.com/microcosm-cc/bluemonday"
	"github.com/yuin/goldmark"
)

func ConvertToHTML(md string) (string, error) {
	var buf bytes.Buffer

	if err := goldmark.Convert([]byte(md), &buf); err != nil {
		return "", fmt.Errorf("error converting markdown to html: %v", err)
	}

	p := bluemonday.UGCPolicy()
	html := p.Sanitize(buf.String())

	return html, nil
}

func ConvertToPlain(md string) (string, error) {
	var buf bytes.Buffer

	if err := goldmark.Convert([]byte(md), &buf); err != nil {
		return "", fmt.Errorf("error converting markdown to html: %v", err)
	}

	p := bluemonday.StrictPolicy()
	plain := p.Sanitize(buf.String())

	return plain, nil
}