diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 14b229af8..caee67967 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -776,13 +776,8 @@ func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { c.compileLabel(&edge.Attributes, e) } - for _, field := range e.Map_.Fields { - if field.Name == "link" && edge.Label.Value == "" { - edge.Label.Value = field.Primary_.String() - } - } - if e.Map() != nil { + c.compileEdgeLinks(edge, e.Map()) c.compileEdgeMap(edge, e.Map()) } @@ -841,6 +836,17 @@ func (c *compiler) compileEdgeMap(edge *d2graph.Edge, m *d2ir.Map) { } } +func (c *compiler) compileEdgeLinks(edge *d2graph.Edge, m *d2ir.Map) { + if m == nil { + return + } + for _, field := range m.Fields { + if field.Name == "link" && edge.Label.Value == "" { + edge.Label.Value = field.Primary_.String() + } + } +} + func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) { keyword := strings.ToLower(f.Name.ScalarString()) _, isStyleReserved := d2ast.StyleKeywords[keyword]