From 3839db4d875b12760ff1bfd57c39cc19e853d117 Mon Sep 17 00:00:00 2001 From: cyphercodes Date: Sat, 4 Jul 2026 18:22:02 +0300 Subject: [PATCH] fix: normalize config layout engine --- d2compiler/compile.go | 2 +- d2compiler/compile_test.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 66f6497a54..520f7cac06 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -1538,7 +1538,7 @@ func compileConfig(ir *d2ir.Map) (*d2target.Config, error) { f = configMap.GetField(d2ast.FlatUnquotedString("layout-engine")) if f != nil { - config.LayoutEngine = go2.Pointer(f.Primary().Value.ScalarString()) + config.LayoutEngine = go2.Pointer(strings.ToLower(f.Primary().Value.ScalarString())) } f = configMap.GetField(d2ast.FlatUnquotedString("center")) diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index aacae33711..fba1b2a13f 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -5326,6 +5326,22 @@ x -> y assert.Equal(t, true, *config.Sketch) }, }, + { + name: "layout-engine-case-insensitive", + run: func(t *testing.T) { + _, config, err := d2compiler.Compile("d2/testdata/d2compiler/TestCompile2/vars/config/layout-engine-case-insensitive.d2", strings.NewReader(` +vars: { + d2-config: { + layout-engine: ELK + } +} + +x -> y +`), nil) + assert.Success(t, err) + assert.Equal(t, "elk", *config.LayoutEngine) + }, + }, { name: "invalid", run: func(t *testing.T) {