From d337f71513367f50de0f7c7f48d2e87289718f70 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Thu, 7 Dec 2023 10:45:36 -0800 Subject: [PATCH 1/4] add unfilled_triangle sketch test --- d2renderers/d2sketch/sketch_test.go | 23 +++- .../testdata/unfilled_triangle/sketch.exp.svg | 115 ++++++++++++++++++ 2 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg diff --git a/d2renderers/d2sketch/sketch_test.go b/d2renderers/d2sketch/sketch_test.go index e7d147223..d0067b8d5 100644 --- a/d2renderers/d2sketch/sketch_test.go +++ b/d2renderers/d2sketch/sketch_test.go @@ -3,7 +3,6 @@ package d2sketch_test import ( "context" "encoding/xml" - "io/ioutil" "os" "path/filepath" "strings" @@ -1304,6 +1303,26 @@ a -> b: { } `, }, + { + name: "unfilled_triangle", + script: ` +direction: right + +A <-> B: default { + source-arrowhead.style.filled: false + target-arrowhead.style.filled: false +} +C <-> D: triangle { + source-arrowhead: { + shape: triangle + style.filled: false + } + target-arrowhead: { + shape: triangle + style.filled: false + } +}`, + }, } runa(t, tcs) } @@ -1367,7 +1386,7 @@ func run(t *testing.T, tc testCase) { assert.Success(t, err) err = os.MkdirAll(dataPath, 0755) assert.Success(t, err) - err = ioutil.WriteFile(pathGotSVG, svgBytes, 0600) + err = os.WriteFile(pathGotSVG, svgBytes, 0600) assert.Success(t, err) defer os.Remove(pathGotSVG) diff --git a/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg b/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg new file mode 100644 index 000000000..4efbc9dfd --- /dev/null +++ b/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg @@ -0,0 +1,115 @@ + + + + + + + + +ABCD defaulttriangle + + + + + + + + \ No newline at end of file From 81868de8f63dae45b96c9cd249b9e75a003ec570 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Thu, 7 Dec 2023 10:49:58 -0800 Subject: [PATCH 2/4] add unfilled triangle to sketch renderer --- d2renderers/d2sketch/sketch.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/d2renderers/d2sketch/sketch.go b/d2renderers/d2sketch/sketch.go index 63f97c8e6..38918c88b 100644 --- a/d2renderers/d2sketch/sketch.go +++ b/d2renderers/d2sketch/sketch.go @@ -733,6 +733,14 @@ func ArrowheadJS(r *Runner, arrowhead d2target.Arrowhead, stroke string, strokeW stroke, stroke, ) + case d2target.UnfilledTriangleArrowhead: + arrowJS = fmt.Sprintf( + `node = rc.polygon(%s, { strokeWidth: %d, stroke: "%s", fill: "%s", fillStyle: "solid", seed: 2 })`, + `[[-10, -4], [0, 0], [-10, 4]]`, + strokeWidth, + stroke, + BG_COLOR, + ) case d2target.DiamondArrowhead: arrowJS = fmt.Sprintf( `node = rc.polygon(%s, { strokeWidth: %d, stroke: "%s", fill: "%s", fillStyle: "solid", seed: 1 })`, From 1e676da4dd83e8a9534b9bc6461b09634d2beb21 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Thu, 7 Dec 2023 10:51:34 -0800 Subject: [PATCH 3/4] update test --- d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg b/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg index 4efbc9dfd..56074cc31 100644 --- a/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/unfilled_triangle/sketch.exp.svg @@ -104,7 +104,7 @@ -ABCD defaulttriangle +ABCD default triangle From f46bc340a81bd6a47bb77ef5ff4d4eaeca31ae63 Mon Sep 17 00:00:00 2001 From: Gavin Nishizawa Date: Thu, 7 Dec 2023 10:56:39 -0800 Subject: [PATCH 4/4] changelog --- ci/release/changelogs/next.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index f28d8c6ae..16439d1e5 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -5,3 +5,4 @@ #### Bugfixes ⛑️ - Fix importing files that override an existing value with an array. [#1762](https://github.com/terrastruct/d2/pull/1762) +- Fixed missing unfilled triangle arrowheads when sketch flag is on. [#1763](https://github.com/terrastruct/d2/pull/1763)