当我什至不知道所有可能存在的颜色时,也可以在液体中进行下面的操作,我可以以某种方式捕获“ Color:”之后的下一整行,以使“ Color:”成为开始捕获的触发标签而下一行是决定何时停止捕获的触发器?
并且我是否还可以使用另一个单词作为结束捕获的触发,例如,如果我知道我一直想捕获描述中唯一的<strong>
和</strong>
标签之间的内容?
{% if product.description contains 'Color:' %}
{% if product.description contains 'Color: Red'%}{% assign TheColor = "Red" %}{% endif %}
{% if product.description contains 'Color: Yellow'%}{% assign TheColor = "Yellow" %}{% endif %}
{% if product.description contains 'Color: Ocean Blue'%}{% assign TheColor = "Ocean Blue" %}{% endif %}
{% if product.description contains 'Color: Light Blue'%}{% assign TheColor = "Ocean Blue" %}{% endif %}
{% if product.description contains 'Color: Blue'%}{% assign TheColor = "Blue" %}{% endif %}
{% if product.description contains 'Color: Black & white'%}{% assign TheColor = "Black & white" %}{% endif %}
{% endif %}
我已经花了几个小时来搜索类似的东西,我知道我十年前用长代码在Asp Classic中以某种方式做到了,但是我认为在Liquid中它应该超级简单?
我没有进行正规的流水教育(我可能会与其他许多人通过搜索找到这种流传的教育一样,所以在代码中使用简单的示例而不是“技术提示”或“线索”会很棒。
谢谢!
这里有一种很笨拙的方法来获得颜色,尽管感觉不是超级可靠:
{% assign color = product.description | split: "Color: " %}
{{ color | last }}
这会将描述拆分为一个数组。 Color:
之前的所有内容都是第一个元素,Color:
之后的所有内容都是第二个元素。在我们的输出中,我们只打印第二个元素。
如果在产品说明中的颜色声明后还有其他内容,这将无法正常工作。