Syntax suggestion for layout (paperware)
Simple block
Blocks next to each other
Blocks in a column
or
Different widths
Block Arrows
This differs from regular edges as the arrow is really a block.
or (equivalent)
Vertical arrow
Edges
The edges works as they do in flowcharts. From one node to the other based on the id. There will be no auto-layout but a a line from one node to the other.
Would render like this:
If nodes do not have overlapping the arrow would be between their centers.
If nodes overlap then arrows must connect middles of overlapping parts
Combined edges / Block arrows
In some cases an edge can take size of the whole block
Auto columns
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
.
Layout direction
alt
direction=TB
direction=LR
Direction is inspired by dot
language as well as flex-direction
attribute.
Layout direction auto-change
Layout direction for nested blocks must be switched automatically
The same graph with direction LR
Width
A block with a width attached will use multiple blocks. For instance:
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:
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.
Space
Sometimes you might want to insert an empty block that still use space. This can be facilitated using a space block. as per the following example:
In the rendered image you can see the nameless blocks with a dashed border, in a real diagram they would be invisisble.
Padding and border
We need an intuitive way to specify if a block should have padding or not and it should have a border...
classDef
These statements should work in the same way as in flowcharts