Нет, нет способа проверить равенство для нескольких значений в пределах одного и того же предиката, используя JSON-T в Squarespace. Однако есть пара альтернатив, которые минимизируют дублирование кода и улучшают удобство обслуживания.
Вариант 1:
Вы можете использовать следующее (я демонстрирую, как вы могли бы использовать разные значения [т.е. использовать urlID вместо идентификатора страницы], но вам не нужно это делать):
{.equal? collection.urlId "home"}
{@|apply mycustomblock.block}
{.or equal? squarespace.page-id "collection-12345"}
{@|apply mycustomblock.block}
{.or equal? squarespace.page-id "collection-54321"}
{@|apply mycustomblock.block}
{.or}
<!-- all the rest -->
{.end}
Это не совсем то, что вам нужно, но он более удобен в обслуживании, чем, скажем, вложенный {.equal}{.or}
или хранение дублирующего кода в файле .list.
Вариант 2:
Или другой подход - добавить дополнительный макет через файл template.conf. Это будет ссылаться на те же регионы, что и другие ваши макеты, но будет иметь другое имя региона.
...
"layouts" : {
"default" : {
"name" : "Standard Page Layout",
"regions" : [ "site" ]
},
"productsAlt" : {
"name" : "Products Enhanced",
"regions" : [ "site" ]
}
},
...
Затем вы получите раскрывающийся список «Макет» на панели настроек для коллекций, в котором можно различать макеты. Для трех страниц, для которых требуется макет альтернативных продуктов, выберите альтернативный макет в раскрывающемся списке.
Затем через JSON-T вы можете сделать что-то вроде:
{.equal? collection.regionName "productsAlt"}
<!-- Alt layout. -->
{.or}
<!-- Std./Non-Alt layout. -->
{.end}
Это не совсем предполагаемое использование «макетов» (обычно вы используете их для фактического использования другого набора / последовательности файлов региона), но оно позволяет вам иметь изменяемое свойство, специфичное для коллекции, которое затем может быть доступ через серверную часть JSON-T. Ничто не говорит, что у вас есть , чтобы использовать разные файлы региона, в конце концов.