Jinja2 from the engine up
The same engine powers Flask pages, Ansible playbooks and static sites. Here is Jinja2 learned from the engine out - delimiters, autoescaping, inheritance and the Environment - with every concept run by hand, coming from the JVM.