2022-11-29 01:50:48PM
This commit is contained in:
parent
fe75e7067b
commit
983b05bd9c
2 changed files with 10 additions and 10 deletions
|
|
@ -205,24 +205,24 @@ func compile(ctx context.Context, ms *xmain.State, isWatching bool, plugin d2plu
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
svg, err = imgbundler.InlineLocal(ms, svg)
|
svg, err = imgbundler.InlineLocal(ctx, ms, svg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Missing/broken images are fine during watch mode, as the user is likely building up a diagram.
|
// Missing/broken images are fine during watch mode, as the user is likely building up a diagram.
|
||||||
// Otherwise, the assumption is that this diagram is building for production, and broken images are not okay.
|
// Otherwise, the assumption is that this diagram is building for production, and broken images are not okay.
|
||||||
if !isWatching {
|
if !isWatching {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ms.Log.Debug.Printf("ignoring missing/broken local image in watch mode: %v", err)
|
ms.Log.Debug.Printf("ignoring missing/broken local image(s) in watch mode: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
out := svg
|
out := svg
|
||||||
if filepath.Ext(outputPath) == ".png" {
|
if filepath.Ext(outputPath) == ".png" {
|
||||||
svg, err = imgbundler.InlineRemote(ms, svg)
|
svg, err = imgbundler.InlineRemote(ctx, ms, svg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !isWatching {
|
if !isWatching {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ms.Log.Debug.Printf("ignoring missing/broken remote image in watch mode: %v", err)
|
ms.Log.Debug.Printf("ignoring missing/broken remote image(s) in watch mode: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
out, err = png.ConvertSVG(ms, page, svg)
|
out, err = png.ConvertSVG(ms, page, svg)
|
||||||
|
|
|
||||||
|
|
@ -31,15 +31,15 @@ type resp struct {
|
||||||
err error
|
err error
|
||||||
}
|
}
|
||||||
|
|
||||||
func InlineLocal(ms *xmain.State, in []byte) ([]byte, error) {
|
func InlineLocal(ctx context.Context, ms *xmain.State, in []byte) ([]byte, error) {
|
||||||
return inline(ms, in, false)
|
return inline(ctx, ms, in, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func InlineRemote(ms *xmain.State, in []byte) ([]byte, error) {
|
func InlineRemote(ctx context.Context, ms *xmain.State, in []byte) ([]byte, error) {
|
||||||
return inline(ms, in, true)
|
return inline(ctx, ms, in, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func inline(ms *xmain.State, svg []byte, isRemote bool) (_ []byte, err error) {
|
func inline(ctx context.Context, ms *xmain.State, svg []byte, isRemote bool) (_ []byte, err error) {
|
||||||
defer xdefer.Errorf(&err, "failed to bundle images")
|
defer xdefer.Errorf(&err, "failed to bundle images")
|
||||||
imgs := imageRe.FindAllSubmatch(svg, -1)
|
imgs := imageRe.FindAllSubmatch(svg, -1)
|
||||||
|
|
||||||
|
|
@ -57,7 +57,7 @@ func inline(ms *xmain.State, svg []byte, isRemote bool) (_ []byte, err error) {
|
||||||
// Limits the number of workers to 16.
|
// Limits the number of workers to 16.
|
||||||
sema := make(chan struct{}, 16)
|
sema := make(chan struct{}, 16)
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5)
|
ctx, cancel := context.WithTimeout(ctx, time.Minute*5)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
wg.Add(len(filtered))
|
wg.Add(len(filtered))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue