将parameter passing给Liquid模板
在我的Jekyll供电网站,我有一个function类似的东西,但我不知道如何正确地传递参数。 当我传递像{% include function.liquid foo="{{baz.quux}}" %}
这样的参数时,它只会传递{{baz.quux}}
! 当然,不是我想要的:我想要通过baz.quux的值。 我该怎么做呢?
谢谢!
有两种方法来实现这一点。 我已经testing了这两种方法对吉杰的Github页版本。
使用捕获
假设你在你的包含代码中引用了{{ foo }}
,你需要在调用include之前为foo赋值。
如:
{% capture foo %}{{ baz.quux }}{% endcapture %} {% include function.liquid %}
使用参数来包含
这允许你控制variables的范围,它看起来像你想要的。 有一些如何在模板文档中进行设置的细节。
在你使用的模板中,你的语法几乎是正确的:
{% include function.liquid foo=baz.quux %}
缺less的部分是variables需要在包含文件的代码中以不同方式引用,您需要使用{{ include.foo }}
input不带引号或括号的variables,如下所示:
{% include footer.html param="value" variable-param=page.variable %}
在你的情况下:
{% include function.liquid foo=baz.quux %}
它在我的网站工作。
来自: https : //github.com/jekyll/jekyll/issues/3577#issue-61988857