Попробуйте nunjucks -
https://mozilla.github.io/nunjucks/
1. Для таких вещей в нем есть macro:
macro allows you to define reusable chunks of content. It is similar to a function in a programming language.
2. Можно использовать выражения в шаблонах (хотя мне в handlebars они тоже есть вроде).