feat(settings): handle non-boolean values in hierarchy macro

This commit is contained in:
welpo 2023-09-03 03:26:36 +02:00
parent ab4b523f9c
commit e241601f7c
No known key found for this signature in database
GPG key ID: A2F978CF4EC1F5A6

View file

@ -9,7 +9,7 @@ Parameters:
- default_global_value: The setting's default value.
#}
{% macro evaluate_setting_priority(setting, page) %}
{% macro evaluate_setting_priority(setting, page, default_global_value="") %}
{#- Retrieve last ancestor to determine current section, if applicable -#}
{%- if page -%}
@ -18,19 +18,16 @@ Parameters:
{%- endif -%}
{%- set priority_order = [
page.extra[setting] | default(value=""),
current_section.extra[setting] | default(value=""),
page.extra[setting] | default(value=default_global_value),
current_section.extra[setting] | default(value=default_global_value),
config.extra[setting] | default(value=default_global_value)
] -%}
{%- set output = "false" -%}
{%- set output = default_global_value -%}
{%- for value in priority_order -%}
{%- if value == true -%}
{%- set_global output = "true" -%}
{%- break -%}
{%- elif value == false -%}
{%- set_global output = "false" -%}
{%- if value != default_global_value -%}
{%- set_global output = value -%}
{%- break -%}
{%- endif -%}
{%- endfor -%}