You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
789 B
33 lines
789 B
{% macro attrs(map, exclude=[]) %}
|
|
{% for k, v in map.iteritems() %}
|
|
{%- if v is mapping %}
|
|
{{ mapdict(k,v) | indent(width=2)}}
|
|
{%- else %}
|
|
{{ eval_value(k,v) }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endmacro %}
|
|
|
|
{% macro mapdict(key,dictionary) %}
|
|
{{ key }} = {
|
|
{% for i, w in dictionary.iteritems() %}
|
|
{%- if w is mapping %}
|
|
{{ mapdict(i,w) | indent(width=2)}}
|
|
{%- else %}
|
|
{{ eval_value(i,w) }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
}
|
|
{% endmacro %}
|
|
|
|
{% macro eval_value(key,val) %}
|
|
{%- if val is iterable and val is not string %}
|
|
{{ key }} = [ "{{ val | map('quote') | join('", "') }}" ]
|
|
{%- elif val is match('^\d+(ms|s|h|d)?$') %}
|
|
{{ key }} = {{ val }}
|
|
{%- elif val | bool == False and val | string == "false" %}
|
|
{{ key }} = {{ val }}
|
|
{%- else %}
|
|
{{ key }} = "{{ val | quote }}"
|
|
{%- endif %}
|
|
{% endmacro %}
|
|
|