如果使用Squarespace JSON模板的语句语法

问题描述 投票:0回答:2

我试图使用JSON模板评估if语句中的字符串。

这有效:

{.if true}
  <h1>It is true</h1>
{.end}

但是,此语法会破坏页面:

{.if "foo"=="bar"}
  <h1>Not true</h1>
{.end}

如何使用JSON模板比较字符串?

json squarespace jsontemplate
2个回答
2
投票

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


0
投票

我不认为这是可行的,而且我确定你不想对这样的值进行编码,特别是在一个违背目的的模板上。

尝试:

{.if foo}
  <h1>Not true</h1>
{.end}
© www.soinside.com 2019 - 2024. All rights reserved.