diff --git a/d2layouts/d2elklayout/layout.go b/d2layouts/d2elklayout/layout.go index eaadd520c..47904d6cc 100644 --- a/d2layouts/d2elklayout/layout.go +++ b/d2layouts/d2elklayout/layout.go @@ -16,6 +16,7 @@ import ( "oss.terrastruct.com/xdefer" "oss.terrastruct.com/d2/d2graph" + "oss.terrastruct.com/d2/d2target" "oss.terrastruct.com/d2/lib/geo" "oss.terrastruct.com/d2/lib/go2" "oss.terrastruct.com/d2/lib/label" @@ -240,6 +241,8 @@ func Layout(ctx context.Context, g *d2graph.Graph) (err error) { if obj.LabelWidth != nil && obj.LabelHeight != nil { if len(obj.ChildrenArray) > 0 { obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter)) + } else if obj.Attributes.Shape.Value == d2target.ShapeImage { + obj.LabelPosition = go2.Pointer(string(label.OutsideTopCenter)) } else { obj.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter)) } diff --git a/e2etests/testdata/stable/images/elk/board.exp.json b/e2etests/testdata/stable/images/elk/board.exp.json index af5875466..7f2141892 100644 --- a/e2etests/testdata/stable/images/elk/board.exp.json +++ b/e2etests/testdata/stable/images/elk/board.exp.json @@ -49,7 +49,7 @@ "underline": false, "labelWidth": 13, "labelHeight": 26, - "labelPosition": "INSIDE_MIDDLE_CENTER" + "labelPosition": "OUTSIDE_TOP_CENTER" }, { "id": "b", @@ -99,7 +99,7 @@ "underline": false, "labelWidth": 13, "labelHeight": 26, - "labelPosition": "INSIDE_MIDDLE_CENTER" + "labelPosition": "OUTSIDE_TOP_CENTER" } ], "connections": [ diff --git a/e2etests/testdata/stable/images/elk/sketch.exp.svg b/e2etests/testdata/stable/images/elk/sketch.exp.svg index d0d315ec7..5a7febf5f 100644 --- a/e2etests/testdata/stable/images/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/images/elk/sketch.exp.svg @@ -2,7 +2,7 @@