From 40b1f53362105a495c6a486f3488e83d79eb582a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Fri, 3 Oct 2025 22:22:40 +0200 Subject: feat(markdown): eval option to setup custom image source func --- markdown/ast_external.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'markdown/ast_external.go') diff --git a/markdown/ast_external.go b/markdown/ast_external.go index ea78450..f37a685 100644 --- a/markdown/ast_external.go +++ b/markdown/ast_external.go @@ -10,12 +10,12 @@ type astLink struct { href block } -func (a *astLink) Eval() (template.HTML, *ParseError) { - content, err := a.content.Eval() +func (a *astLink) Eval(opt *Option) (template.HTML, *ParseError) { + content, err := a.content.Eval(opt) if err != nil { return "", err } - href, err := a.href.Eval() + href, err := a.href.Eval(opt) if err != nil { return "", err } @@ -28,21 +28,22 @@ type astImage struct { source []*astParagraph } -func (a *astImage) Eval() (template.HTML, *ParseError) { - alt, err := a.alt.Eval() +func (a *astImage) Eval(opt *Option) (template.HTML, *ParseError) { + alt, err := a.alt.Eval(opt) if err != nil { return "", err } - src, err := a.src.Eval() + src, err := a.src.Eval(opt) if err != nil { return "", err } + src = template.HTML(opt.ImageSource(string(src))) if a.source == nil { return template.HTML(fmt.Sprintf(`
%s
`, alt, src)), nil } var s template.HTML for _, c := range a.source { - ct, err := c.Eval() + ct, err := c.Eval(opt) if err != nil { return "", err } -- cgit v1.2.3