This package implements a template engine based on block replacing.
It can process a template with blocks delimited by named marks.
The class supports several types of blocks that represent template variables to be replaced, nested blocks, iterative blocks and blocks defined in separate template files.
The processed template data is returned as a string.