自动分割
可以通过相对位置把一堆节点放置在一起;最简单的相对摆放方式应该是使用auto-split
特性。
- 两个节点之间的
|
会把节点分成两部分,然后水平放置在一起 - 同样,使用
||
(两个竖线)可以把节点分成两部分,然后把第二个节点放置在第一个节点的下一行。 - 如果
|
连接的两个节点中有一个是一个空格组成,那么就会生成一个不可见的节点 - 如果
|
连接的两个节点中有一个是超过一个空格组成,那么就会生成一个空节点。 - 开头和结尾的空格和在中间使用空格的效果一样;例如
[ | ..
会在开头处创建一个不可见的节点;[ | ..
(两个空格)会在开头处创建一个不可见节点,尾部也是一样。
下面是一些例子:
[ A | B | C ] +---+---+---+
| A | B | C |
+---+---+---+
[ A | B || C ] +---+---+
| A | B |
+---+---+
| C |
+---+
[ A | B ||
C | D | E ||
F ]
+---+---+
| A | B |
+---+---+---+
| C | D | E |
+---+---+---+
| F |
+---+
下面是一个头部和尾部有空节点的例子:
[ | C | ]
[ | D | ]
[ | E | ]
[ | F | ]
[|G|]
[ |H| |]
[ C.2 ] -> [ A1 ]
[ D.2 ] -> [ A2 ]
[ E.2 ] -> [ A3 ]
[ F.2 ] -> [ A4 ]
[ G.2 ] -> [ A5 ]
[ H.3 ] -> [ A6 ]
+--+---+--+ +----+
| | C | | --> | A1 |
+--+---+--+ +----+
|---+--+ +----+
| D | | --> | A2 |
---+--+ +----+
+--+---+ +----+
| | E | --> | A3 |
+--+---+ +----+
|---+ +----+
| F | --> | A4 |
---+ +----+
|---+ +----+
| G | --> | A5 |
---+ +----+
+--+---+ +----+
| | H | --> | A6 |
+--+---+ +----+
查看属性这一章查看如何在自动分割模式下面使用私有属性。要引用一个自动分割的节点,你需要知道它的basename和它分割位置的信息;basename可以通过属性来指定,如果没有指定basename,那么就会自动生成一个basename,这个basename是所有节点名字串联起来的字符串(没有空格和下划线)如果这个basename已经存在过,那么就会使用一个连接线加上一个数字,从1开始:
[ A | B | C ] # basename is: ABC
[ A | B | C ] # basename is: ABC-1
在下面这个例子里面,第一个自动分割模式的节点的名字是"ABC"
,因此第二个自动分割的节点组的名字是ABC-1
:
[ A | B | C ] # basename: ABC
[ A | B | C ] # basename: ABC-1
[ C | D | E ] # basename: CDE
[ C | D | E ] # basename: CDE-2
但是这个自动增加的数字是全局唯一的,因此第三个和第四个自动分割的节点的basename是CDE
和CED-2
而不是CDE-1
。
自动分割节点组里面的节点可以通过数字和一个点号.
引用;下面是一个例子:
[ A | B | C ]
[ 1 ] -> [ ABC.2 ]
+---+
| 1 |
+---+
|
|
v
+---+---+----+
| A | B | C |
+---+---+----+
下面是一个更复杂一点的例子:
[ A|B|C ] { basename: A } [ 1 ] -> [ A.2 ]
[ A|B|C ] [ 2 ] -> [ ABC-1.2 ]
渲染之后效果如下:
+---+
| 2 |
+---+
|
|
v
+---+---+----+
| A | B | C |
+---+---+----+
+---+
| 1 |
+---+
|
|
v
+---+---+----+
| A | B | C |
+---+---+----+