...

Text file src/oss.terrastruct.com/d2/e2etests/testdata/files/nesting_power.d2

Documentation: oss.terrastruct.com/d2/e2etests/testdata/files

     1l: Left Constant Near {
     2  direction: right
     3  near: center-left
     4
     5  default -> layout -> here
     6  default: {
     7    direction: right
     8    dagre -- elk -- tala: or
     9  }
    10  default.* -> layout: runs this
    11
    12  here: {
    13    grid-columns: 3
    14
    15    this -> is
    16
    17    this: {
    18      grid-rows: 5
    19      row 1 -> row 2 -> row 3 -> row 4 -> row 5
    20    }
    21
    22    is -> grid: A {style.font-size: 24}
    23
    24    grid: {
    25      shape: sequence_diagram
    26
    27      with -> a -> sequence diagram.x -> you can
    28
    29      you can: {
    30        grid-rows: 2
    31        grid-columns: 2
    32        grid-gap: 0
    33
    34        have
    35        another
    36        grid: {
    37          grid-rows: 3
    38          horizontal-gap: 10
    39          vertical-gap: 20
    40          1 -> 2 -> 3
    41        }
    42
    43        here and: {
    44          shape: sequence_diagram
    45          continue -> nesting
    46        }
    47      }
    48      you can.here and.nesting -> sequence diagram.x: {class: green}
    49    }
    50    this.row 2 -> is.child of is.grandchild: {class: green}
    51    # this.row 2 -> grid.you can
    52  }
    53  here.this.row 5 -> default.dagre: straight edge across {class: green}
    54  here.this.row 1 <- default.tala: straight edge across nested types {class: green}
    55}
    56
    57center -> directions: default layout
    58
    59center: {
    60  rectangle: {shape: "rectangle"}
    61  square: {shape: "square"}
    62  page: {shape: "page"}
    63  parallelogram: {shape: "parallelogram"}
    64  document: {shape: "document"}
    65  cylinder: {shape: "cylinder"}
    66  queue: {shape: "queue"}
    67  package: {shape: "package"}
    68  step: {shape: "step"}
    69  callout: {shape: "callout"}
    70  stored_data: {shape: "stored_data"}
    71  person: {shape: "person"}
    72  diamond: {shape: "diamond"}
    73  oval: {shape: "oval"}
    74  circle: {shape: "circle"}
    75  hexagon: {shape: "hexagon"}
    76  cloud: {shape: "cloud"}
    77
    78  rectangle -> square -> page
    79  parallelogram -> document -> cylinder
    80  queue -> package -> step
    81  callout -> stored_data -> person
    82  diamond -> oval -> circle
    83  hexagon -> cloud
    84
    85  *.style.multiple: true
    86}
    87
    88directions: {
    89  grid-rows: 3
    90
    91  r: right {
    92    direction: right
    93    1 -> 2 -> 3
    94    2 -> 4
    95  }
    96  l: left {
    97    direction: left
    98    1 -> 2 -> 3
    99    2 -> 4
   100  }
   101  v: "" {
   102    grid-columns: 2
   103    grid-gap: 0
   104    u: up {
   105      direction: up
   106      1 -> 2 -> 3
   107      2 -> 4
   108    }
   109    d: down {
   110      direction: down
   111      1 -> 2 -> 3
   112      2 -> 4
   113    }
   114  }
   115}
   116
   117# center -> tl
   118r: Right Constant Near {
   119  near: center-right
   120
   121  grid-columns: 5
   122
   123  is -> constant.n -> and -> also.a -> grid: {class: green}
   124  constant.n: near
   125}
   126
   127center -> seq: default layout
   128
   129seq: {
   130  shape: sequence_diagram
   131  scorer: {
   132    style.stroke: red
   133    style.stroke-width: 5
   134  }
   135
   136  scorer.abc: {
   137    style.fill: yellow
   138    style.stroke-width: 7
   139  }
   140
   141  scorer -> itemResponse.a: {
   142    style.stroke-width: 10
   143  }
   144  itemResponse.a -> item.a.b
   145  item.a.b -> essayRubric.a.b.c
   146  essayRubric.a.b.c -> concept.a.b.c.d
   147  item.a -> essayRubric.a.b
   148  concept.a.b.c.d -> itemOutcome.a.b.c.d.e
   149
   150  scorer.abc -> item.a
   151
   152  itemOutcome.a.b.c.d.e -> scorer
   153  scorer -> itemResponse.c
   154}
   155
   156center -> more: default layout
   157
   158more: {
   159  grid-rows: 2
   160  stylish: {
   161    grid-columns: 2
   162    horizontal-gap: 100
   163    x: {
   164      style: {
   165        opacity: 0.6
   166        fill: orange
   167        stroke: "#53C0D8"
   168        stroke-width: 5
   169        shadow: true
   170      }
   171    }
   172
   173    y: {
   174      style: {
   175        stroke-dash: 5
   176        opacity: 0.6
   177        fill: red
   178        3d: true
   179        stroke: black
   180      }
   181    }
   182
   183    x -> y: in style {
   184      style: {
   185        stroke: purple
   186        stroke-width: 2
   187        stroke-dash: 5
   188        fill: lavender
   189      }
   190    }
   191  }
   192  stylish.y -> container.a_sequence: {class: green}
   193
   194  container: {
   195    a_shape.shape: circle
   196    a_sequence: {
   197      shape: sequence_diagram
   198
   199      scorer.t -> itemResponse.t: getItem()
   200      scorer.t <- itemResponse.t: item
   201
   202      scorer.t -> item.t1: getRubric()
   203      scorer.t <- item.t1: rubric
   204
   205      scorer.t -> essayRubric.t: applyTo(essayResp)
   206      itemResponse -> essayRubric.t.c
   207      essayRubric.t.c -> concept.t: match(essayResponse)
   208      scorer <- essayRubric.t: score
   209    }
   210
   211    a_shape -> a_sequence
   212    a_sequence -> sequence
   213    a_shape -- finally
   214
   215    finally: {
   216      shape: queue
   217      sequence: {
   218        shape: sequence_diagram
   219        # items appear in this order
   220        scorer: {
   221          style.stroke: red
   222          style.stroke-dash: 2
   223        }
   224        concept: {
   225          style.stroke-width: 6
   226        }
   227        essayRubric
   228        item
   229        itemOutcome
   230        itemResponse
   231      }
   232    }
   233    finally -- sequence
   234
   235    # full path edges
   236    finally.sequence.itemResponse.a -> finally.sequence.item.a.b
   237    finally.sequence.item.a.b -> finally.sequence.essayRubric.a.b.c
   238    finally.sequence.essayRubric.a.b.c -> finally.sequence.concept.a.b.c.d
   239    finally.sequence.item.a -> finally.sequence.essayRubric.a.b
   240    finally.sequence.concept.a.b.c.d -> finally.sequence.itemOutcome.a.b.c.d.e
   241    finally.sequence.scorer.abc -> finally.sequence.item.a
   242    finally.sequence.itemOutcome.a.b.c.d.e -> finally.sequence.scorer
   243    finally.sequence.scorer -> finally.sequence.itemResponse.c
   244  }
   245}
   246
   247more.container.a_sequence -> directions.v.d.4: {class: green}
   248directions.l.2 -> center.step: {class: green}
   249center.step -> more.stylish.x: {class: green}
   250directions.l.1 -> seq.item.a.b: to inside sequence diagram {class: green}
   251directions.l.1 -> seq.itemResponse.a: to inside sequence diagram {class: green}
   252directions.v.d.2 -> seq.scorer.abc: to inside sequence diagram {class: green}
   253
   254center.cloud -> more.stylish: {class: green}
   255more.container.a_shape -> r.is: to constant near {class: green}
   256l.here.this.row 5 -> directions.v.u.1: from within constant near {class: green}
   257
   258bl: Bottom Left Constant Near {
   259  near: bottom-left
   260  a.b
   261}
   262bl.a.b.from one constant near -> l.default.dagre: to another {class: green}
   263
   264classes.green.style: {
   265  stroke: green
   266  stroke-width: 5
   267}

View as plain text