diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go index 464faf196..b0e9386e9 100644 --- a/d2ast/d2ast.go +++ b/d2ast/d2ast.go @@ -1080,6 +1080,13 @@ func (kp *KeyPath) IDA() (ida []String) { return ida } +func (kp *KeyPath) StringIDA() (ida []string) { + for _, el := range kp.Path { + ida = append(ida, el.Unbox().ScalarString()) + } + return ida +} + func (kp *KeyPath) Copy() *KeyPath { kp2 := *kp kp2.Path = nil diff --git a/d2cli/main.go b/d2cli/main.go index df66926fa..eeefd6ae9 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -349,7 +349,7 @@ func Run(ctx context.Context, ms *xmain.State) (err error) { if err != nil { return xmain.UsageErrorf("invalid target: %s", *targetFlag) } - boardPath = key.IDA() + boardPath = key.StringIDA() } ctx, cancel := timelib.WithTimeout(ctx, time.Minute*2) diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 221bb9d67..be7150d1a 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -1230,11 +1230,7 @@ func (c *compiler) validateBoardLinks(g *d2graph.Graph) { continue } - formattedIDA := []string{} - for _, id := range linkKey.IDA() { - formattedIDA = append(formattedIDA, id.ScalarString()) - } - if slices.Equal(formattedIDA, obj.Graph.IDA()) { + if slices.Equal(linkKey.StringIDA(), obj.Graph.IDA()) { obj.Link = nil continue } diff --git a/d2lsp/d2lsp.go b/d2lsp/d2lsp.go index fbd2c4d75..eedcd6550 100644 --- a/d2lsp/d2lsp.go +++ b/d2lsp/d2lsp.go @@ -28,7 +28,7 @@ func GetRefRanges(path string, fs map[string]string, boardPath []string, key str var f *d2ir.Field if mk.Key != nil { for _, p := range mk.Key.Path { - f = m.GetField(p.Unbox().ScalarString()) + f = m.GetField(p.Unbox()) if f == nil { return nil, nil, nil } diff --git a/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf index 76279f245..b1ef566be 100644 Binary files a/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf and b/e2etests-cli/testdata/TestCLI_E2E/internal_linked_pdf.exp.pdf differ diff --git a/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf index 59fd3431a..5a6a7c364 100644 Binary files a/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf and b/e2etests-cli/testdata/TestCLI_E2E/no-nav-pdf.exp.pdf differ diff --git a/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf index 9ab29298b..c520c51ab 100644 Binary files a/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf and b/e2etests-cli/testdata/TestCLI_E2E/renamed-board.exp.pdf differ diff --git a/e2etests-cli/testdata/TestCLI_E2E/theme-pdf.exp.pdf b/e2etests-cli/testdata/TestCLI_E2E/theme-pdf.exp.pdf index b062ef0bf..79e8b42da 100644 Binary files a/e2etests-cli/testdata/TestCLI_E2E/theme-pdf.exp.pdf and b/e2etests-cli/testdata/TestCLI_E2E/theme-pdf.exp.pdf differ