#liquid
#жидкость
Вопрос:
Простое преобразование camelCase, похоже, не работает с нашей стороны.
Это пример из Shopify, который должен вернуться ComingSoon
.
{{ 'coming-soon' | camelcase }}
Мы не используем Shopify, но инструмент поддерживает Liquid, и мы выполнили с ним другую работу с жидкостями.
Но приведенный выше код не изменяет текст и возвращает coming-soon
.
ОБНОВЛЕНИЕ: я пробую код в онлайн-песочнице, но он дает мне те же результаты. Так что теперь я действительно в замешательстве.
Ответ №1:
К camelcase
camelize
сожалению, фильтр or — это только 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 }}
Комментарии:
1. Я понимаю. Вы правы. Есть ли способ сделать это в Liquid, не требуя расширений?
2. @disasterkid — только что добавил дополнительную информацию о решении для Shopify
3. Извините, но эти коды применимы к Shopify или обычной жидкости? Мы не используем Shopify.
4. Первая часть является общей жидкостью и должна работать — вторая часть с рендерингом не будет работать. Вы можете протестировать его здесь: jumpseller.com/support/liquid-sandbox
5. Большое вам спасибо! Вы можете указать, что первый фрагмент также работает за пределами Shopify.