diff options
Diffstat (limited to '_includes/functions/get_value.html')
-rw-r--r-- | _includes/functions/get_value.html | 50 |
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 -%} |