d2/docs/examples/lib/1-d2lib/d2lib.go

32 lines
867 B
Go
Raw Normal View History

package main
import (
"context"
"io/ioutil"
"path/filepath"
2022-12-30 21:36:49 +00:00
"oss.terrastruct.com/d2/d2graph"
"oss.terrastruct.com/d2/d2layouts/d2dagrelayout"
"oss.terrastruct.com/d2/d2lib"
"oss.terrastruct.com/d2/d2renderers/d2svg"
"oss.terrastruct.com/d2/d2themes/d2themescatalog"
"oss.terrastruct.com/d2/lib/textmeasure"
)
// Remember to add if err != nil checks in production.
func main() {
ruler, _ := textmeasure.NewRuler()
2022-12-30 21:36:49 +00:00
defaultLayout := func(ctx context.Context, g *d2graph.Graph) error {
return d2dagrelayout.Layout(ctx, g, nil)
}
diagram, _, _ := d2lib.Compile(context.Background(), "x -> y", &d2lib.CompileOptions{
2023-01-27 21:30:44 +00:00
Layout: defaultLayout,
Ruler: ruler,
})
2022-12-21 07:43:45 +00:00
out, _ := d2svg.Render(diagram, &d2svg.RenderOpts{
2023-02-19 14:33:40 +00:00
Pad: d2svg.DEFAULT_PADDING,
ThemeID: d2themescatalog.GrapeSoda.ID,
2022-12-21 07:43:45 +00:00
})
_ = ioutil.WriteFile(filepath.Join("out.svg"), out, 0600)
}