con2 / emrichen

A Template engine for YAML & JSON
MIT License
107 stars 11 forks source link

Nested templating variable precedence #67

Open Sup3rGeo opened 1 year ago

Sup3rGeo commented 1 year ago

Hi,

Considering a template like

# generic.yaml
!Defaults
name: Unknown name
greeting: Unknown greeting
---
phrase: !Format "{greeting} {name}"

Which is templated once, with results as expected (phrase: Hello Mark):

# hello_mark.yaml
!With
template: generic.yaml
vars:
    name: Mark
    greeting: Hello

and then another template on top of the previous one

# hello_john.yaml
!With
template: hello_mark.yaml
vars:
    name: John

I expected it to result in phrase: Hello John but rather I got still phrase: Hello Mark. So it seems that the first (lower level) variables within the !With tag cannot be overriden by higher level !With templates.

Is this by design? Thanks!