nip23: the renderer is not goroutine-safe so it can't be reused.

This commit is contained in:
fiatjaf
2025-08-04 12:01:02 -03:00
parent 83c34daa8b
commit 50c9ea3867

View File

@@ -15,7 +15,8 @@ import (
var nostrEveryMatcher = regexp.MustCompile(`nostr:((npub|note|nevent|nprofile|naddr)1[a-z0-9]+)\b`) var nostrEveryMatcher = regexp.MustCompile(`nostr:((npub|note|nevent|nprofile|naddr)1[a-z0-9]+)\b`)
var renderer = html.NewRenderer(html.RendererOptions{ func MarkdownToHTML(md string) string {
renderer := html.NewRenderer(html.RendererOptions{
Flags: html.HrefTargetBlank | html.SkipHTML, Flags: html.HrefTargetBlank | html.SkipHTML,
RenderNodeHook: func(w io.Writer, node ast.Node, entering bool) (ast.WalkStatus, bool) { RenderNodeHook: func(w io.Writer, node ast.Node, entering bool) (ast.WalkStatus, bool) {
switch v := node.(type) { switch v := node.(type) {
@@ -29,9 +30,8 @@ var renderer = html.NewRenderer(html.RendererOptions{
return ast.GoToNext, false return ast.GoToNext, false
}, },
}) })
func MarkdownToHTML(md string) string {
md = strings.ReplaceAll(md, "\u00A0", " ") md = strings.ReplaceAll(md, "\u00A0", " ")
// create markdown parser with extensions // create markdown parser with extensions