From e241601f7cdba1b2f01aa43991911078636510b1 Mon Sep 17 00:00:00 2001 From: welpo Date: Sun, 3 Sep 2023 03:26:36 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(settings):=20handle=20non-bool?= =?UTF-8?q?ean=20values=20in=20hierarchy=20macro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/macros/settings.html | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/templates/macros/settings.html b/templates/macros/settings.html index 0aa3afdd..60ec24f3 100644 --- a/templates/macros/settings.html +++ b/templates/macros/settings.html @@ -1,4 +1,4 @@ -{# +{# Evaluates the priority of a particular setting across different scopes. The priority is as follows: page > section > config. @@ -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 -%}