diff --git a/d2exporter/export.go b/d2exporter/export.go index faf026c6f..07c7752b1 100644 --- a/d2exporter/export.go +++ b/d2exporter/export.go @@ -79,6 +79,46 @@ func applyTheme(shape *d2target.Shape, obj *d2graph.Object, theme *d2themes.Them if theme.SpecialRules.Mono { shape.FontFamily = "mono" } + if theme.SpecialRules.C4 && len(obj.ChildrenArray) > 0 { + if obj.Style.Fill == nil { + shape.Fill = "transparent" + } + if obj.Style.Stroke == nil { + shape.Stroke = color.AA2 + } + if obj.Style.StrokeDash == nil { + shape.StrokeDash = 5 + } + if obj.Style.FontColor == nil { + shape.Color = color.N1 + } + } + if theme.SpecialRules.C4 && obj.Level() == 1 && len(obj.ChildrenArray) == 0 && + obj.Shape.Value != d2target.ShapePerson && obj.Shape.Value != d2target.ShapeC4Person { + if obj.Style.Fill == nil { + shape.Fill = color.B6 + } + if obj.Style.Stroke == nil { + shape.Stroke = color.B5 + } + } + if theme.SpecialRules.C4 && (obj.Shape.Value == d2target.ShapePerson || obj.Shape.Value == d2target.ShapeC4Person) { + if obj.Style.Fill == nil { + shape.Fill = color.B2 + } + if obj.Style.Stroke == nil { + shape.Stroke = color.B1 + } + } + if theme.SpecialRules.C4 && obj.Level() > 1 && len(obj.ChildrenArray) == 0 && + obj.Shape.Value != d2target.ShapePerson && obj.Shape.Value != d2target.ShapeC4Person { + if obj.Style.Fill == nil { + shape.Fill = color.B4 + } + if obj.Style.Stroke == nil { + shape.Stroke = color.B3 + } + } } } @@ -165,6 +205,15 @@ func toShape(obj *d2graph.Object, g *d2graph.Graph) d2target.Shape { applyStyles(shape, obj) applyTheme(shape, obj, g.Theme) shape.Color = text.GetColor(shape.Italic) + if g.Theme != nil && g.Theme.SpecialRules.C4 { + if obj.Style.FontColor == nil { + if len(obj.ChildrenArray) > 0 { + shape.Color = color.N1 + } else { + shape.Color = color.N7 + } + } + } applyStyles(shape, obj) switch strings.ToLower(obj.Shape.Value) { @@ -393,5 +442,17 @@ func toConnection(edge *d2graph.Edge, theme *d2themes.Theme) d2target.Connection connection.Src = edge.Src.AbsID() connection.Dst = edge.Dst.AbsID() + if theme != nil && theme.SpecialRules.C4 { + if edge.Style.StrokeDash == nil { + connection.StrokeDash = 5 + } + if edge.Style.Stroke == nil { + connection.Stroke = color.AA4 + } + if edge.Style.FontColor == nil { + connection.Color = color.N2 + } + } + return *connection } diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 1c6cfd63f..c89a7d58d 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -565,7 +565,7 @@ func (obj *Object) GetFill() string { return color.AB5 } - if strings.EqualFold(shape, d2target.ShapePerson) { + if strings.EqualFold(shape, d2target.ShapePerson) || strings.EqualFold(shape, d2target.ShapeC4Person) { return color.B3 } if strings.EqualFold(shape, d2target.ShapeDiamond) { diff --git a/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg b/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg index a6854b59c..44e8664c5 100644 --- a/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/opacity/sketch.exp.svg @@ -855,7 +855,7 @@ -x

linux: because a PC is a terrible thing to waste

+x

linux: because a PC is a terrible thing to waste

auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. diff --git a/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg index dc833c742..8a7266c98 100644 --- a/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/opacity_dark/sketch.exp.svg @@ -852,7 +852,7 @@ -x

linux: because a PC is a terrible thing to waste

+x

linux: because a PC is a terrible thing to waste

auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. diff --git a/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg b/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg index 8b8ef4ffd..c8fc0dc00 100644 --- a/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg @@ -848,7 +848,7 @@ -Flow-I (Warehousing, Installation)OEM FactoryOEM WarehouseDistributor Warehousecompany WarehouseMasterRegional-1Regional-2Regional-N

company Warehouse

+Flow-I (Warehousing, Installation)OEM FactoryOEM WarehouseDistributor Warehousecompany WarehouseMasterRegional-1Regional-2Regional-N

company Warehouse

  • Asset Tagging
  • Inventory
  • diff --git a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg index afb594cc1..8188e20a1 100644 --- a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg @@ -863,7 +863,7 @@ -People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    +People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    • Inject ads, who-to-follow, onboarding
    • Conversation module
    • @@ -871,7 +871,7 @@
    • Tweat deduplication
    • Served data logging
    -
    GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    +
    GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone web HTTP Android Thrift RPC Candidate Fetch Feature Hydration Candidate sources diff --git a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg index a6e90ea40..f875a214b 100644 --- a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg @@ -863,7 +863,7 @@ -People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    +People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    • Inject ads, who-to-follow, onboarding
    • Conversation module
    • @@ -871,7 +871,7 @@
    • Tweat deduplication
    • Served data logging
    -
    GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    +
    GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone web HTTP Android Thrift RPC Candidate Fetch Feature Hydration Candidate sources diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go index 974ac60aa..8c28b9e5e 100644 --- a/d2renderers/d2svg/d2svg.go +++ b/d2renderers/d2svg/d2svg.go @@ -1483,6 +1483,8 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape } if !color.IsThemeColor(targetShape.Color) { styles = append(styles, fmt.Sprintf(`color:%s`, targetShape.Color)) + } else { + styles = append(styles, fmt.Sprintf(`color:%s`, d2themes.ResolveThemeColor(*inlineTheme, targetShape.Color))) } mdEl.Style = strings.Join(styles, ";") diff --git a/d2renderers/d2svg/dark_theme/testdata/code/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/code/dark_theme.exp.svg index f8939d15e..1286fa115 100644 --- a/d2renderers/d2svg/dark_theme/testdata/code/dark_theme.exp.svg +++ b/d2renderers/d2svg/dark_theme/testdata/code/dark_theme.exp.svg @@ -847,7 +847,7 @@   panic("TODO") }func main() {   panic("TODO") -}

    Five is a sufficiently close approximation to infinity.

    +}

    Five is a sufficiently close approximation to infinity.

    Don't hit me!!  I'm in the Twilight Zone!!!Don't hit me!!  I'm in the Twilight Zone!!! diff --git a/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg index 2432e0a8f..2348d3093 100644 --- a/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg +++ b/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg @@ -843,7 +843,7 @@ .d2-3335880637 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -x

    linux: because a PC is a terrible thing to waste

    +x

    linux: because a PC is a terrible thing to waste

    auserslast_logindatetime You don't have to know how the computer works,just how to work the computer. diff --git a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg index b5f681022..fd67b52b8 100644 --- a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg +++ b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg @@ -843,7 +843,7 @@ .d2-1329315803 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    +People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    • Inject ads, who-to-follow, onboarding
    • Conversation module
    • @@ -851,7 +851,7 @@
    • Tweat deduplication
    • Served data logging
    -
    GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    +
    GraphQLFederated Strato Column

    Tweet/user content hydration, visibility filtering

    TLS-API (being deprecated)CrMixerEarlyBirdUtagSpaceCommunities iPhone webHTTP AndroidThrift RPC Candidate FetchFeature HydrationCandidate sources diff --git a/d2target/d2target.go b/d2target/d2target.go index d8db1c5e9..82a28c315 100644 --- a/d2target/d2target.go +++ b/d2target/d2target.go @@ -280,6 +280,13 @@ func (diagram Diagram) BoundingBox() (topLeft, bottomRight Point) { x2 = go2.Max(x2, targetShape.Pos.X+targetShape.Width+int(math.Ceil(float64(targetShape.StrokeWidth)/2.))) y2 = go2.Max(y2, targetShape.Pos.Y+targetShape.Height+int(math.Ceil(float64(targetShape.StrokeWidth)/2.))) + if targetShape.Type == ShapeC4Person { + headRadius := int(float64(targetShape.Width) * 0.22) + headCenterY := int(float64(targetShape.Height) * 0.18) + headTop := targetShape.Pos.Y + headCenterY - headRadius + y1 = go2.Min(y1, headTop-targetShape.StrokeWidth) + } + if targetShape.Tooltip != "" || targetShape.Link != "" { // 16 is the icon radius y1 = go2.Min(y1, targetShape.Pos.Y-targetShape.StrokeWidth-16) diff --git a/d2themes/d2themes.go b/d2themes/d2themes.go index 48313e3ff..8cfbf92ac 100644 --- a/d2themes/d2themes.go +++ b/d2themes/d2themes.go @@ -21,6 +21,7 @@ type SpecialRules struct { OuterContainerDoubleBorder bool `json:"outerContainerDoubleBorder"` ContainerDots bool `json:"containerDots"` CapsLock bool `json:"capsLock"` + C4 bool `json:"c4"` AllPaper bool `json:"allPaper"` } diff --git a/d2themes/d2themescatalog/c4.go b/d2themes/d2themescatalog/c4.go new file mode 100644 index 000000000..fb6a3b0ba --- /dev/null +++ b/d2themes/d2themescatalog/c4.go @@ -0,0 +1,38 @@ +package d2themescatalog + +import "oss.terrastruct.com/d2/d2themes" + +var C4 = d2themes.Theme{ + ID: 303, + Name: "C4", + Colors: d2themes.ColorPalette{ + Neutrals: d2themes.Neutral{ + N1: "#0f5eaa", // Container font color + N2: "#707070", // Connection font color + N3: "#FFFFFF", + N4: "#073b6f", // Person stroke + N5: "#999999", // Root level objects + N6: "#FFFFFF", + N7: "#FFFFFF", + }, + + // Primary colors + B1: "#073b6f", // Person stroke + B2: "#08427b", // Person fill + B3: "#3c7fc0", // Inner objects stroke + B4: "#438dd5", // Inner objects fill + B5: "#8a8a8a", // Root level objects stroke + B6: "#999999", // Root level objects fill + + // Accent colors + AA2: "#0f5eaa", // Container stroke + AA4: "#707070", // Connection stroke + AA5: "#f5f5f5", // Light background + + AB4: "#e1e1e1", + AB5: "#f0f0f0", + }, + SpecialRules: d2themes.SpecialRules{ + C4: true, + }, +} diff --git a/d2themes/d2themescatalog/catalog.go b/d2themes/d2themescatalog/catalog.go index 72cf8d10f..6341399dd 100644 --- a/d2themes/d2themescatalog/catalog.go +++ b/d2themes/d2themescatalog/catalog.go @@ -25,6 +25,7 @@ var LightCatalog = []d2themes.Theme{ Terminal, TerminalGrayscale, Origami, + C4, } var DarkCatalog = []d2themes.Theme{ diff --git a/e2etests/testdata/regression/elk_order/dagre/sketch.exp.svg b/e2etests/testdata/regression/elk_order/dagre/sketch.exp.svg index d6847b512..e785cdab4 100644 --- a/e2etests/testdata/regression/elk_order/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/elk_order/dagre/sketch.exp.svg @@ -836,10 +836,10 @@ .d2-3049291188 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

    Oldest message

    -

    Offset

    -

    Last message

    -

    Next message will be
    +

    Oldest message

    +

    Offset

    +

    Last message

    +

    Next message will be
    inserted here

    M0M1M2M3M4M5M6 diff --git a/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg b/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg index 7eccbd4fe..f1f7263f6 100644 --- a/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg @@ -836,10 +836,10 @@ .d2-3542568952 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

    Oldest message

    -

    Offset

    -

    Last message

    -

    Next message will be
    +

    Oldest message

    +

    Offset

    +

    Last message

    +

    Next message will be
    inserted here

    M0M1M2M3M4M5M6 diff --git a/e2etests/testdata/regression/md_font_weight/dagre/sketch.exp.svg b/e2etests/testdata/regression/md_font_weight/dagre/sketch.exp.svg index 29c8e28c1..d306de191 100644 --- a/e2etests/testdata/regression/md_font_weight/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/md_font_weight/dagre/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-147443974 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

    I can do headers

    +

    I can do headers

    • lists
    • lists
    • diff --git a/e2etests/testdata/regression/md_font_weight/elk/sketch.exp.svg b/e2etests/testdata/regression/md_font_weight/elk/sketch.exp.svg index 38f22f360..75d4fe601 100644 --- a/e2etests/testdata/regression/md_font_weight/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/md_font_weight/elk/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-2881380206 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

      I can do headers

      +

      I can do headers

      • lists
      • lists
      • diff --git a/e2etests/testdata/regression/md_h1_li_li/dagre/sketch.exp.svg b/e2etests/testdata/regression/md_h1_li_li/dagre/sketch.exp.svg index 26cae1293..69644a27d 100644 --- a/e2etests/testdata/regression/md_h1_li_li/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/md_h1_li_li/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1836715912 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

        hey

        +

        hey

        • they
            diff --git a/e2etests/testdata/regression/md_h1_li_li/elk/sketch.exp.svg b/e2etests/testdata/regression/md_h1_li_li/elk/sketch.exp.svg index 5125b7e0a..5b9673ea7 100644 --- a/e2etests/testdata/regression/md_h1_li_li/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/md_h1_li_li/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-3788794681 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

            hey

            +

            hey

            • they
                diff --git a/e2etests/testdata/regression/opacity-on-label/dagre/sketch.exp.svg b/e2etests/testdata/regression/opacity-on-label/dagre/sketch.exp.svg index b76cc3ef3..89f900846 100644 --- a/e2etests/testdata/regression/opacity-on-label/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/opacity-on-label/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-1987627880 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -x

                linux: because a PC is a terrible thing to waste

                +x

                linux: because a PC is a terrible thing to waste

                a You don't have to know how the computer works,just how to work the computer. diff --git a/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg b/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg index 5d8b715af..42374bbd2 100644 --- a/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-856327487 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -x

                linux: because a PC is a terrible thing to waste

                +x

                linux: because a PC is a terrible thing to waste

                a You don't have to know how the computer works,just how to work the computer. diff --git a/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg b/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg index 128b682c4..bcf7b4344 100644 --- a/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg +++ b/e2etests/testdata/regression/unconnected/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-4271326716 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -Workflow-I (Warehousing, Installation)OEM FactoryOEM WarehouseDistributor WarehouseGos WarehouseCustomer SiteMasterRegional-1Regional-2Regional-N
                  +Workflow-I (Warehousing, Installation)OEM FactoryOEM WarehouseDistributor WarehouseGos WarehouseCustomer SiteMasterRegional-1Regional-2Regional-N
                  • Asset Tagging
                  • Inventory
                  • Staging
                  • diff --git a/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg b/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg index 10bb6f740..c6858e1b9 100644 --- a/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg +++ b/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1235788687 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -Workflow-I (Warehousing, Installation)OEM FactoryOEM WarehouseDistributor WarehouseGos WarehouseCustomer SiteMasterRegional-1Regional-2Regional-N
                      +Workflow-I (Warehousing, Installation)OEM FactoryOEM WarehouseDistributor WarehouseGos WarehouseCustomer SiteMasterRegional-1Regional-2Regional-N
                      • Asset Tagging
                      • Inventory
                      • Staging
                      • diff --git a/e2etests/testdata/stable/br/dagre/sketch.exp.svg b/e2etests/testdata/stable/br/dagre/sketch.exp.svg index fb2f1d3da..d136e2968 100644 --- a/e2etests/testdata/stable/br/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/br/dagre/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-3415583374 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                        Headline 1

                        +

                        Headline 1

                        Headline 2

                        Lorem ipsum dolor

                        diff --git a/e2etests/testdata/stable/br/elk/sketch.exp.svg b/e2etests/testdata/stable/br/elk/sketch.exp.svg index 075be4190..04d063663 100644 --- a/e2etests/testdata/stable/br/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/br/elk/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-2354018982 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                        Headline 1

                        +

                        Headline 1

                        Headline 2

                        Lorem ipsum dolor

                        diff --git a/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg b/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg index bb39e1cb2..1df7ab4f7 100644 --- a/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_stress/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1761626757 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -xyThe top of the mountainJoeDonald

                        Cats, no less liquid than their shadows, offer no angles to the wind.

                        +xyThe top of the mountainJoeDonald

                        Cats, no less liquid than their shadows, offer no angles to the wind.

                        If we can't fix it, it ain't broke.

                        Dieters live life in the fasting lane.

                        i am top lefti am top righti am bottom lefti am bottom right diff --git a/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg b/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg index 24803a595..dfcdc388d 100644 --- a/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_stress/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1390049335 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -xyThe top of the mountainJoeDonald

                        Cats, no less liquid than their shadows, offer no angles to the wind.

                        +xyThe top of the mountainJoeDonald

                        Cats, no less liquid than their shadows, offer no angles to the wind.

                        If we can't fix it, it ain't broke.

                        Dieters live life in the fasting lane.

                        i am top lefti am top righti am bottom lefti am bottom right diff --git a/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg b/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg index 5d0dc8d69..792d1e688 100644 --- a/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_title/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-2364978249 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                        A winning strategy

                        +

                        A winning strategy

                        poll the peopleresultsunfavorablefavorablewill of the people diff --git a/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg b/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg index 9e0b34778..ea5956d84 100644 --- a/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-4212596512 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                        A winning strategy

                        +

                        A winning strategy

                        poll the peopleresultsunfavorablefavorablewill of the people diff --git a/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg b/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg index fbca7dc78..63f3c768a 100644 --- a/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/giant_markdown_test/dagre/sketch.exp.svg @@ -850,7 +850,7 @@ .d2-851985161 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                        Markdown: Syntax

                        +

                        Markdown: Syntax

                        • Overview
                            diff --git a/e2etests/testdata/stable/giant_markdown_test/elk/sketch.exp.svg b/e2etests/testdata/stable/giant_markdown_test/elk/sketch.exp.svg index be01463bc..7833bf6cc 100644 --- a/e2etests/testdata/stable/giant_markdown_test/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/giant_markdown_test/elk/sketch.exp.svg @@ -850,7 +850,7 @@ .d2-4122552445 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                            Markdown: Syntax

                            +

                            Markdown: Syntax

                            • Overview
                                diff --git a/e2etests/testdata/stable/hr/dagre/sketch.exp.svg b/e2etests/testdata/stable/hr/dagre/sketch.exp.svg index ec48c7a1a..ed98d022e 100644 --- a/e2etests/testdata/stable/hr/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/hr/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-142627214 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                Note: This document is itself written using Markdown; you +

                                Note: This document is itself written using Markdown; you can see the source for it by adding '.text' to the URL.


                                Overview

                                diff --git a/e2etests/testdata/stable/hr/elk/sketch.exp.svg b/e2etests/testdata/stable/hr/elk/sketch.exp.svg index 4f1d7d75d..c87b096fd 100644 --- a/e2etests/testdata/stable/hr/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/hr/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-3115974332 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                Note: This document is itself written using Markdown; you +

                                Note: This document is itself written using Markdown; you can see the source for it by adding '.text' to the URL.


                                Overview

                                diff --git a/e2etests/testdata/stable/li1/dagre/sketch.exp.svg b/e2etests/testdata/stable/li1/dagre/sketch.exp.svg index 7888872a7..a75f650ba 100644 --- a/e2etests/testdata/stable/li1/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/li1/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-3521704376 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                  +
                                  • Overview
                                    • Philosophy
                                    • diff --git a/e2etests/testdata/stable/li1/elk/sketch.exp.svg b/e2etests/testdata/stable/li1/elk/sketch.exp.svg index 1fae7adce..12d7f100a 100644 --- a/e2etests/testdata/stable/li1/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/li1/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-2351031357 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                        +
                                        • Overview
                                          • Philosophy
                                          • diff --git a/e2etests/testdata/stable/li2/dagre/sketch.exp.svg b/e2etests/testdata/stable/li2/dagre/sketch.exp.svg index 7136bde44..bd9d9b9bf 100644 --- a/e2etests/testdata/stable/li2/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/li2/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-3835243374 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                              +
                                              • Overview ok this is all measured
                                                • Philosophy
                                                • diff --git a/e2etests/testdata/stable/li2/elk/sketch.exp.svg b/e2etests/testdata/stable/li2/elk/sketch.exp.svg index 4274aebc6..9f0dee141 100644 --- a/e2etests/testdata/stable/li2/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/li2/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-2498775702 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                                    +
                                                    • Overview ok this is all measured
                                                      • Philosophy
                                                      • diff --git a/e2etests/testdata/stable/li3/dagre/sketch.exp.svg b/e2etests/testdata/stable/li3/dagre/sketch.exp.svg index 66e6db3fb..7a0b2e864 100644 --- a/e2etests/testdata/stable/li3/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/li3/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1850453634 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                                          +
                                                          • Overview
                                                            • Philosophy
                                                            • diff --git a/e2etests/testdata/stable/li3/elk/sketch.exp.svg b/e2etests/testdata/stable/li3/elk/sketch.exp.svg index 5c8347f45..9812d3afe 100644 --- a/e2etests/testdata/stable/li3/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/li3/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-3625619566 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                                                +
                                                                • Overview
                                                                  • Philosophy
                                                                  • diff --git a/e2etests/testdata/stable/li4/dagre/sketch.exp.svg b/e2etests/testdata/stable/li4/dagre/sketch.exp.svg index d4e93394e..12cd99727 100644 --- a/e2etests/testdata/stable/li4/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/li4/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-95635950 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                    List items may consist of multiple paragraphs. Each subsequent +

                                                                    List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either 4 spaces or one tab:

                                                                      diff --git a/e2etests/testdata/stable/li4/elk/sketch.exp.svg b/e2etests/testdata/stable/li4/elk/sketch.exp.svg index 4f912be04..42df125b6 100644 --- a/e2etests/testdata/stable/li4/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/li4/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-1253393308 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                      List items may consist of multiple paragraphs. Each subsequent +

                                                                      List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either 4 spaces or one tab:

                                                                        diff --git a/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg b/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg index ccb0e3f56..d559875ba 100644 --- a/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1741298119 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                        Markdown: Syntax

                                                                        +

                                                                        Markdown: Syntax

                                                                        ab diff --git a/e2etests/testdata/stable/lone_h1/elk/sketch.exp.svg b/e2etests/testdata/stable/lone_h1/elk/sketch.exp.svg index c01c3c607..722c9fcfd 100644 --- a/e2etests/testdata/stable/lone_h1/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/lone_h1/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1073489527 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                        Markdown: Syntax

                                                                        +

                                                                        Markdown: Syntax

                                                                        ab diff --git a/e2etests/testdata/stable/markdown/dagre/sketch.exp.svg b/e2etests/testdata/stable/markdown/dagre/sketch.exp.svg index a821048aa..53f6af603 100644 --- a/e2etests/testdata/stable/markdown/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/markdown/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-1466084009 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                        Every frustum longs to be a cone

                                                                        +

                                                                        Every frustum longs to be a cone

                                                                        • A continuing flow of paper is sufficient to continue the flow of paper
                                                                        • Please remain calm, it's no use both of us being hysterical at the same time
                                                                        • diff --git a/e2etests/testdata/stable/markdown/elk/sketch.exp.svg b/e2etests/testdata/stable/markdown/elk/sketch.exp.svg index eb77b3a48..74c9a2cb0 100644 --- a/e2etests/testdata/stable/markdown/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/markdown/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-2237312999 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                          Every frustum longs to be a cone

                                                                          +

                                                                          Every frustum longs to be a cone

                                                                          • A continuing flow of paper is sufficient to continue the flow of paper
                                                                          • Please remain calm, it's no use both of us being hysterical at the same time
                                                                          • diff --git a/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg index f754fc7b2..82a28c28b 100644 --- a/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-2553377867 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            +markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

                                                                            diff --git a/e2etests/testdata/stable/md_2space_newline/elk/sketch.exp.svg b/e2etests/testdata/stable/md_2space_newline/elk/sketch.exp.svg index 52af548f3..829ce37f2 100644 --- a/e2etests/testdata/stable/md_2space_newline/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/md_2space_newline/elk/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-3503638182 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            +markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

                                                                            diff --git a/e2etests/testdata/stable/md_backslash_newline/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_backslash_newline/dagre/sketch.exp.svg index 88b10815b..9c9904725 100644 --- a/e2etests/testdata/stable/md_backslash_newline/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/md_backslash_newline/dagre/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-3081693699 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            +markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

                                                                            diff --git a/e2etests/testdata/stable/md_backslash_newline/elk/sketch.exp.svg b/e2etests/testdata/stable/md_backslash_newline/elk/sketch.exp.svg index cec8bd3f5..6ac49ef83 100644 --- a/e2etests/testdata/stable/md_backslash_newline/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/md_backslash_newline/elk/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-4149945950 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            +markdown

                                                                            Lorem ipsum dolor sit amet, consectetur adipiscing elit,
                                                                            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

                                                                            diff --git a/e2etests/testdata/stable/md_code_block_fenced/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_code_block_fenced/dagre/sketch.exp.svg index bee263450..ad3879b8d 100644 --- a/e2etests/testdata/stable/md_code_block_fenced/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/md_code_block_fenced/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-1518250751 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                                                            {
                                                                            +
                                                                            {
                                                                             	fenced: "block",
                                                                             	of: "json",
                                                                             }
                                                                            diff --git a/e2etests/testdata/stable/md_code_block_fenced/elk/sketch.exp.svg b/e2etests/testdata/stable/md_code_block_fenced/elk/sketch.exp.svg
                                                                            index 2f1e681eb..fc8892b5b 100644
                                                                            --- a/e2etests/testdata/stable/md_code_block_fenced/elk/sketch.exp.svg
                                                                            +++ b/e2etests/testdata/stable/md_code_block_fenced/elk/sketch.exp.svg
                                                                            @@ -843,7 +843,7 @@
                                                                             .d2-3638167430 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
                                                                               margin: 0 -1.6em 0.25em 0.2em;
                                                                             }
                                                                            -
                                                                            {
                                                                            +
                                                                            {
                                                                             	fenced: "block",
                                                                             	of: "json",
                                                                             }
                                                                            diff --git a/e2etests/testdata/stable/md_code_block_indented/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_code_block_indented/dagre/sketch.exp.svg
                                                                            index 23a743cf6..93f7e90e7 100644
                                                                            --- a/e2etests/testdata/stable/md_code_block_indented/dagre/sketch.exp.svg
                                                                            +++ b/e2etests/testdata/stable/md_code_block_indented/dagre/sketch.exp.svg
                                                                            @@ -843,7 +843,7 @@
                                                                             .d2-1952230391 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
                                                                               margin: 0 -1.6em 0.25em 0.2em;
                                                                             }
                                                                            -

                                                                            a line of text and an

                                                                            +

                                                                            a line of text and an

                                                                            {
                                                                             	indented: "block",
                                                                             	of: "json",
                                                                            diff --git a/e2etests/testdata/stable/md_code_block_indented/elk/sketch.exp.svg b/e2etests/testdata/stable/md_code_block_indented/elk/sketch.exp.svg
                                                                            index 104bee558..0a14680d2 100644
                                                                            --- a/e2etests/testdata/stable/md_code_block_indented/elk/sketch.exp.svg
                                                                            +++ b/e2etests/testdata/stable/md_code_block_indented/elk/sketch.exp.svg
                                                                            @@ -843,7 +843,7 @@
                                                                             .d2-538047421 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
                                                                               margin: 0 -1.6em 0.25em 0.2em;
                                                                             }
                                                                            -

                                                                            a line of text and an

                                                                            +

                                                                            a line of text and an

                                                                            {
                                                                             	indented: "block",
                                                                             	of: "json",
                                                                            diff --git a/e2etests/testdata/stable/md_code_inline/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_code_inline/dagre/sketch.exp.svg
                                                                            index 5e500675c..19278c20c 100644
                                                                            --- a/e2etests/testdata/stable/md_code_inline/dagre/sketch.exp.svg
                                                                            +++ b/e2etests/testdata/stable/md_code_inline/dagre/sketch.exp.svg
                                                                            @@ -843,7 +843,7 @@
                                                                             .d2-1339768961 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
                                                                               margin: 0 -1.6em 0.25em 0.2em;
                                                                             }
                                                                            -

                                                                            code

                                                                            +

                                                                            code

                                                                            ab diff --git a/e2etests/testdata/stable/md_code_inline/elk/sketch.exp.svg b/e2etests/testdata/stable/md_code_inline/elk/sketch.exp.svg index b093b6a50..edcf5b11e 100644 --- a/e2etests/testdata/stable/md_code_inline/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/md_code_inline/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-3881944313 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                            code

                                                                            +

                                                                            code

                                                                            ab diff --git a/e2etests/testdata/stable/md_fontsize_10/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_fontsize_10/dagre/sketch.exp.svg index 5e0566add..4a6cc6146 100644 --- a/e2etests/testdata/stable/md_fontsize_10/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/md_fontsize_10/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-2196724626 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                            Every frustum longs to be a cone

                                                                            +

                                                                            Every frustum longs to be a cone

                                                                            • A continuing flow of paper is sufficient to continue the flow of paper
                                                                            • Please remain calm, it's no use both of us being hysterical at the same time
                                                                            • diff --git a/e2etests/testdata/stable/md_fontsize_10/elk/sketch.exp.svg b/e2etests/testdata/stable/md_fontsize_10/elk/sketch.exp.svg index 3673654ea..1e56c95cb 100644 --- a/e2etests/testdata/stable/md_fontsize_10/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/md_fontsize_10/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-632982403 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                              Every frustum longs to be a cone

                                                                              +

                                                                              Every frustum longs to be a cone

                                                                              • A continuing flow of paper is sufficient to continue the flow of paper
                                                                              • Please remain calm, it's no use both of us being hysterical at the same time
                                                                              • diff --git a/e2etests/testdata/stable/md_mixed/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_mixed/dagre/sketch.exp.svg index 385042774..c69fd40a9 100644 --- a/e2etests/testdata/stable/md_mixed/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/md_mixed/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-2743272479 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -example

                                                                                one two three!

                                                                                +example

                                                                                one two three!

                                                                                diff --git a/e2etests/testdata/stable/md_mixed/elk/sketch.exp.svg b/e2etests/testdata/stable/md_mixed/elk/sketch.exp.svg index 2232d0ec7..a4895531e 100644 --- a/e2etests/testdata/stable/md_mixed/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/md_mixed/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-3779428285 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -example

                                                                                one two three!

                                                                                +example

                                                                                one two three!

                                                                                diff --git a/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg b/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg index 6b95d4f65..95d72ca0c 100644 --- a/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/near_keys_for_container/dagre/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-968008625 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                Service-Cluster Provisioning ("Outside view")

                                                                                +

                                                                                Service-Cluster Provisioning ("Outside view")

                                                                                diff --git a/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg b/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg index 6b95d4f65..95d72ca0c 100644 --- a/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/near_keys_for_container/elk/sketch.exp.svg @@ -829,7 +829,7 @@ .d2-968008625 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                Service-Cluster Provisioning ("Outside view")

                                                                                +

                                                                                Service-Cluster Provisioning ("Outside view")

                                                                                diff --git a/e2etests/testdata/stable/p/dagre/sketch.exp.svg b/e2etests/testdata/stable/p/dagre/sketch.exp.svg index d5221c5c5..f17d8d962 100644 --- a/e2etests/testdata/stable/p/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/p/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-3128274021 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                A paragraph is simply one or more consecutive lines of text, separated +

                                                                                A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line -- a line containing nothing but spaces or tabs is considered blank.) Normal paragraphs should not be indented with spaces or tabs.

                                                                                diff --git a/e2etests/testdata/stable/p/elk/sketch.exp.svg b/e2etests/testdata/stable/p/elk/sketch.exp.svg index 18a7c731c..85bc75cab 100644 --- a/e2etests/testdata/stable/p/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/p/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-979712518 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                A paragraph is simply one or more consecutive lines of text, separated +

                                                                                A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line -- a line containing nothing but spaces or tabs is considered blank.) Normal paragraphs should not be indented with spaces or tabs.

                                                                                diff --git a/e2etests/testdata/stable/pre/dagre/sketch.exp.svg b/e2etests/testdata/stable/pre/dagre/sketch.exp.svg index 1b9552e73..9ef6d1ab7 100644 --- a/e2etests/testdata/stable/pre/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/pre/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-3660705295 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                Here is an example of AppleScript:

                                                                                +

                                                                                Here is an example of AppleScript:

                                                                                tell application "Foo"
                                                                                     beep
                                                                                 end tell
                                                                                diff --git a/e2etests/testdata/stable/pre/elk/sketch.exp.svg b/e2etests/testdata/stable/pre/elk/sketch.exp.svg
                                                                                index 8bc777425..eb4b05485 100644
                                                                                --- a/e2etests/testdata/stable/pre/elk/sketch.exp.svg
                                                                                +++ b/e2etests/testdata/stable/pre/elk/sketch.exp.svg
                                                                                @@ -843,7 +843,7 @@
                                                                                 .d2-818404908 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
                                                                                   margin: 0 -1.6em 0.25em 0.2em;
                                                                                 }
                                                                                -

                                                                                Here is an example of AppleScript:

                                                                                +

                                                                                Here is an example of AppleScript:

                                                                                tell application "Foo"
                                                                                     beep
                                                                                 end tell
                                                                                diff --git a/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg
                                                                                index 1b4368951..6382dee61 100644
                                                                                --- a/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg
                                                                                +++ b/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg
                                                                                @@ -843,7 +843,7 @@
                                                                                 .d2-1817135411 .md .contains-task-list:dir(rtl) .task-list-item-checkbox {
                                                                                   margin: 0 -1.6em 0.25em 0.2em;
                                                                                 }
                                                                                -TeleportJust-in-time Access viaInfrastructureIndentity ProviderEngineersMachinesHTTPS://> kubectl> tsh> apiDB Clients

                                                                                Identity Native Proxy

                                                                                +TeleportJust-in-time Access viaInfrastructureIndentity ProviderEngineersMachinesHTTPS://> kubectl> tsh> apiDB Clients

                                                                                Identity Native Proxy

                                                                                Audit LogCert AuthoritySlackMattermostJiraPagerdutyEmailsshKubernetesMy SQLMongoDBPSQLWindows all connections audited and logged diff --git a/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg b/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg index ba5ff9887..b823da1c7 100644 --- a/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-3185352814 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -TeleportJust-in-time Access viaInfrastructureIndentity ProviderEngineersMachinesHTTPS://> kubectl> tsh> apiDB Clients

                                                                                Identity Native Proxy

                                                                                +TeleportJust-in-time Access viaInfrastructureIndentity ProviderEngineersMachinesHTTPS://> kubectl> tsh> apiDB Clients

                                                                                Identity Native Proxy

                                                                                Audit LogCert AuthoritySlackMattermostJiraPagerdutyEmailsshKubernetesMy SQLMongoDBPSQLWindows all connections audited and logged diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg index 308d2bc12..9ccbe497e 100644 --- a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg @@ -857,7 +857,7 @@ .d2-85991054 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

                                                                                A tale

                                                                                +networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

                                                                                A tale

                                                                                • of
                                                                                • two cities
                                                                                • diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg index 0e543792b..be20c370a 100644 --- a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg @@ -857,7 +857,7 @@ .d2-3004075822 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

                                                                                  A tale

                                                                                  +networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

                                                                                  A tale

                                                                                  • of
                                                                                  • two cities
                                                                                  • diff --git a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg index f81c05e9a..ba9d909e2 100644 --- a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg @@ -883,7 +883,7 @@ -NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

                                                                                    A TALE

                                                                                    +NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

                                                                                    A TALE

                                                                                    • OF
                                                                                    • TWO CITIES
                                                                                    • diff --git a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg index a1265f506..19223f112 100644 --- a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg @@ -883,7 +883,7 @@ -NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

                                                                                      A TALE

                                                                                      +NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

                                                                                      A TALE

                                                                                      • OF
                                                                                      • TWO CITIES
                                                                                      • diff --git a/e2etests/testdata/todo/dagre_container_md_label_panic/dagre/sketch.exp.svg b/e2etests/testdata/todo/dagre_container_md_label_panic/dagre/sketch.exp.svg index b2bd5712a..7f08aa30c 100644 --- a/e2etests/testdata/todo/dagre_container_md_label_panic/dagre/sketch.exp.svg +++ b/e2etests/testdata/todo/dagre_container_md_label_panic/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-3098341505 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -OEM Factory

                                                                                        company Warehouse

                                                                                        +OEM Factory

                                                                                        company Warehouse

                                                                                        • Asset Tagging
                                                                                        • Inventory
                                                                                        • diff --git a/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg b/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg index 0e139819f..446e1286b 100644 --- a/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg +++ b/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1471202586 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -OEM Factory

                                                                                          company Warehouse

                                                                                          +OEM Factory

                                                                                          company Warehouse

                                                                                          • Asset Tagging
                                                                                          • Inventory
                                                                                          • diff --git a/e2etests/testdata/todo/shape_set_width_height/dagre/sketch.exp.svg b/e2etests/testdata/todo/shape_set_width_height/dagre/sketch.exp.svg index 03b520f46..3f971fb83 100644 --- a/e2etests/testdata/todo/shape_set_width_height/dagre/sketch.exp.svg +++ b/e2etests/testdata/todo/shape_set_width_height/dagre/sketch.exp.svg @@ -850,7 +850,7 @@ .d2-3326126261 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -containerscloudtall cylinderclass2-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

                                                                                            markdown text expanded to 800x400

                                                                                            +containerscloudtall cylinderclass2-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

                                                                                            markdown text expanded to 800x400

                                                                                            := 5 := a + 7 fmt.Printf("%d", b)a := 5 diff --git a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg index 9404b73ca..0fcd82215 100644 --- a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg +++ b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg @@ -850,7 +850,7 @@ .d2-71187753 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -containerscloudtall cylinderclass2-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

                                                                                            markdown text expanded to 800x400

                                                                                            +containerscloudtall cylinderclass2-numint-timeoutint-pid+getStatus()Enum+getJobs()Job[]+setTimeout(seconds int)voidusersidintnamestringemailstringpasswordstringlast_logindatetimecontainer

                                                                                            markdown text expanded to 800x400

                                                                                            := 5 := a + 7 fmt.Printf("%d", b)a := 5 diff --git a/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg b/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg index 654d8d6b4..395dc0e3d 100644 --- a/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -

                                                                                            Personal Banking Customer

                                                                                            +

                                                                                            [person]

                                                                                            +

                                                                                            A customer of the bank, with personal bank accounts.

                                                                                            +

                                                                                            Internet Banking System

                                                                                            +

                                                                                            [Software System]

                                                                                            +

                                                                                            E-mail System

                                                                                            +

                                                                                            [Software System]

                                                                                            +

                                                                                            The internal Microsoft Exchange e-mail system.

                                                                                            +

                                                                                            Mainframe Banking System

                                                                                            +

                                                                                            [Software System]

                                                                                            +

                                                                                            Stores all of the core banking information about customers, accounts, transactions, etc.

                                                                                            +

                                                                                            Web Application

                                                                                            +

                                                                                            [Container: Java and Spring MVC]

                                                                                            +

                                                                                            Delivers the static content and the Internet banking single page application.

                                                                                            +

                                                                                            Single-Page Application

                                                                                            +

                                                                                            [Container: JavaScript and Angular]

                                                                                            +

                                                                                            Provides all of the Internet banking functionality to customers via their web browser.

                                                                                            +

                                                                                            Mobile App

                                                                                            +

                                                                                            [Container: Xamarin]

                                                                                            +

                                                                                            Provides a limited subset of the Internet banking functionality to customers via their mobile device.

                                                                                            +

                                                                                            API Application

                                                                                            +

                                                                                            [Container: Java and Spring MVC]

                                                                                            +

                                                                                            Provides Internet banking functionality via a JSON/HTTPS API.

                                                                                            +

                                                                                            Database

                                                                                            +

                                                                                            [Container: Oracle Database Schema]

                                                                                            +

                                                                                            Stores user registration information, hashed authentication credentials, access logs, etc.

                                                                                            +
                                                                                            Visits bigbank.com/ib using[HTTPS]Delivers to the customer's web browserViews account balances, and makes payments usingViews account balances, and makes payments usingMakes API calls to[JSON/HTTPS]Makes API calls to[JSON/HTTPS]Makes API calls to[XML/HTTPS]Sends e-mails toSends e-mail using Reads from and writes to[SQL/TCP] + + + + + + + + + + + + + + + + + + + + +
                                                                                            \ No newline at end of file diff --git a/e2etests/testdata/txtar/c4-theme/elk/board.exp.json b/e2etests/testdata/txtar/c4-theme/elk/board.exp.json new file mode 100644 index 000000000..d2a3bd3f0 --- /dev/null +++ b/e2etests/testdata/txtar/c4-theme/elk/board.exp.json @@ -0,0 +1,882 @@ +{ + "name": "", + "config": { + "sketch": false, + "themeID": 303, + "darkThemeID": null, + "pad": null, + "center": null, + "layoutEngine": null + }, + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "customer", + "type": "c4-person", + "pos": { + "x": 720, + "y": 12 + }, + "width": 383, + "height": 429, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B2", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with personal bank accounts.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 358, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "internet_banking_system", + "type": "rectangle", + "pos": { + "x": 12, + "y": 693 + }, + "width": 2218, + "height": 1035, + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "transparent", + "stroke": "AA2", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Internet Banking System\n[Software System]", + "fontSize": 28, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 447, + "labelHeight": 125, + "labelPosition": "INSIDE_BOTTOM_LEFT", + "zIndex": 0, + "level": 1 + }, + { + "id": "internet_banking_system.web_app", + "type": "rectangle", + "pos": { + "x": 62, + "y": 743 + }, + "width": 550, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B3", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Web Application\n[Container: Java and Spring MVC]\n\nDelivers the static content and the Internet banking single page application.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 505, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "internet_banking_system.spa", + "type": "rectangle", + "pos": { + "x": 190, + "y": 1078 + }, + "width": 609, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B3", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Single-Page Application\n[Container: JavaScript and Angular]\n\nProvides all of the Internet banking functionality to customers via their web browser.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 564, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "internet_banking_system.mobile_app", + "type": "rectangle", + "pos": { + "x": 819, + "y": 1078 + }, + "width": 707, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B3", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Mobile App\n[Container: Xamarin]\n\nProvides a limited subset of the Internet banking functionality to customers via their mobile device.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 662, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "internet_banking_system.api_app", + "type": "rectangle", + "pos": { + "x": 942, + "y": 1429 + }, + "width": 461, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B3", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## API Application\n[Container: Java and Spring MVC]\n\nProvides Internet banking functionality via a JSON/HTTPS API.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 416, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "internet_banking_system.database", + "type": "rectangle", + "pos": { + "x": 1546, + "y": 1078 + }, + "width": 634, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B4", + "stroke": "B3", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Database\n[Container: Oracle Database Schema]\n\nStores user registration information, hashed authentication credentials, access logs, etc.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 589, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 2 + }, + { + "id": "email_system", + "type": "rectangle", + "pos": { + "x": 1746, + "y": 1930 + }, + "width": 360, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B5", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## E-mail System\n[Software System]\n\nThe internal Microsoft Exchange e-mail system.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 315, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "mainframe", + "type": "rectangle", + "pos": { + "x": 781, + "y": 1930 + }, + "width": 629, + "height": 164, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B5", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Mainframe Banking System\n[Software System]\n\nStores all of the core banking information about customers, accounts, transactions, etc.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N7", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 584, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(customer -> internet_banking_system.web_app)[0]", + "src": "customer", + "srcArrow": "none", + "dst": "internet_banking_system.web_app", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Visits bigbank.com/ib using\n[HTTPS]", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 179, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 797, + "y": 441 + }, + { + "x": 797.3499755859375, + "y": 481 + }, + { + "x": 359.25, + "y": 481 + }, + { + "x": 359.25, + "y": 743 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "internet_banking_system.(web_app -> spa)[0]", + "src": "internet_banking_system.web_app", + "srcArrow": "none", + "dst": "internet_banking_system.spa", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Delivers to the customer's web browser", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 257, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 393, + "y": 907 + }, + { + "x": 393, + "y": 1078 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer -> internet_banking_system.spa)[0]", + "src": "customer", + "srcArrow": "none", + "dst": "internet_banking_system.spa", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Views account balances, and makes payments using", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 340, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 874, + "y": 441 + }, + { + "x": 873.9500122070312, + "y": 531 + }, + { + "x": 652, + "y": 531 + }, + { + "x": 652, + "y": 1078 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer -> internet_banking_system.mobile_app)[0]", + "src": "customer", + "srcArrow": "none", + "dst": "internet_banking_system.mobile_app", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Views account balances, and makes payments using", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 340, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 951, + "y": 441 + }, + { + "x": 950.5499877929688, + "y": 1078 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "internet_banking_system.(spa -> api_app)[0]", + "src": "internet_banking_system.spa", + "srcArrow": "none", + "dst": "internet_banking_system.api_app", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Makes API calls to\n[JSON/HTTPS]", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 116, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 494.5, + "y": 1242 + }, + { + "x": 494.5, + "y": 1389 + }, + { + "x": 1057.25, + "y": 1389 + }, + { + "x": 1057.25, + "y": 1429 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "internet_banking_system.(mobile_app -> api_app)[0]", + "src": "internet_banking_system.mobile_app", + "srcArrow": "none", + "dst": "internet_banking_system.api_app", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Makes API calls to\n[JSON/HTTPS]", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 116, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1172.5, + "y": 1242 + }, + { + "x": 1172.5, + "y": 1429 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(internet_banking_system.api_app -> mainframe)[0]", + "src": "internet_banking_system.api_app", + "srcArrow": "none", + "dst": "mainframe", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Makes API calls to\n[XML/HTTPS]", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 116, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1095.666015625, + "y": 1593 + }, + { + "x": 1095.666015625, + "y": 1930 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer -> email_system)[0]", + "src": "customer", + "srcArrow": "none", + "dst": "email_system", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Sends e-mails to", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 107, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1027, + "y": 441 + }, + { + "x": 1027.1500244140625, + "y": 481 + }, + { + "x": 2303.5, + "y": 481 + }, + { + "x": 2303.5, + "y": 1890 + }, + { + "x": 1986.8330078125, + "y": 1890 + }, + { + "x": 1986.8330078125, + "y": 1930 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(internet_banking_system.api_app -> email_system)[0]", + "src": "internet_banking_system.api_app", + "srcArrow": "none", + "dst": "email_system", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Sends e-mail using", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 123, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1249.3330078125, + "y": 1593 + }, + { + "x": 1249.3330078125, + "y": 1890 + }, + { + "x": 1866.8330078125, + "y": 1890 + }, + { + "x": 1866.8330078125, + "y": 1930 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "internet_banking_system.(database <-> api_app)[0]", + "src": "internet_banking_system.database", + "srcArrow": "triangle", + "dst": "internet_banking_system.api_app", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 5, + "strokeWidth": 2, + "stroke": "AA4", + "borderRadius": 10, + "label": "Reads from and writes to\n[SQL/TCP]", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 163, + "labelHeight": 37, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1863, + "y": 1242 + }, + { + "x": 1863, + "y": 1389 + }, + { + "x": 1287.75, + "y": 1389 + }, + { + "x": 1287.75, + "y": 1429 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + } + ], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg b/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg new file mode 100644 index 000000000..52d5d51f4 --- /dev/null +++ b/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg @@ -0,0 +1,886 @@ +

                                                                                            Personal Banking Customer

                                                                                            +

                                                                                            [person]

                                                                                            +

                                                                                            A customer of the bank, with personal bank accounts.

                                                                                            +

                                                                                            Internet Banking System

                                                                                            +

                                                                                            [Software System]

                                                                                            +

                                                                                            E-mail System

                                                                                            +

                                                                                            [Software System]

                                                                                            +

                                                                                            The internal Microsoft Exchange e-mail system.

                                                                                            +

                                                                                            Mainframe Banking System

                                                                                            +

                                                                                            [Software System]

                                                                                            +

                                                                                            Stores all of the core banking information about customers, accounts, transactions, etc.

                                                                                            +

                                                                                            Web Application

                                                                                            +

                                                                                            [Container: Java and Spring MVC]

                                                                                            +

                                                                                            Delivers the static content and the Internet banking single page application.

                                                                                            +

                                                                                            Single-Page Application

                                                                                            +

                                                                                            [Container: JavaScript and Angular]

                                                                                            +

                                                                                            Provides all of the Internet banking functionality to customers via their web browser.

                                                                                            +

                                                                                            Mobile App

                                                                                            +

                                                                                            [Container: Xamarin]

                                                                                            +

                                                                                            Provides a limited subset of the Internet banking functionality to customers via their mobile device.

                                                                                            +

                                                                                            API Application

                                                                                            +

                                                                                            [Container: Java and Spring MVC]

                                                                                            +

                                                                                            Provides Internet banking functionality via a JSON/HTTPS API.

                                                                                            +

                                                                                            Database

                                                                                            +

                                                                                            [Container: Oracle Database Schema]

                                                                                            +

                                                                                            Stores user registration information, hashed authentication credentials, access logs, etc.

                                                                                            +
                                                                                            Visits bigbank.com/ib using[HTTPS]Delivers to the customer's web browserViews account balances, and makes payments usingViews account balances, and makes payments usingMakes API calls to[JSON/HTTPS]Makes API calls to[JSON/HTTPS]Makes API calls to[XML/HTTPS]Sends e-mails toSends e-mail using Reads from and writes to[SQL/TCP] + + + + + + + + + + + + + + + + + + + + +
                                                                                            \ No newline at end of file diff --git a/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg b/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg index 185e2692f..ad52a49f7 100644 --- a/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/extended-ascii/dagre/sketch.exp.svg @@ -829,10 +829,10 @@ .d2-1707443195 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            ÇéþüðæØÅßñò

                                                                                            -

                                                                                            òØõùßÍÿåÆ

                                                                                            -

                                                                                            çÆÐÞ©ßþúí

                                                                                            -

                                                                                            ÉáøÿÑö

                                                                                            +

                                                                                            ÇéþüðæØÅßñò

                                                                                            +

                                                                                            òØõùßÍÿåÆ

                                                                                            +

                                                                                            çÆÐÞ©ßþúí

                                                                                            +

                                                                                            ÉáøÿÑö

                                                                                            diff --git a/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg b/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg index 42532ff49..a567f10f4 100644 --- a/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/extended-ascii/elk/sketch.exp.svg @@ -829,10 +829,10 @@ .d2-1588638235 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            ÇéþüðæØÅßñò

                                                                                            -

                                                                                            òØõùßÍÿåÆ

                                                                                            -

                                                                                            çÆÐÞ©ßþúí

                                                                                            -

                                                                                            ÉáøÿÑö

                                                                                            +

                                                                                            ÇéþüðæØÅßñò

                                                                                            +

                                                                                            òØõùßÍÿåÆ

                                                                                            +

                                                                                            çÆÐÞ©ßþúí

                                                                                            +

                                                                                            ÉáøÿÑö

                                                                                            diff --git a/e2etests/testdata/txtar/md-label/dagre/sketch.exp.svg b/e2etests/testdata/txtar/md-label/dagre/sketch.exp.svg index 66822ca58..ec78bb5e4 100644 --- a/e2etests/testdata/txtar/md-label/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/md-label/dagre/sketch.exp.svg @@ -829,87 +829,87 @@ .d2-1825138808 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world
                                                                                            diff --git a/e2etests/testdata/txtar/md-label/elk/sketch.exp.svg b/e2etests/testdata/txtar/md-label/elk/sketch.exp.svg index 14c2e2e9c..4f349e4dd 100644 --- a/e2etests/testdata/txtar/md-label/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/md-label/elk/sketch.exp.svg @@ -829,87 +829,87 @@ .d2-1030734791 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world

                                                                                            blah blah

                                                                                            -

                                                                                            hello

                                                                                            +

                                                                                            hello

                                                                                            • world
                                                                                            diff --git a/e2etests/testdata/txtar/md-tables/dagre/sketch.exp.svg b/e2etests/testdata/txtar/md-tables/dagre/sketch.exp.svg index b53ade6f9..1ab58f720 100644 --- a/e2etests/testdata/txtar/md-tables/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/md-tables/dagre/sketch.exp.svg @@ -842,7 +842,7 @@ .d2-1180799665 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                                                                            +
                                                                                            @@ -872,7 +872,7 @@
                                                                                            Month
                                                                                            -
                                                                                            +
                                                                                            @@ -890,7 +890,7 @@
                                                                                            Status
                                                                                            -
                                                                                            +
                                                                                            @@ -934,7 +934,7 @@
                                                                                            Metric
                                                                                            Financial Overview -System HealthProject TrackingTeam Analytics
                                                                                            +System HealthProject TrackingTeam Analytics
                                                                                            @@ -964,7 +964,7 @@
                                                                                            Month
                                                                                            -
                                                                                            +
                                                                                            @@ -988,7 +988,7 @@
                                                                                            Quarter
                                                                                            -
                                                                                            +
                                                                                            @@ -1018,7 +1018,7 @@
                                                                                            Service
                                                                                            -
                                                                                            +
                                                                                            @@ -1048,7 +1048,7 @@
                                                                                            Metric
                                                                                            -
                                                                                            +
                                                                                            @@ -1082,7 +1082,7 @@
                                                                                            Project
                                                                                            -
                                                                                            +
                                                                                            @@ -1112,7 +1112,7 @@
                                                                                            Risk ID
                                                                                            -
                                                                                            +
                                                                                            diff --git a/e2etests/testdata/txtar/md-tables/elk/sketch.exp.svg b/e2etests/testdata/txtar/md-tables/elk/sketch.exp.svg index eec052c0d..1665ba5f7 100644 --- a/e2etests/testdata/txtar/md-tables/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/md-tables/elk/sketch.exp.svg @@ -842,7 +842,7 @@ .d2-3839636311 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -
                                                                                            Sprint
                                                                                            +
                                                                                            @@ -872,7 +872,7 @@
                                                                                            Month
                                                                                            -
                                                                                            +
                                                                                            @@ -890,7 +890,7 @@
                                                                                            Status
                                                                                            -
                                                                                            +
                                                                                            @@ -934,7 +934,7 @@
                                                                                            Metric
                                                                                            Financial Overview -System HealthProject TrackingTeam Analytics
                                                                                            +System HealthProject TrackingTeam Analytics
                                                                                            @@ -964,7 +964,7 @@
                                                                                            Month
                                                                                            -
                                                                                            +
                                                                                            @@ -988,7 +988,7 @@
                                                                                            Quarter
                                                                                            -
                                                                                            +
                                                                                            @@ -1018,7 +1018,7 @@
                                                                                            Service
                                                                                            -
                                                                                            +
                                                                                            @@ -1048,7 +1048,7 @@
                                                                                            Metric
                                                                                            -
                                                                                            +
                                                                                            @@ -1082,7 +1082,7 @@
                                                                                            Project
                                                                                            -
                                                                                            +
                                                                                            @@ -1112,7 +1112,7 @@
                                                                                            Risk ID
                                                                                            -
                                                                                            +
                                                                                            diff --git a/e2etests/testdata/txtar/sequence-diagram-note-md/dagre/sketch.exp.svg b/e2etests/testdata/txtar/sequence-diagram-note-md/dagre/sketch.exp.svg index d8d19fe2e..9ebd14667 100644 --- a/e2etests/testdata/txtar/sequence-diagram-note-md/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/sequence-diagram-note-md/dagre/sketch.exp.svg @@ -850,7 +850,7 @@ .d2-2097271006 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -xy hello

                                                                                            A man who fishes for marlin in ponds

                                                                                            +xy hello

                                                                                            A man who fishes for marlin in ponds

                                                                                            • ...dramatic pause
                                                                                            diff --git a/e2etests/testdata/txtar/sequence-diagram-note-md/elk/sketch.exp.svg b/e2etests/testdata/txtar/sequence-diagram-note-md/elk/sketch.exp.svg index d8d19fe2e..9ebd14667 100644 --- a/e2etests/testdata/txtar/sequence-diagram-note-md/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/sequence-diagram-note-md/elk/sketch.exp.svg @@ -850,7 +850,7 @@ .d2-2097271006 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -xy hello

                                                                                            A man who fishes for marlin in ponds

                                                                                            +xy hello

                                                                                            A man who fishes for marlin in ponds

                                                                                            • ...dramatic pause
                                                                                            diff --git a/e2etests/testdata/txtar/sql-icon/dagre/sketch.exp.svg b/e2etests/testdata/txtar/sql-icon/dagre/sketch.exp.svg index 0d63b1149..706b867d0 100644 --- a/e2etests/testdata/txtar/sql-icon/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/sql-icon/dagre/sketch.exp.svg @@ -843,9 +843,9 @@ .d2-826738456 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -withoutwithtableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            +withoutwithtableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            You will live a long, healthy, happy life and make bags of money.

                                                                                            -
                                                                                            tableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            +
                                                                                            tableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            You will live a long, healthy, happy life and make bags of money.

                                                                                            diff --git a/e2etests/testdata/txtar/sql-icon/elk/sketch.exp.svg b/e2etests/testdata/txtar/sql-icon/elk/sketch.exp.svg index 39b28c539..2044c42c1 100644 --- a/e2etests/testdata/txtar/sql-icon/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/sql-icon/elk/sketch.exp.svg @@ -843,9 +843,9 @@ .d2-3895587399 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -withoutwithtableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            +withoutwithtableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            You will live a long, healthy, happy life and make bags of money.

                                                                                            -
                                                                                            tableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            +
                                                                                            tableExabclassEx+ab:= 1a := 1

                                                                                            This is for all ill-treated fellows

                                                                                            You will live a long, healthy, happy life and make bags of money.

                                                                                            diff --git a/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg b/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg index 413954aa5..b58bc204d 100644 --- a/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/unicode/dagre/sketch.exp.svg @@ -829,18 +829,18 @@ .d2-2855145504 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            ■ foo bar

                                                                                            -

                                                                                            □ foo bar

                                                                                            -

                                                                                            ● foo bar

                                                                                            -

                                                                                            ○ foo bar

                                                                                            -

                                                                                            ◆ foo bar

                                                                                            -

                                                                                            ◇ foo bar

                                                                                            -

                                                                                            ▲ foo bar

                                                                                            -

                                                                                            △ foo bar

                                                                                            -

                                                                                            ▼ foo bar

                                                                                            -

                                                                                            ▽ foo bar

                                                                                            -

                                                                                            ※ foo bar

                                                                                            -

                                                                                            ◎ foo bar

                                                                                            +

                                                                                            ■ foo bar

                                                                                            +

                                                                                            □ foo bar

                                                                                            +

                                                                                            ● foo bar

                                                                                            +

                                                                                            ○ foo bar

                                                                                            +

                                                                                            ◆ foo bar

                                                                                            +

                                                                                            ◇ foo bar

                                                                                            +

                                                                                            ▲ foo bar

                                                                                            +

                                                                                            △ foo bar

                                                                                            +

                                                                                            ▼ foo bar

                                                                                            +

                                                                                            ▽ foo bar

                                                                                            +

                                                                                            ※ foo bar

                                                                                            +

                                                                                            ◎ foo bar

                                                                                            diff --git a/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg b/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg index 0b2122014..fb1d9c406 100644 --- a/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/unicode/elk/sketch.exp.svg @@ -829,18 +829,18 @@ .d2-2037265600 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            ■ foo bar

                                                                                            -

                                                                                            □ foo bar

                                                                                            -

                                                                                            ● foo bar

                                                                                            -

                                                                                            ○ foo bar

                                                                                            -

                                                                                            ◆ foo bar

                                                                                            -

                                                                                            ◇ foo bar

                                                                                            -

                                                                                            ▲ foo bar

                                                                                            -

                                                                                            △ foo bar

                                                                                            -

                                                                                            ▼ foo bar

                                                                                            -

                                                                                            ▽ foo bar

                                                                                            -

                                                                                            ※ foo bar

                                                                                            -

                                                                                            ◎ foo bar

                                                                                            +

                                                                                            ■ foo bar

                                                                                            +

                                                                                            □ foo bar

                                                                                            +

                                                                                            ● foo bar

                                                                                            +

                                                                                            ○ foo bar

                                                                                            +

                                                                                            ◆ foo bar

                                                                                            +

                                                                                            ◇ foo bar

                                                                                            +

                                                                                            ▲ foo bar

                                                                                            +

                                                                                            △ foo bar

                                                                                            +

                                                                                            ▼ foo bar

                                                                                            +

                                                                                            ▽ foo bar

                                                                                            +

                                                                                            ※ foo bar

                                                                                            +

                                                                                            ◎ foo bar

                                                                                            diff --git a/e2etests/testdata/txtar/var_in_markdown/dagre/sketch.exp.svg b/e2etests/testdata/txtar/var_in_markdown/dagre/sketch.exp.svg index 6423934a4..784187af7 100644 --- a/e2etests/testdata/txtar/var_in_markdown/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/var_in_markdown/dagre/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-2758569173 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -Kube

                                                                                            Kube is a service

                                                                                            +Kube

                                                                                            Kube is a service

                                                                                            Let ${y} be ${x}
                                                                                             
                                                                                            ba diff --git a/e2etests/testdata/txtar/var_in_markdown/elk/sketch.exp.svg b/e2etests/testdata/txtar/var_in_markdown/elk/sketch.exp.svg index 8bb32fde4..c1f320e40 100644 --- a/e2etests/testdata/txtar/var_in_markdown/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/var_in_markdown/elk/sketch.exp.svg @@ -843,7 +843,7 @@ .d2-3193381320 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -Kube

                                                                                            Kube is a service

                                                                                            +Kube

                                                                                            Kube is a service

                                                                                            Let ${y} be ${x}
                                                                                             
                                                                                            ba diff --git a/e2etests/testdata/unicode/chinese/dagre/sketch.exp.svg b/e2etests/testdata/unicode/chinese/dagre/sketch.exp.svg index 931f8148f..12fccda37 100644 --- a/e2etests/testdata/unicode/chinese/dagre/sketch.exp.svg +++ b/e2etests/testdata/unicode/chinese/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-2865261911 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            床前明月光,

                                                                                            +

                                                                                            床前明月光,

                                                                                            疑是地上霜。

                                                                                            举头望明月,

                                                                                            低头思故乡。

                                                                                            diff --git a/e2etests/testdata/unicode/chinese/elk/sketch.exp.svg b/e2etests/testdata/unicode/chinese/elk/sketch.exp.svg index 9bdd11926..dd1d64083 100644 --- a/e2etests/testdata/unicode/chinese/elk/sketch.exp.svg +++ b/e2etests/testdata/unicode/chinese/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-1123938073 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -

                                                                                            床前明月光,

                                                                                            +

                                                                                            床前明月光,

                                                                                            疑是地上霜。

                                                                                            举头望明月,

                                                                                            低头思故乡。

                                                                                            diff --git a/e2etests/testdata/unicode/mixed-language/dagre/sketch.exp.svg b/e2etests/testdata/unicode/mixed-language/dagre/sketch.exp.svg index fb370289e..241e39a4c 100644 --- a/e2etests/testdata/unicode/mixed-language/dagre/sketch.exp.svg +++ b/e2etests/testdata/unicode/mixed-language/dagre/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-2872220387 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -有一个叫做夏天的季节。 ある季節、夏という名前がついています。한 계절, 여름이란 이름이 있습니다.夏天的时候,天气非常热,人们总是流着汗。

                                                                                            夏になると、とても暑くて、人々は汗を流しています。

                                                                                            +有一个叫做夏天的季节。 ある季節、夏という名前がついています。한 계절, 여름이란 이름이 있습니다.夏天的时候,天气非常热,人们总是流着汗。

                                                                                            夏になると、とても暑くて、人々は汗を流しています。

                                                                                            여름에는 매우 더워서 사람들은 땀을 흘립니다.

                                                                                            diff --git a/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg b/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg index f474a9d38..cc489394d 100644 --- a/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg +++ b/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg @@ -836,7 +836,7 @@ .d2-40175756 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -有一个叫做夏天的季节。 ある季節、夏という名前がついています。한 계절, 여름이란 이름이 있습니다.夏天的时候,天气非常热,人们总是流着汗。

                                                                                            夏になると、とても暑くて、人々は汗を流しています。

                                                                                            +有一个叫做夏天的季节。 ある季節、夏という名前がついています。한 계절, 여름이란 이름이 있습니다.夏天的时候,天气非常热,人们总是流着汗。

                                                                                            夏になると、とても暑くて、人々は汗を流しています。

                                                                                            여름에는 매우 더워서 사람들은 땀을 흘립니다.

                                                                                            diff --git a/e2etests/txtar.txt b/e2etests/txtar.txt index 85b1e141e..ec6be2ce9 100644 --- a/e2etests/txtar.txt +++ b/e2etests/txtar.txt @@ -1026,3 +1026,104 @@ c4person -> styling.c4styled -> styling.c4sized style.font-color: white style.stroke-width: 1 } + +-- c4-theme -- + +vars: { + d2-config: { + theme-id: 303 + } +} + +customer: |md + ## Personal Banking Customer + [person] + + A customer of the bank, with personal bank accounts. +| { + shape: c4-person +} + +internet_banking_system: |md + ## Internet Banking System + [Software System] +| { + shape: rectangle + label.near: bottom-left +} + +internet_banking_system.web_app: |md + ## Web Application + [Container: Java and Spring MVC] + + Delivers the static content and the Internet banking single page application. +| { + shape: rectangle +} + +internet_banking_system.spa: |md + ## Single-Page Application + [Container: JavaScript and Angular] + + Provides all of the Internet banking functionality to customers via their web browser. +| { + shape: rectangle +} + +internet_banking_system.mobile_app: |md + ## Mobile App + [Container: Xamarin] + + Provides a limited subset of the Internet banking functionality to customers via their mobile device. +| { + shape: rectangle +} + +internet_banking_system.api_app: |md + ## API Application + [Container: Java and Spring MVC] + + Provides Internet banking functionality via a JSON/HTTPS API. +| { + shape: rectangle +} + +internet_banking_system.database: |md + ## Database + [Container: Oracle Database Schema] + + Stores user registration information, hashed authentication credentials, access logs, etc. +| { + shape: rectangle +} + +email_system: |md + ## E-mail System + [Software System] + + The internal Microsoft Exchange e-mail system. +| { + shape: rectangle +} + +mainframe: |md + ## Mainframe Banking System + [Software System] + + Stores all of the core banking information about customers, accounts, transactions, etc. +| { + shape: rectangle +} + +# Connections +customer -> internet_banking_system.web_app: "Visits bigbank.com/ib using\n[HTTPS]" +internet_banking_system.web_app -> internet_banking_system.spa: "Delivers to the customer's web browser" +customer -> internet_banking_system.spa: "Views account balances, and makes payments using" +customer -> internet_banking_system.mobile_app: "Views account balances, and makes payments using" +internet_banking_system.spa -> internet_banking_system.api_app: "Makes API calls to\n[JSON/HTTPS]" +internet_banking_system.mobile_app -> internet_banking_system.api_app: "Makes API calls to\n[JSON/HTTPS]" +internet_banking_system.api_app -> mainframe: "Makes API calls to\n[XML/HTTPS]" +customer -> email_system: "Sends e-mails to" +internet_banking_system.api_app -> email_system: "Sends e-mail using" +internet_banking_system.database <-> internet_banking_system.api_app: "Reads from and writes to\n[SQL/TCP]" +
                                                                                            Sprint