Keats / tera

A template engine for Rust based on Jinja2/Django
http://keats.github.io/tera/
MIT License
3.36k stars 280 forks source link

`default` filter: make the `value` optionnal and add `d` alias #907

Open nevermille opened 3 months ago

nevermille commented 3 months ago

I have to manage lots of templates where I have to apply the default filter on every single variable. Today, I need to write |default(value=""). I won't ask for an auto-default because it already was discussed before, but would it be possible to make the filter more like what's in jinja to speed up the process?

Let's use this basic call as an example :

// Returns "Hello !"
Tera::one_off("Hello {{ name|default(value=\"\") }}!", &Context::default(), false);

First, make the value parameter optional and return an empty string if not present:

// Returns "Hello !"
Tera::one_off("Hello {{ name|default }}!", &Context::default(), false);

Second, add the d alias:

// Returns "Hello !"
Tera::one_off("Hello {{ name|d }}!", &Context::default(), false);
Keats commented 3 months ago

v2 will allow you to do {{ name or "" }}, I don't think we'll change the default filter until then