From 6c921c9c22b055fb6b40cf48bb34ab343aa04545 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 29 Nov 2022 11:01:51 -0800 Subject: [PATCH] bytes --- lib/imgbundler/imgbundler.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/imgbundler/imgbundler.go b/lib/imgbundler/imgbundler.go index d45e336cf..c530978e4 100644 --- a/lib/imgbundler/imgbundler.go +++ b/lib/imgbundler/imgbundler.go @@ -32,17 +32,15 @@ func InlineRemote(ms *xmain.State, in []byte) ([]byte, error) { return inline(ms, in, true) } -func inline(ms *xmain.State, in []byte, isRemote bool) ([]byte, error) { - svg := string(in) - - imgs := imageRe.FindAllStringSubmatch(svg, -1) +func inline(ms *xmain.State, svg []byte, isRemote bool) ([]byte, error) { + imgs := imageRe.FindAllSubmatch(svg, -1) var filtered [][]string for _, img := range imgs { - u, err := url.Parse(img[1]) + u, err := url.Parse(string(img[1])) isRemoteImg := err == nil && strings.HasPrefix(u.Scheme, "http") if isRemoteImg == isRemote { - filtered = append(filtered, img) + filtered = append(filtered, []string{string(img[0]), string(img[0])}) } } @@ -69,6 +67,7 @@ func inline(ms *xmain.State, in []byte, isRemote bool) ([]byte, error) { }(img[0], img[1]) } + out := string(svg) go func() { for { select { @@ -79,7 +78,7 @@ func inline(ms *xmain.State, in []byte, isRemote bool) ([]byte, error) { if resp.err != nil { ms.Log.Error.Printf("image failed to fetch: %v", resp.err) } else { - svg = strings.Replace(svg, resp.srctxt, fmt.Sprintf(`