Not a Template Engine

This is not a template engine, but sugar to implicitly call write!(…) like in PHP, ASP, and everything you hate. The only difference is that the output gets XML escaped automatically unless opted-out explicitly.

E.g.

No new traits are introduced, instead using #[derive(Nate)] works by implementing fmt::Display. This also makes nesting of NaTE templates possible.

A more complex example would be:

Inside of a {% code block %} you can write any and all rust code.

Values in {{ value blocks }} are printed XML escaped.

Values in {{{ raw blocks }}} are printed verbatim.

For values in {{{{ debug blocks }}}} their debug message is printed as in "{:?}".

For values in {{{{{ verbose blocks }}}}} their debug message is printed verbose as in "{:#?}".

Using hyphens - at the start/end of a block, whitespaces before/after the block are trimmed.