【问题标题】:Passing multiple variables in a jekyll include and detecting which ones are assigned在 jekyll 包含中传递多个变量并检测分配了哪些变量
【发布时间】:2014-09-25 12:39:15
【问题描述】:

在一个 jekyll 网站中,我试图通过传递多个变量来使用 include 作为多用途模板;并不总是全部,也不总是相同数量的变量。

从页面上,我想这样做:

{% include multi-purpose.html var1='foo' var2='ble' var3='yea' %}

当我在 include.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...

这个渲染一切,不管它是否被分配。

【问题讨论】:

    标签: variables include jekyll


    【解决方案1】:

    要从包含中访问传递的变量,您需要在包含中为它们添加前缀include.
    Everywhere

    改变这个:

    {% if var1 != null %}
    

    到这里:

    {% if include.var1 != null %}
    

    {% if var1 ... 不起作用,因为它检查名为 var1 的“本地”变量(在 inside 包含中声明)(当然不存在)。

    正如 Mitja 的回答中所解释的,您不需要检查 null'',但您仍然需要检查 {% if include.var1 %},而不是 {% if var1 %}

    【讨论】:

      【解决方案2】:

      像这样检查:

      {% if var1 %}
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 2011-08-21
      相关资源
      最近更新 更多