【问题标题】:Remove hyphens and replace with spaces and capitalize in liquid删除连字符并用空格替换并在液体中大写
【发布时间】:2014-02-17 07:40:45
【问题描述】:

使用液体,我正在使用产品标签来生成页面标题。我希望页面标题没有连字符并且每个单词都大写。

示例:

如果标签(用于生成标题)是“土豆片”。我希望标题是“薯片”。

如果我使用:

{{current_tags.first}}

它会生成一个标题为“potato-chips”。

如果我使用:

{{current_tags.first | replace: '-', ' '}}

它会生成一个“薯片”的标题。

如果我使用

{{current_tags.first | replace: '-', ' ' | capitalize}}

我们得到一个“薯片”的标题。

如果有人知道我如何获得“薯片”这个标题,那就太好了。

如果重要的话,一些标签(用于生成标题)是“单词”;有些是“字词”;有些是“单词-单词-单词”;等等。

谢谢。

【问题讨论】:

    标签: regex shopify liquid


    【解决方案1】:

    您可以在“-”上拆分标签,然后循环遍历每个大写的单词:

      {% assign words = current_tags.first | split: '-' %}
      {% for word in words %}{{ word | capitalize }} {% endfor %}  
    

    【讨论】:

    • 感谢您的回复。这非常有效。你知道让所有单词“和”小写的方法吗?例如,土豆和薯条会变成土豆和薯条吗?干杯
    • @Ben 将{{ word | capitalize }} 替换为{% if word == 'and' %}{{ word }} {% else %}{{ word | capitalize }} {% endif %}
    • @StephSharp Bravo!工作完美。非常感谢,斯蒂芬。
    • 如果你在 {% capture %} 中有这个循环,你可以在结果上使用 | strip 过滤器来删除尾随空格
    【解决方案2】:

    According to the docscamelize(或camelcase)过滤器应该可以工作:

    骆驼化

    将文本转换为 CamelCase。

    输入

    {{ '即将推出' |驼峰式}}

    输出

    即将推出

    但是当我测试它时,我发现过滤器似乎没有像 doco 所说的那样添加空格。

    在这种情况下,BBG's answer 是我将使用的解决方法(拆分为“-”并将数组中的每个单词大写)。

    【讨论】:

    • 干杯。我曾尝试过驼峰式,但由于您提到的原因,它不可行。
    【解决方案3】:

    如果使用 CSS 是一种选择,我会这样做,而不是在 Liquid 中处理拆分和循环。

    <span style="text-transform: capitalize">
      {{current_tags.first | replace: '-', ' '}}
    </span>
    

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 2014-12-13
      • 1970-01-01
      • 2019-03-08
      • 2011-04-29
      • 2016-04-23
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多