Templite is the template engine behind <TextField>, and it stays small on purpose. No separate language to learn. Every tag compiles straight down to PHP, and the compiled file gets cached, so parsing only happens once per change, not once per request.
A variable prints with curly braces: {title}. A flow loops with an "in" clause: {item in $articles} ... {end}. "item" is just a prefix you pick to avoid clashing with other loops on the same page; inside the loop, each field becomes {item_title}, {item_date}, and so on. Every item also gets an automatic {item_id}, its zero-based position in the flow.
Conditions read like plain PHP: {if $count > 3} ... {elseif $count == 0} ... {else} ... {end}. The condition is evaluated as real PHP under the hood, so any expression you'd write in a normal if statement works here too, function calls included.
Two more tags round it out. {include 'themes/mytheme/header'} pulls in another template file, which is how a header and footer end up shared across pages. And {?any php here} drops into raw PHP for the rare case where a tag isn't enough, useful for a one-off calculation you don't want to shove into a controller file just to print a single value.
Since everything compiles to a plain .php file under core/tmp/, you can open a compiled template and read exactly what your tags turned into. Honestly, that's often the fastest way to debug a loop that isn't behaving: skip the theory and go look at the generated foreach.