I have been using template toolkit for extending an existing domain specific language(verilog) for over 3 years now. While overall I am happy with it, the major irritant is that
I can only recommend Text::Xslate here. It is better than TT in every way and beats out most of the competition as well. And lastly, it fits all your requirements. Literally. All of them.
It is even proven in practice, as it is used by one of the Top 100 websites worldwide and one of the Top 10 websites in Japan: Livedoor
Xslate in comparison to TT:
Two things to note for your special case:
syntax => 'TTerse'
to the constructor to get a syntax that's designed to be as close to TT as possible.type => 'text'
to the constructor to disable html_escape
interpolation.