方便"chained" || (OR) 在液体中的表达

convenient "chained" || (OR) expressions in liquid

在javascript中,我可以这样写

console.log( person.name || person.nickname || '-' )

然后它会先寻找name字段,如果找不到,它会回退到nickname字段,如果找不到,它最终将回退到 - 占位符。

是否有任何 nice/convenient 语法可以在液体中执行此操作?也就是说,有没有办法在一行中完成,而不需要一堆 if/elseifs.

不,遗憾的是没有。虽然可以在液体逻辑中使用 'or',但不允许在双大括号之间写入 'or'。您将收到以下错误:

Expected end_of_string but found id in "{{ person.name or person.nickname or '-' }}" in /path/to/page

我认为最短的写法是:

{{ person.name }}{% unless person.name %}{{ person.nickname }}{% unless person.nickname %}-{% endunless %}{% endunless %}