summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_includes/functions/get_value.html50
1 files changed, 30 insertions, 20 deletions
diff --git a/_includes/functions/get_value.html b/_includes/functions/get_value.html
index bbd1815..6d9ac81 100644
--- a/_includes/functions/get_value.html
+++ b/_includes/functions/get_value.html
@@ -2,31 +2,41 @@
{%- assign name = include.params.name -%}
{%- endif -%}
+{%- assign return = nil -%}
+
{%- assign keys = name | split:'.' -%}
{%- assign name = keys.first -%}
+{%- assign keys = keys | shift -%}
-{%- if page[name] != nil -%}
- {%- assign return = page[name] -%}
-{%- elsif site[name] != nil -%}
- {%- assign return = site[name] -%}
-{%- elsif site.data[name] != nil -%}
- {%- assign return = site.data[name] -%}
-{%- elsif site.defaults[page.layout][name] != nil -%}
- {%- assign return = site.defaults[page.layout][name] -%}
-{%- elsif site.data.defaults[page.layout][name] != nil -%}
- {%- assign return = site.data.defaults[page.layout][name] -%}
-{%- elsif layout[name] != nil -%}
- {%- assign return = layout[name] -%}
-{%- else -%}
- {%- assign return = include.params.default -%}
-{%- endif -%}
+{%- for step in (1..7) -%}
-{%- assign keys = keys | shift -%}
-{%- for key in keys -%}
- {%- assign return = return[key] -%}
- {%- if return == nil -%}
- {%- assign return = include.params.default -%}
+ {%- case step -%}
+ {%- when 1 -%}
+ {%- assign return = page[name] -%}
+ {%- when 2 -%}
+ {%- assign return = site[name] -%}
+ {%- when 3 -%}
+ {%- assign return = site.data[name] -%}
+ {%- when 4 -%}
+ {%- assign return = site.defaults[page.layout][name] -%}
+ {%- when 5 -%}
+ {%- assign return = site.data.defaults[page.layout][name] -%}
+ {%- when 6 -%}
+ {%- assign return = layout[name] -%}
+ {%- else -%}
+ {%- assign return = include.params.default -%}
+ {%- endcase -%}
+
+ {%- for key in keys -%}
+ {%- assign return = return[key] -%}
+ {%- if return == nil -%}
+ {%- break -%}
+ {%- endif -%}
+ {%- endfor -%}
+
+ {%- if return != nil -%}
{%- break -%}
{%- endif -%}
+
{%- endfor -%}