Синтаксис оператора If с шаблонами JSON Squarespace
Я пытаюсь оценить строку в операторе if, используя шаблоны JSON.
Это работает:
{.if true}
<h1>It is true</h1>
{.end}
Однако этот синтаксис разбивает страницу:
{.if "foo"=="bar"}
<h1>Not true</h1>
{.end}
Как сравнить строки, используя шаблоны JSON?
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. Вот пример.
Я не думаю, что это выполнимо, и я уверен, что вы не хотите использовать такие значения, особенно в шаблоне, который побеждает цель.
пытаться:
{.if foo}
<h1>Not true</h1>
{.end}