-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
Block Diagram (WIP)
Syntax suggestion for layout (paperware)
block
block1["Block 1"]
block
block1["Block 1"]
block2["Block 2"]
block
columns 1
block1["Block 1"]
block2["Block 2"]
or
block
direction TB
block1["Block 1"]
block2["Block 2"]
block
direction TB
block1["Block 1"]
block
block2["Block 2"]
block3["Block 3"]
end %% End the compound block
This differs from regular edges as the arrow is really a block.
block
direction LR
block1["Block 1"]
<=1,1=>
block2["Block 2"]
or (equivalent)
block
direction LR
block1["Block 1"] <=1,1=> block2["Block 2"]
block
direction TB
block1["Block 1"]
<=1,1=>
block2["Block 2"]
Amount of columns are automatically calculated. So specifying it is redundant unless you specifically want to set to a value. This could for instance be the case where you want a block to take half of the space. The default state is columns auto.
block-beta
block
block app
columns auto %% or
columns 5
end
end
block-beta
block app["Application"]
direction LR
app --> client
app --> admin
client <--> admin
client["Client Application"]
admin["Admin Application"]
end
alt
block-beta
block app["Application"]
app
<=0,2=>
block
client <= 1,1 => admin
end
direction=TB

direction=LR

Direction is inspired by dot language as well as flex-direction attribute.
Layout direction for nested blocks must be switched automatically
block-beta
direction TB
block row1
col1
col2
col3
end
block row2
col1
col2
col3
end
block row3
col1
col2
col3
end
The same graph with direction LR
A block with a width attached will use multiple blocks. For instance:
block
A:2 B
If you have discrepancies the missing blocks are empty. For instance in the following block diagram you have full width block followed with another row with one block, B, using 2/3 of the width:
block
direction TB
A
block
columns 3
B:2
end
Here you can se this rendered:
The default width for a block is 1. In the example below A will use half of the space.
block
columns 2
A