fix: get value from site config incorrectly

When the value is stored in a dictionary and the value isn't
presented in front matter, the get_value function can not get
value from the site config instead.
This commit is contained in:
jeffreytse 2021-06-25 14:13:00 +08:00
parent 0a863ba18a
commit 245fe2a047

View file

@ -2,31 +2,41 @@
{%- assign name = include.params.name -%}
{%- endif -%}
{%- assign return = nil -%}
{%- assign keys = name | split:'.' -%}
{%- assign name = keys.first -%}
{%- 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 -%}
{%- assign keys = keys | shift -%}
{%- for key in keys -%}
{%- assign return = return[key] -%}
{%- if return == nil -%}
{%- assign return = include.params.default -%}
{%- for step in (1..7) -%}
{%- 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 -%}