将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