Передача нескольких переменных в jekyll include и определение того, какие из них назначены
На веб-сайте jekyll я пытаюсь использовать include как универсальный шаблон, передавая несколько переменных; не всегда все из них, не всегда одно и то же количество переменных.
Со страницы я хочу сделать следующее:
{% include multi-purpose.html var1='foo' var2='ble' var3='yea' %}
Когда я делаю это в включить.html , и когда var1 имеет значение, он работает:
var1 is {{ include.var1 }}
В файле include я хочу иметь возможность различать, какие переменные назначаются, делая что - то вроде это:
{% if var1 != null %}
this is my var1 {{ include.var1 }}
{% endif %}
{% if var2 != null %}
this is my var2 {{ include.var2 }}
{% endif %}
{% if var3 != null %}
this is my var3 {{ include.var3 }}
{% endif %}
etc...
К сожалению, мой синтаксис неверен, этот код не отображает код внутри операторов if.
Я также попробовал это:
{% if var1 != '' %}
this is my var1 {{ include.var1 }}
{% endif %}
{% if var2 != '' %}
this is my var2 {{ include.var2 }}
{% endif %}
{% if var3 != '' %}
this is my var3 {{ include.var3 }}
{% endif %}
etc...
Это одно представляет все, независимо от того, назначено оно или нет.
Спасибо за помощь!
2 ответа:
Чтобы получить доступ к передаваемым переменным из include, вам нужно префиксировать их
include.
везде в поле Включить!Измените это:
{% if var1 != null %}
К этому:
{% if include.var1 != null %}
{% if var1 ...
не работает, потому что он проверяет наличие" локальной " переменной (объявленной внутри include) с именемvar1
(которого, конечно, не существует).Как объяснено в ответе Митя, вам не нужно проверять наличие
null
или''
, но вам все равно нужно проверьте{% if include.var1 %}
, а не{% if var1 %}
!