From 6d7188a3c89a1191c11fb39676850b1cf7a9cee5 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 27 Feb 2023 19:17:19 -0800 Subject: [PATCH] save --- d2renderers/d2sketch/sketch.go | 16 +++++-- d2renderers/d2sketch/sketch_test.go | 17 ++++++++ .../testdata/double-border/sketch.exp.svg | 42 +++++++++++++++++++ 3 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 d2renderers/d2sketch/testdata/double-border/sketch.exp.svg diff --git a/d2renderers/d2sketch/sketch.go b/d2renderers/d2sketch/sketch.go index aa48de619..f0306ed66 100644 --- a/d2renderers/d2sketch/sketch.go +++ b/d2renderers/d2sketch/sketch.go @@ -155,6 +155,8 @@ func DoubleRect(r *Runner, shape d2target.Shape) (string, error) { pathEl = d2themes.NewThemableElement("path") pathEl.SetTranslate(float64(shape.Pos.X+d2target.INNER_BORDER_OFFSET), float64(shape.Pos.Y+d2target.INNER_BORDER_OFFSET)) pathEl.Fill, pathEl.Stroke = d2themes.ShapeTheme(shape) + // No need for inner to double paint + pathEl.Fill = "transparent" pathEl.ClassName = "shape" pathEl.Style = shape.CSSStyle() for _, p := range pathsSmallRect { @@ -162,10 +164,16 @@ func DoubleRect(r *Runner, shape d2target.Shape) (string, error) { output += pathEl.Render() } - output += fmt.Sprintf( - ``, - shape.Pos.X, shape.Pos.Y, shape.Width, shape.Height, - ) + sketchOEl := d2themes.NewThemableElement("rect") + sketchOEl.SetTranslate(float64(shape.Pos.X), float64(shape.Pos.Y)) + sketchOEl.Width = float64(shape.Width) + sketchOEl.Height = float64(shape.Height) + renderedSO, err := d2themes.NewThemableSketchOverlay(sketchOEl, pathEl.Fill).Render() + if err != nil { + return "", err + } + output += renderedSO + return output, nil } diff --git a/d2renderers/d2sketch/sketch_test.go b/d2renderers/d2sketch/sketch_test.go index 8df5b314f..1d6f44b82 100644 --- a/d2renderers/d2sketch/sketch_test.go +++ b/d2renderers/d2sketch/sketch_test.go @@ -986,6 +986,23 @@ company Warehouse.explanation: |md - Staging - Dispatch to Site | +`, + }, + { + name: "double-border", + script: `a: { + style.double-border: true + b +} +c: { + shape: oval + style.double-border: true + d +} +normal: { + nested normal +} +something `, }, } diff --git a/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg b/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg new file mode 100644 index 000000000..95496974f --- /dev/null +++ b/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg @@ -0,0 +1,42 @@ + + + + +acnormalsomethingbdnested normal + + + \ No newline at end of file