Squarespace - 多条件 JSONT .equal 语句
Squarespace - Multi conditional JSONT .equal statement
我在 /collections/products.list
上有自定义 HTML 代码,我只想显示在主页和我网站的其他两个特定集合页面上。
我想知道是否有某种查询可以将我的 HTML 包含在其中以仅在 select 页上显示它。
也许用 {squarespace.page-id}
定位每个页面?
编辑
我能够做到 {.equal?:squarespace.page-id:"collection-12345"}
但我正在尝试弄清楚如何检查多个页面。
不,无法在 Squarespace 中使用 JSON-T 测试单个相等谓词中多个值的相等性。但是,有几个替代方案可以最大限度地减少重复代码并提高可维护性。
选项 1:
您可以使用以下内容(我正在演示如何使用不同的值 [即使用 urlID 而不是 page-id],但您不必这样做):
{.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" ]
}
},
...
然后您会在集合的设置面板中获得一个 "Layout" 下拉菜单,您可以在其中区分布局。对于您想要替代产品布局的三个页面,select 下拉列表中的替代布局。
然后,通过 JSON-T,您可以执行以下操作:
{.equal? collection.regionName "productsAlt"}
<!-- Alt layout. -->
{.or}
<!-- Std./Non-Alt layout. -->
{.end}
这不完全是 "layouts" 的预期用途(通常您会使用它们实际使用不同的 set/sequence 区域文件),但它允许您拥有一个可修改的集合-特定 属性 然后可以通过服务器端 JSON-T 访问。毕竟,没有人说您必须使用不同的区域文件。
我在 /collections/products.list
上有自定义 HTML 代码,我只想显示在主页和我网站的其他两个特定集合页面上。
我想知道是否有某种查询可以将我的 HTML 包含在其中以仅在 select 页上显示它。
也许用 {squarespace.page-id}
定位每个页面?
编辑
我能够做到 {.equal?:squarespace.page-id:"collection-12345"}
但我正在尝试弄清楚如何检查多个页面。
不,无法在 Squarespace 中使用 JSON-T 测试单个相等谓词中多个值的相等性。但是,有几个替代方案可以最大限度地减少重复代码并提高可维护性。
选项 1:
您可以使用以下内容(我正在演示如何使用不同的值 [即使用 urlID 而不是 page-id],但您不必这样做):
{.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" ]
}
},
...
然后您会在集合的设置面板中获得一个 "Layout" 下拉菜单,您可以在其中区分布局。对于您想要替代产品布局的三个页面,select 下拉列表中的替代布局。
然后,通过 JSON-T,您可以执行以下操作:
{.equal? collection.regionName "productsAlt"}
<!-- Alt layout. -->
{.or}
<!-- Std./Non-Alt layout. -->
{.end}
这不完全是 "layouts" 的预期用途(通常您会使用它们实际使用不同的 set/sequence 区域文件),但它允许您拥有一个可修改的集合-特定 属性 然后可以通过服务器端 JSON-T 访问。毕竟,没有人说您必须使用不同的区域文件。