我正在尝试使用 JSON 模板评估 if 语句中的字符串。
这有效:
{.if true}
<h1>It is true</h1>
{.end}
但是,此语法会破坏页面:
{.if "foo"=="bar"}
<h1>Not true</h1>
{.end}
如何使用 JSON 模板比较字符串?
我正在尝试使用 JSON 模板评估 if 语句中的字符串。
这有效:
{.if true}
<h1>It is true</h1>
{.end}
但是,此语法会破坏页面:
{.if "foo"=="bar"}
<h1>Not true</h1>
{.end}
如何使用 JSON 模板比较字符串?
Squarespace 使用“.equal”谓词解决了这个问题(由于没有足够的代表点,我无法发布链接):
{.equal? foo "bar"}
<h1>It's true</h1>
{.or}
<h1>Not true</h1>
{.end}
其中 foo 是 JSON 数据中提供的值的键。如果您只想要其中的“错误/不相等”部分,那么它可以浓缩为:
{.equal? foo "bar"}{.or}<h1>Not true</h1>{.end}
现在,在“bar”包含空格的情况下,您需要使用与空格不同的字符作为分隔符。来自Squarespace 论坛:
然后解决方案是将任何其他字符指定为分隔符(不会在字符串的任何其他部分中使用的分隔符)。例如,这将起作用:
{.equal?:categoryFilter:"家法"}
您可以看到,我没有在 .equal? 之后使用空格,而是使用了 :(冒号)。这样,您的第二个论点“家庭法”中的空格就得到了正确处理,而不是试图将这些词划分为两个单独的论点。
注意:要查看为页面提供的数据,请将“?format=json-pretty”添加到 url。这是一个例子。
我不认为这是可行的,我敢肯定你不想像这样对值进行硬编码,尤其是在一个违背目的的模板上。
尝试:
{.if foo}
<h1>Not true</h1>
{.end}