diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 54862f292..5043dbb6f 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -1611,6 +1611,24 @@ func (g *Graph) Texts() []*d2target.MText { } } + for _, board := range g.Layers { + for _, t := range board.Texts() { + texts = appendTextDedup(texts, t) + } + } + + for _, board := range g.Scenarios { + for _, t := range board.Texts() { + texts = appendTextDedup(texts, t) + } + } + + for _, board := range g.Steps { + for _, t := range board.Texts() { + texts = appendTextDedup(texts, t) + } + } + return texts } diff --git a/d2lib/d2.go b/d2lib/d2.go index ede144a0f..d12423332 100644 --- a/d2lib/d2.go +++ b/d2lib/d2.go @@ -3,6 +3,7 @@ package d2lib import ( "context" "errors" + "io/fs" "os" "strings" @@ -20,6 +21,7 @@ import ( type CompileOptions struct { UTF16 bool + FS fs.FS MeasuredTexts []*d2target.MText Ruler *textmeasure.Ruler Layout func(context.Context, *d2graph.Graph) error @@ -42,6 +44,7 @@ func Compile(ctx context.Context, input string, opts *CompileOptions) (*d2target g, err := d2compiler.Compile(opts.InputPath, strings.NewReader(input), &d2compiler.CompileOptions{ UTF16: opts.UTF16, + FS: opts.FS, }) if err != nil { return nil, nil, err