gpt4 book ai didi

jekyll - 传递参数以包含在 Liquid 模板中

转载 作者:行者123 更新时间:2023-12-01 16:41:28 24 4
gpt4 key购买 nike

在我的 Jekyll 支持的网站上,我有一个包含函数,可以执行类似功能的操作,但我不知道如何正确传递它的参数。

当我使用{% include ... %}时,像这样传递参数..

{% include function.liquid foo="{{ baz.quux }}" %}

..它只是传递文字字符串 {{ baz.quux }} 这当然不是我想要的!我想传递 baz.quux 的值。我该怎么做?

谢谢!

最佳答案

有两种方法可以实现这一目标。我已经针对 Jekyll 的 github-pages 版本测试了这两种方法。

使用捕获

假设您在包含代码中引用 {{ foo }},则需要在调用包含之前为 foo 分配一个值。

如:

{% capture foo %}{{ baz.quux }}{% endcapture %}
{% include function.liquid %}

使用参数来包含

这允许您控制变量的范围,这看起来就像您想要的那样。 the templates documentation 中提供了有关如何设置的一些详细信息。 .

在您将使用的模板中,您的语法几乎是正确的:

{% include function.liquid foo=baz.quux %}

缺少的部分是需要在包含文件的代码中以不同方式引用变量,您需要使用 {{ include.foo }}

在 Shopify Liquid 中

自 2021 年起,您可以执行以下操作:

{% include 'snippet-file' with bar, foo: baz, foo2: baz2 %}

并在代码片段文件中,使用 {{ snippet-file }} 检索 bar 并使用 {{ foo } 检索 baz }.

对于 Liquid 语句,只需使用不带 {{ }} 的变量名称,例如:

{% if snippet-file==0 and foo2==':)' %}

请注意,它不会像上一节中所示的 include.foo2 那样工作。

另请注意,include 已弃用,对于新开发,您应该以类似的方式使用 render

关于jekyll - 传递参数以包含在 Liquid 模板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21976330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com