タイトルの特殊文字を保持したまま、改行したい。

Topic summary

ユーザーが商品タイトルに改行を挿入したいと質問しています。現在は {{ product.title | escape }} を使用していますが、HTML特殊文字(<、>、&など)を表示する必要があるため、エスケープを保持したまま改行する方法を探しています。

提案された解決策:

  • JavaScriptを使用して <br> タグを機能させるコードが提案されました
  • replace() 関数で改行文字を <br> に置き換える方法

現在の状況:

  • 質問者は提案されたコードをどこに挿入すべきか分からず困っています
  • main-product.liquid ファイル内の {{ product.title | escape }} 付近に挿入を試みましたが、うまく動作していません
  • 画像を添付して具体的な状況を説明しています
  • 正しい実装方法についての追加説明を求めています

議論は未解決で、より詳細な実装手順が必要な状態です。

Summarized with AI on November 10. AI used: claude-sonnet-4-5-20250929.

タイトル部分に改行を入れたいのですが、現在下記が記載されております。

{{ product.title | escape }}

※HTML上で、>や、"、などの特殊文字を表示するため必要です。

上記を保持したまま、改行できるようにするためのコードが知りたいです。

1 Like

質問拝見しました。


タグを機能するように以下コードを適用させれば改行ができるかと思います。

// product.titleからHTMLエスケープされたテキストを取得し、改行を挿入する関数
function insertLineBreaks(title) {
    return title.replace(/(?:\r\n|\r|\n)/g, '
');
}

// タイトル部分に改行を挿入して表示する
var productTitle = "{{ product.title | escape }}";
document.getElementById('product-title').innerHTML = insertLineBreaks(productTitle);

ご参考までにしてください。

お悩み解決できましたら、ベストアンサー、いいねいただけると励みになります。
何卒よろしくお願いします。

株式会社フルバランス

返信頂きありがとうございます。

どこにどのように挿入すれば良いか分からず、
【main-product.liquid】内の
{{ product.title | escape }} 付近に挿入してみたのですが、間違っていると思います。
正しい方法をご教授頂ければ大変助かります。