如何在Jekyll / Liquid中将一个字符串连接/附加到另一个字符串?

81

明确一下,假设:

{% assign my_var = "123" %}
{% assign another_var = "456" %}

我希望将字符串附加到my_var,以获得类似于123-456的内容。

到目前为止我尝试过:

{% assign my_var = my_var + " - " + another_var %}
3个回答

153

你可以使用capture逻辑标签:

{% capture new_var %}{{ my_var }} - {{ another_var }}{% endcapture %}

如Ciro所指出的那样,也可以使用append过滤器:

{% assign new_var = my_var | append: ' - ' | append: another_var %}

1
这太棒了。关于这个答案需要强调的一件事是不要将捕获分成多行,因为它对空格很敏感。如果我试图通过这样做使我的模板更易读,我发现我的比较会返回false,因为它也捕获了换行符。 - Tina
如果您想将捕获分成多行,则可以使用 {%--%} 来去除空格。https://shopify.github.io/liquid/basics/whitespace/ - rottweiler

57

附加:筛选器

相对于capture来说,这更方便用于短的连接操作:

{% assign x = 'abc' %}
{% assign y = 'def' %}
{% assign z = x | append: ' - ' | append: y %}
{{ z }}

输出:

abc - def

测试于 jekyll 3.0.4 (github-pages 75)。


9
到目前为止,所有答案都是正确的,但它们没有提到您还可以内联附加而无需分配新变量:
<a href="{{ foo | append: ' - ' | append: bar }}">Link</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接