Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Squarespace JSON模板的If语句语法_Json_Squarespace_Jsontemplate - Fatal编程技术网

带有Squarespace JSON模板的If语句语法

带有Squarespace JSON模板的If语句语法,json,squarespace,jsontemplate,Json,Squarespace,Jsontemplate,我试图使用JSON模板计算if语句中的字符串 这项工作: {.if true} <h1>It is true</h1> {.end} {.if true} 这是真的 {.end} 但是,此语法会破坏页面: {.if "foo"=="bar"} <h1>Not true</h1> {.end} {.if“foo”==“bar”} 不正确 {.end} 如何使用JSON模板来比较字符串?我认为这是不可行的,而且我确信您不想对这样的值进行

我试图使用JSON模板计算if语句中的字符串

这项工作:

{.if true}
  <h1>It is true</h1>
{.end}
{.if true}
这是真的
{.end}
但是,此语法会破坏页面:

{.if "foo"=="bar"}
  <h1>Not true</h1>
{.end}
{.if“foo”==“bar”}
不正确
{.end}

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

我认为这是不可行的,而且我确信您不想对这样的值进行harcode,尤其是在一个无法达到目的的模板上

尝试:

{.if foo}
不正确
{.end}

Squarespace使用“.equal”谓词解决此问题(由于没有足够的代表点,我无法发布链接):

{.equal?foo“bar”}
这是真的
{或}
不正确
{.end}
其中foo是JSON数据中提供的值的键。如果您只需要其中的“false/not equal”部分,则可以将其压缩为:

{.equal? foo "bar"}{.or}<h1>Not true</h1>{.end}
{.equal?foo“bar”}{.or}非真{.end}
现在,如果“bar”包含空格,则需要使用与空格不同的字符作为分隔符。从:

然后,解决方案是指定任何其他字符作为分隔符 (不会在字符串的任何其他部分中使用的部分)。例如 这将有助于:

{.equal?:类别过滤器:“家庭法”}

您可以看到,我使用了一个: (冒号)。这样,你的第二个论点“家庭法”中的空白是 正确对待,不试图将单词分成两部分 单独的论点


注意:要查看为页面提供的数据,请在url中添加“?format=json pretty”

这个错误也出现了:{.if foo==“some string”}我能做这样的事情吗?不,那不行。你需要一个属性
{.if foo.some string}
@SeanPlusPlus基本上它可以用true或false工作,没有比较,所以把bool存储在你的好地方
{.equal? foo "bar"}
  <h1>It's true</h1>
{.or}
  <h1>Not true</h1>
{.end}
{.equal? foo "bar"}{.or}<h1>Not true</h1>{.end}