一个简单的 Liquid CamelCase 不能完成它的工作

A simple Liquid CamelCase does not do its job

一个简单的 CamelCase 转换似乎在我们这边不起作用。

这是来自 Shopify 的示例,应该 return ComingSoon

{{ 'coming-soon' | camelcase }}

我们没有使用 Shopify,但该工具支持 Liquid,我们已经用它完成了其他 Liquid 工作。

但是上面的代码并没有改变文本 returns coming-soon.

更新: 我正在尝试代码 in an online sandbox 但它给了我相同的结果。所以现在我真的很迷茫。

不幸的是,camelcasecamelize 过滤器只是 Shopify。请参阅此 Github 错误报告:

https://github.com/Shopify/liquid/issues/755

编辑:

如果您想在 Shopify 中模仿这一点,您可以这样做:

{%- assign input = 'long-camel-case-string' -%}
{%- assign parts = input | replace: ' ', '-' | split: '-' -%}
{%- capture camel -%}
    {%- for part in parts -%}
        {%- if forloop.index == 1 -%}
            {{ part }}
        {%- else -%}
            {{ part | capitalize }}
        {%- endif -%}
    {%- endfor -%}
 {%- endcapture -%}
 {{ camel }}

如果你打算经常使用它,你可以把它全部放在一个片段中,然后使用另一个捕获来抓取它,例如:

{%- capture output -%}{%- render 'camelize', input: 'long-camel-case-string' -%}{%- endcapture -%}
{{ output }}