some greatest hits of templater design failures:
- there is no way to separate out reusable chunks of markup
- there is a way, but not across multiple files
- there is a way, but some subset of the functionality suddenly isn't available to you inside said chunk
- there is a way, and the functionality is available, but the syntax needed to invoke it is different from if it were inside of a template directly
- there is a way, and the functionality works the same, but you cannot pass arguments into the reusable chunk
- there is a way, and you can pass in arguments, but not *all* arguments, only certain kinds of values
- poorly-defined scoping rules for inline code
- scoping rules for inline code that *change based on the position in the template*
- some things are always global and some things are always local for historical reasons, and this makes certain things impossible to express
- a personal 'favourite': safe string interpolation turning into unsafe string interpolation (read: a vulnerability) whenever you accidentally add or forget a single bracket that looks exactly the same as the others