From bd8a389f953c79ec3c09962b15b607a0e6e4e8a4 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sat, 26 Nov 2022 18:14:41 -0800 Subject: [PATCH] 2022-11-26 06:14:41PM --- cmd/d2/main.go | 6 ++- lib/imgbundler/imgbundler.go | 40 +++++++++++++++++-- lib/imgbundler/imgbundler_test.go | 66 ++++++++++++++++++++++++++++++- lib/imgbundler/test_svg.svg | 7 ++++ 4 files changed, 112 insertions(+), 7 deletions(-) create mode 100644 lib/imgbundler/test_svg.svg diff --git a/cmd/d2/main.go b/cmd/d2/main.go index 71b49c9cb..04e37aa3e 100644 --- a/cmd/d2/main.go +++ b/cmd/d2/main.go @@ -205,10 +205,14 @@ func compile(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, theme if err != nil { return nil, err } + svg, err = imgbundler.InlineLocal(ms, svg) + if err != nil { + return nil, err + } out := svg if filepath.Ext(outputPath) == ".png" { - svg, err = imgbundler.Inline(ms, svg) + svg, err = imgbundler.InlineRemote(ms, svg) if err != nil { return nil, err } diff --git a/lib/imgbundler/imgbundler.go b/lib/imgbundler/imgbundler.go index 58dddd435..0cc88fc2b 100644 --- a/lib/imgbundler/imgbundler.go +++ b/lib/imgbundler/imgbundler.go @@ -6,6 +6,7 @@ import ( "fmt" "io/ioutil" "net/http" + "os" "regexp" "strings" "sync" @@ -14,7 +15,8 @@ import ( "oss.terrastruct.com/d2/lib/xmain" ) -var imgRe = regexp.MustCompile(`ab +`, svgURL, pngURL) + + ms := &xmain.State{ + Name: "test", + + Stdin: os.Stdin, + Stdout: os.Stdout, + Stderr: os.Stderr, + + Env: xos.NewEnv(os.Environ()), + } + ms.Log = cmdlog.Log(ms.Env, os.Stderr) + out, err := InlineLocal(ms, []byte(sampleSVG)) + if err != nil { + t.Fatal(err) + } + if strings.Contains(string(out), svgURL) { + t.Fatal("links still exist") + } + if !strings.Contains(string(out), "image/svg+xml") { + t.Fatal("no svg image inserted") + } + if !strings.Contains(string(out), "image/png") { + t.Fatal("no png image inserted") + } +} diff --git a/lib/imgbundler/test_svg.svg b/lib/imgbundler/test_svg.svg new file mode 100644 index 000000000..803ac81da --- /dev/null +++ b/lib/imgbundler/test_svg.svg @@ -0,0 +1,7 @@ + + + + + + +