BlockTemplate is a class that implements a template engine based on the concept of blocks. The template files do not define looping logic, only variables or parameters to be replaced, to avoid using programming concepts that are not easy for designers to understand. The class supports event driven callback functions for customizing the template engine behavior.