【发布时间】:2018-07-06 13:30:48
【问题描述】:
我正在尝试编写一个有点通用的布局,它可以将 要么 字符串数组 或 选项哈希作为参数,因此您可以这样做:
option:
- "<li><b>One:</b> This is</li>"
- "<li><b>Two:</b> Raw HTML</li>"
或者你可以这样做:
option:
One: This is
Two: a mapping
我想同时支持这两个选项的原因是这是一个公共布局,第一个选项已经支持,但我更喜欢使用第二个选项,所以我想要一个支持两个版本的弃用期。
我在check if a variable is type of string or array in liquid 中看到有一种方法可以确定某个东西是数组还是字符串,但是数组和散列都有first 属性!重用此函数的一种实用方法可能是检查变量 also 的第一个元素是否具有 first 属性,如下所示:
{% if site.option.first %}
{% if site.option.first.first %}
hash
{% else %}
array
{% endif %}
{% else %}
Something else!
{% endif %}
但这似乎有点笨拙和有点 hack - 另外,如果传递一个数组数组,它会给出错误的答案(即使在这种情况下“数组数组”不被视为有效输入)。有没有更好的方法来做到这一点?
【问题讨论】: