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 -%}