我正在尝试编写一个有点通用的布局,可以将字符串数组或选项哈希作为参数,因此您可以这样做:
option:
- "<li><b>One:</b> This is</li>"
- "<li><b>Two:</b> Raw HTML</li>"
或者你可以这样做:
option:
One: This is
Two: a mapping
我想同时支持这两个版本的原因是这是一个公共布局,第一个选项已经被支持,但我更喜欢使用第二个选项,所以我想要一个支持两个版本的弃用期。
我在检查变量是否是液体中的字符串或数组类型时看到,有一种方法可以确定某物是数组还是字符串,但是数组和散列都有一个first属性!重用此函数的一种实用方法可能是检查变量的第一个元素是否也具有first属性,如下所示:
{% if site.option.first %}
{% if site.option.first.first %}
hash
{% else %}
array
{% endif %}
{% else %}
Something else!
{% endif %}
但这似乎有点笨拙而且有点骇人听闻 - 另外,如果传递一个数组数组,它会给出错误的答案(即使在这种情况下“数组数组”不被视为有效输入)。有一个更好的方法吗?