在我的Jekyll支持的网站上,我有一个类似函数的包含,但我无法弄清楚如何正确传递它。
当我使用{% include ... %}
时,传递这样的参数..
{% include function.liquid foo="{{ baz.quux }}" %}
..它只传递文字字符串{{ baz.quux }}
,这当然不是我想要的!我想传递baz.quux
的值。我该怎么做?
谢谢!
答案 0 :(得分:74)
有两种方法可以实现这一目标。我已经针对Jekyll的github-pages版本测试了这两种方法。
假设您在include的代码中引用{{ foo }}
,则需要在调用include之前为foo分配一个值。
如:
{% capture foo %}{{ baz.quux }}{% endcapture %}
{% include function.liquid %}
这允许您控制变量的范围,它看起来像您想要的。有一些细节如何在the templates documentation中进行设置。
您使用的模板中的语法几乎是正确的:
{% include function.liquid foo=baz.quux %}
缺少的部分是需要在包含文件的代码中以不同方式引用变量,您需要使用{{ include.foo }}
答案 1 :(得分:1)
输入没有引号或括号的变量,如下所示:
{% include footer.html param="value" variable-param=page.variable %}
在你的情况下:
{% include function.liquid foo=baz.quux %}
它适用于我的网站。
来自:https://github.com/jekyll/jekyll/issues/3577#issue-61988857
答案 2 :(得分:1)
截至2020年9月1日,它的工作方式如下:
jekyll v4.1.1
{% assign title = 'this is my tittle' %}
{% include subscribeBtn.html title = title %}
然后在模板中:
<h3>{{ title }}</h3>