Включены ли переменные в глобальный охват? Если да, есть ли способ создать локальную переменную? - PullRequest
0 голосов
/ 05 февраля 2020

Являются ли переменные в файлах Jekyll {% include %} глобальными по объему? То есть, они просачиваются на страницу, которая включает тогда и последующие включает?

Например, у меня есть файл включения со следующим содержанием:

{% assign ai__attributes = "" %}

{% if include.width %}
{% capture ai__attributes %}{{ ai__attributes }}width="{{include.width}}" {% endcapture %}
{% endif %}

{% if ai__attributes != "" %}
{% capture ai__ial %}{:{{ai__attributes}}}{% endcapture %}
{% endif %}

![{{include.alt | default image }}]({{assetpath}}/{{include.path}}){{ai__ial}}

Это устанавливает ai__ial переменная, если include.width было установлено. Если я вызову это один раз с установленным width, а затем снова с его вставкой, утечет ли ai__ial из первого вызова во второй? Есть ли способ избежать этого, например, путем определения области действия переменной?

1 Ответ

2 голосов
/ 05 февраля 2020

Нет способа установить локальную переменную, но вы можете сбросить ai__ial в вашем включении.

{% assign ai__attributes = "" %}
{% assign ai__ial = "" %}
...
...