Jekyll 是否在范围中包含全局变量?如果是,有没有办法创建局部变量?

Jekyll 是否在范围中包含全局变量?如果是,有没有办法创建局部变量?,jekyll,liquid,Jekyll,Liquid,在Jekyll{%include%}文件中设置的变量是否在全局范围内?也就是说,它们是否会泄漏到当时包含的页面以及随后包含的页面中 例如,我有一个包含以下内容的include文件: {% assign ai__attributes = "" %} {% if include.width %} {% capture ai__attributes %}{{ ai__attributes }}width="{{include.width}}" {% endcapture %} {% endif %}

在Jekyll
{%include%}
文件中设置的变量是否在全局范围内?也就是说,它们是否会泄漏到当时包含的页面以及随后包含的页面中

例如,我有一个包含以下内容的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}}

如果设置了
include.width
,则设置
ai.
变量。如果我用
width
设置调用此函数一次,然后再将其插入,第一次调用的
ai
会泄漏到第二次调用吗?有没有办法避免这种情况,例如,通过限定变量的范围?

没有办法设置局部变量,但您可以在include中重置ai

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

无法设置局部变量,但您可以在include中重置

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