0

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

这有效:

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

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

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

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

4

2 回答 2

2

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。这是一个例子

于 2015-10-08T13:23:41.023 回答
0

我不认为这是可行的,我敢肯定你不想像这样对值进行硬编码,尤其是在一个违背目的的模板上。

尝试:

{.if foo}
  <h1>Not true</h1>
{.end}
于 2015-06-25T21:08:41.610 回答