我试图使用JSON模板评估if语句中的字符串。
这有效:
{.if true}
<h1>It is true</h1>
{.end}
但是,此语法会破坏页面:
{.if "foo"=="bar"}
<h1>Not true</h1>
{.end}
如何使用JSON模板比较字符串?
Squarespace使用“.equal”谓词解决了这个问题(由于没有足够的rep。点,我无法发布链接):
{.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 Forums:
然后解决方案是将任何其他字符指定为分隔符(不会在字符串的任何其他部分中使用)。例如,这将起作用:
{.equal?:categoryFilter:“家庭法”}
您可以看到,而不是在.equal?之后使用空格,我使用了:(冒号)。这样,第二个参数“家庭法”中的空格被正确处理,而不是试图将单词划分为两个单独的参数。
注意:要查看为页面提供的数据,请在网址中添加“?format = json-pretty”。 Here's an example。
我不认为这是可行的,而且我确定你不想对这样的值进行编码,特别是在一个违背目的的模板上。
尝试:
{.if foo}
<h1>Not true</h1>
{.end}