Lihata cheatsheet

Canonical form: {type:name}={content};
Escaping is required for: \ : ; { } = / and newlines
Escaping in te braces required only for }
Comments: lines starting with #
Nesting nodes: li, ha, and ta can contain any other node; the single root node of the tree should be a li or ha or ta.

Node types

te: text

Text is usually implicit. Examples:
	key = value;
	key name = space is allowed on both sides;
	te:key = {value with special characters like \ : ; };
	value;
Child on path: not possible.

li: list

Ordered list of nodes.
	li:name {
		key=value;
		value;
	}
Child on path: num, name: or name:num

ha: hash

Hash by name of nodes; anonymous node means empty name, only one is allowed per hash.
	ha:name {
		key1=value1;
		key2=value2;
	}
Child on path: name

ta: table

A list (rows) of fixed-size-lists (cells); children: implicit li instead of implicit te.
	# table with 2 rows and 4 colums:
	ta:name {
		{cel11; cell12; cell13; cell14}
		{cel21; cell22; cell23; cell24}
	}
Child on path: row/col; both row and col has the same format as list paths.

sy: symlink

Node symlinking another node in the tree. Can point to anothe sy.
	sy:name1 = ../relative_path/to/node;
	sy:name2 = /absolute_path/to/node;
Child on path: depends on link target.