Shopify Жидкость. Если line.title содержит инструкцию «‹br›», не работает

Мы используем Shopify, где у нас есть страница счета-фактуры, где отображается название продукта и другие данные.

Моя проблема в том, что product.title отображает тег <br> на странице счета.
(На странице продукта отображается заголовок без тега <br>)

Причина этого в том, что product.title можно ввести только через WYSIWYG.
Где WYSIWYG кодирует product.title в код ASCII и декодирует product.title на странице счета.

Я пытаюсь найти и заменить / скрыть тег <br> внутри product.title с помощью строкового фильтра Liquid
{{ product.title | replace: 'Awesome', 'Mega' }} с оператором {% if %}, но он не работает. Если я заменю {% if line.title contains '<br>'%} на {% if line.title contains 'Dress'%}, код Dress будет заменен пробелом.
Пожалуйста, найдите ниже часть моего кода.

Часть добавленного мной кода

{% if line.title contains '<br>'%} {{ line.title | replace: '<br>', ' ' }} {% endif %}

Общий код

<td class="order-list__product-description-cell" style="width:100%">
  {% if line.product.title %} {% assign line_title = line.product.title %} 
  {% else %} {% assign line_title = line.title %} {% endif %}
  <span class="order-list__item-title">

 <!-- Replace if statement -->

  {% if line.title contains '<br>'%} {{ line.title | replace: '<br>', ' ' }}
  {% endif %} 

  <!-- Replace if statement -->

  {{ line_title }} × {{ line.quantity }}
</span>
<br/> {% if line.variant.title != 'Default Title' %}
<span class="order-list__item-variant">{{ line.variant.title }}</span> {% endif %}

I would highly appreciate if you could please tell me what am i doing wrong and guide me on how to implement this in the right way. Meanwhile waiting for Shopify to fix the issue of displaying tags in their app


person Oleg K    schedule 27.09.2016    source источник
comment
Почему у вас есть <br> в названиях продуктов?   -  person Josh Brown    schedule 28.09.2016
comment
Тег <br> есть только в некоторых товарах. Их заголовки слишком длинные для одной строки, и мы хотели бы, чтобы они были на двух строках, поэтому мы использовали <br> в заголовках. (Нет другого способа прервать черту в редакторе продуктов Shopify WYSIWYG). Мы используем приложение Order Printer от Shopify для печати наших счетов, и речь идет о том, как работает это приложение. Я уже сообщил им об этой проблеме, надеюсь, они ее исправят.   -  person Oleg K    schedule 28.09.2016


Ответы (1)


Если ваш заголовок выглядит так:

Это действительно, действительно, действительно, ‹br› действительно длинное название продукта!

Тогда Shopify, вероятно, ускользнет от вашего HTML-тега, превратив его в этот секретный код:

Это действительно, действительно, очень, очень длинное название продукта!

Если вы измените свой {{ product.title }} код на: {{ product.title | replace: '&lt;', '<' | replace: '&gt;', '>' }}, вы должны получить следующее:

Это действительно, правда, правда,

действительно длинное название продукта!

В качестве альтернативы, если вы хотите полностью удалить разрыв строки, вы можете использовать:

{{ product.title | replace: '&lt;', '<' | replace: '&gt;', '>' | remove: '<br>' }}

or: {{ product.title | replace: '&lt;br&gt;', ' ' }}

person Dave B    schedule 04.10.2016
comment
Очень ценю вашу помощь! Работает очень хорошо. Я заменил {{ line_title }}​ на {{ line_title | replace: '&lt;', '<' | replace: '&gt;', '>'}}, и тег <br> теперь читается как перерыв! - person Oleg K; 06.10.2016
comment
Спасибо за решение, сэкономившее много времени. - person Niraj patel; 16.08.2020