default layouts

This commit is contained in:
Alexander Wang 2022-12-30 13:36:49 -08:00
parent 97078e53ae
commit 115d6e4147
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE
11 changed files with 22 additions and 10 deletions

View file

@ -9,5 +9,5 @@ import (
) )
func main() { func main() {
xmain.Main(d2plugin.Serve(d2plugin.DagrePlugin)) xmain.Main(d2plugin.Serve(&d2plugin.DagrePlugin))
} }

View file

@ -123,7 +123,7 @@ func test(t *testing.T, textPath, text string) {
err = g.SetDimensions(nil, ruler, nil) err = g.SetDimensions(nil, ruler, nil)
assert.Nil(t, err) assert.Nil(t, err)
err = d2dagrelayout.Layout(ctx, g) err = d2dagrelayout.DefaultLayout(ctx, g)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View file

@ -239,7 +239,7 @@ func run(t *testing.T, tc testCase) {
err = g.SetDimensions(nil, ruler, nil) err = g.SetDimensions(nil, ruler, nil)
assert.JSON(t, nil, err) assert.JSON(t, nil, err)
err = d2sequence.Layout(ctx, g, d2dagrelayout.Layout) err = d2sequence.Layout(ctx, g, d2dagrelayout.DefaultLayout)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View file

@ -61,6 +61,10 @@ type dagreOpts struct {
ConfigurableOpts ConfigurableOpts
} }
func DefaultLayout(ctx context.Context, g *d2graph.Graph) (err error) {
return Layout(ctx, g, nil)
}
func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err error) { func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err error) {
if opts == nil { if opts == nil {
opts = &DefaultOpts opts = &DefaultOpts

View file

@ -103,6 +103,10 @@ type elkOpts struct {
ConfigurableOpts ConfigurableOpts
} }
func DefaultLayout(ctx context.Context, g *d2graph.Graph) (err error) {
return Layout(ctx, g, nil)
}
func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err error) { func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err error) {
if opts == nil { if opts == nil {
opts = &DefaultOpts opts = &DefaultOpts

View file

@ -314,7 +314,7 @@ func run(t *testing.T, tc testCase) {
diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{ diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{
Ruler: ruler, Ruler: ruler,
ThemeID: 0, ThemeID: 0,
Layout: d2dagrelayout.Layout, Layout: d2dagrelayout.DefaultLayout,
FontFamily: go2.Pointer(d2fonts.HandDrawn), FontFamily: go2.Pointer(d2fonts.HandDrawn),
}) })
if !tassert.Nil(t, err) { if !tassert.Nil(t, err) {

View file

@ -121,7 +121,7 @@ func run(t *testing.T, tc testCase) {
diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{ diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{
Ruler: ruler, Ruler: ruler,
ThemeID: 0, ThemeID: 0,
Layout: d2dagrelayout.Layout, Layout: d2dagrelayout.DefaultLayout,
}) })
if !tassert.Nil(t, err) { if !tassert.Nil(t, err) {
return return

View file

@ -5,6 +5,7 @@ import (
"io/ioutil" "io/ioutil"
"path/filepath" "path/filepath"
"oss.terrastruct.com/d2/d2graph"
"oss.terrastruct.com/d2/d2layouts/d2dagrelayout" "oss.terrastruct.com/d2/d2layouts/d2dagrelayout"
"oss.terrastruct.com/d2/d2lib" "oss.terrastruct.com/d2/d2lib"
"oss.terrastruct.com/d2/d2renderers/d2svg" "oss.terrastruct.com/d2/d2renderers/d2svg"
@ -15,8 +16,11 @@ import (
// Remember to add if err != nil checks in production. // Remember to add if err != nil checks in production.
func main() { func main() {
ruler, _ := textmeasure.NewRuler() ruler, _ := textmeasure.NewRuler()
defaultLayout := func(ctx context.Context, g *d2graph.Graph) error {
return d2dagrelayout.Layout(ctx, g, nil)
}
diagram, _, _ := d2lib.Compile(context.Background(), "x -> y", &d2lib.CompileOptions{ diagram, _, _ := d2lib.Compile(context.Background(), "x -> y", &d2lib.CompileOptions{
Layout: d2dagrelayout.Layout, Layout: defaultLayout,
Ruler: ruler, Ruler: ruler,
ThemeID: d2themescatalog.GrapeSoda.ID, ThemeID: d2themescatalog.GrapeSoda.ID,
}) })

View file

@ -17,7 +17,7 @@ func main() {
// From one.go // From one.go
ruler, _ := textmeasure.NewRuler() ruler, _ := textmeasure.NewRuler()
_, graph, _ := d2lib.Compile(context.Background(), "x -> y", &d2lib.CompileOptions{ _, graph, _ := d2lib.Compile(context.Background(), "x -> y", &d2lib.CompileOptions{
Layout: d2dagrelayout.Layout, Layout: d2dagrelayout.DefaultLayout,
Ruler: ruler, Ruler: ruler,
ThemeID: d2themescatalog.GrapeSoda.ID, ThemeID: d2themescatalog.GrapeSoda.ID,
}) })

View file

@ -19,7 +19,7 @@ func main() {
graph, _ := d2compiler.Compile("", strings.NewReader("x -> y"), nil) graph, _ := d2compiler.Compile("", strings.NewReader("x -> y"), nil)
ruler, _ := textmeasure.NewRuler() ruler, _ := textmeasure.NewRuler()
_ = graph.SetDimensions(nil, ruler, nil) _ = graph.SetDimensions(nil, ruler, nil)
_ = d2dagrelayout.Layout(context.Background(), graph) _ = d2dagrelayout.Layout(context.Background(), graph, nil)
diagram, _ := d2exporter.Export(context.Background(), graph, d2themescatalog.NeutralDefault.ID, nil) diagram, _ := d2exporter.Export(context.Background(), graph, d2themescatalog.NeutralDefault.ID, nil)
out, _ := d2svg.Render(diagram, &d2svg.RenderOpts{ out, _ := d2svg.Render(diagram, &d2svg.RenderOpts{
Pad: d2svg.DEFAULT_PADDING, Pad: d2svg.DEFAULT_PADDING,

View file

@ -130,9 +130,9 @@ func run(t *testing.T, tc testCase) {
for _, layoutName := range layoutsTested { for _, layoutName := range layoutsTested {
var layout func(context.Context, *d2graph.Graph) error var layout func(context.Context, *d2graph.Graph) error
if layoutName == "dagre" { if layoutName == "dagre" {
layout = d2dagrelayout.Layout layout = d2dagrelayout.DefaultLayout
} else if layoutName == "elk" { } else if layoutName == "elk" {
layout = d2elklayout.Layout layout = d2elklayout.DefaultLayout
} }
diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{ diagram, _, err := d2lib.Compile(ctx, tc.script, &d2lib.CompileOptions{
Ruler: ruler, Ruler: ruler,