diff options
| author | William Hergès <william@herges.fr> | 2025-10-03 22:22:40 +0200 |
|---|---|---|
| committer | William Hergès <william@herges.fr> | 2025-10-03 22:22:40 +0200 |
| commit | 40b1f53362105a495c6a486f3488e83d79eb582a (patch) | |
| tree | b84609a49ad55881d0e54f72a474d3bbb1db31ae /markdown/ast_external.go | |
| parent | ce6a2da035dc045510157a0eeefaebf56f0e8958 (diff) | |
feat(markdown): eval option to setup custom image source func
Diffstat (limited to 'markdown/ast_external.go')
| -rw-r--r-- | markdown/ast_external.go | 15 |
1 files changed, 8 insertions, 7 deletions
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(`<figure><img alt="%s" src="%s"></figure>`, 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 } |
