From a65b9cb6b2c7dc7b48b8076d5e463776f1de0cf1 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sun, 14 Dec 2025 18:05:35 +0100 Subject: feat(markdown): custom replacer --- markdown/eval.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'markdown/eval.go') diff --git a/markdown/eval.go b/markdown/eval.go index 376e577..ae4bafc 100644 --- a/markdown/eval.go +++ b/markdown/eval.go @@ -1,18 +1,16 @@ package markdown -import "html/template" +import ( + "html/template" +) type Option struct { ImageSource func(source string) string RenderLink func(content, href string) template.HTML + Replaces map[rune]string } func Parse(s string, opt *Option) (template.HTML, *ParseError) { - lxs := lex(s) - tree, err := ast(lxs) - if err != nil { - return "", err - } if opt == nil { opt = new(Option) } @@ -22,6 +20,14 @@ func Parse(s string, opt *Option) (template.HTML, *ParseError) { if opt.RenderLink == nil { opt.RenderLink = RenderLink } + if opt.Replaces == nil { + opt.Replaces = make(map[rune]string, 0) + } + lxs := lex(s, opt) + tree, err := ast(lxs) + if err != nil { + return "", err + } return tree.Eval(opt) } -- cgit v1.2.3