@BUN に教えてもらった autop Twig Filter プラグインを試してみた。

autop Twig Filter
https://plugins.craftcms.com/a...

要するにMTで言う所の convert_breaks みたいな話で、改行を br とか p に置き換えてくれる。

プラグインのインストール

craft のプロジェクトディレクトリで以下を実行

composer require emandiev/autop-twig-filter

./craft install/plugin autop-twig-filter

無事インストールされたので試してみる。

入力した内容

テンプレート

<h2>デフォルト</h2>
<div>{{entries.sampleText}}</div>

<h2>|autop</h2>
<div>{{entries.sampleText |autop }}</div>

<h2>|autop(false)</h2>
<div>{{entries.sampleText|autop(false)}}</div>

表示イメージ

出力されたHTML

<h2>デフォルト</h2>
<div>あいうえおあいうえお
かきくけこかきくけこ

さしすせそさしすせそ

たちつてとたちつてと
なにぬねのなにぬねの

はひふへほはひふへほ</div>

<h2>|autop</h2>
<div><p>あいうえおあいうえお<br>かきくけこかきくけこ</p><p>さしすせそさしすせそ</p><p>たちつてとたちつてと<br>なにぬねのなにぬねの</p><p>はひふへほはひふへほ</p></div>

<h2>|autop(false)</h2>
<div><p>あいうえおあいうえおかきくけこかきくけこ</p><p>さしすせそさしすせそ</p><p>たちつてとたちつてとなにぬねのなにぬねの</p><p>はひふへほはひふへほ</p></div>

改行つけるだけなら nl2br のフィルタをつけるだけでいいとは思う。

nl2br - Documentation - Twig - The flexible, fast, and secure PHP template engine
https://twig.symfony.com/doc/2...

このプラグインは p タグも入れてくれるのでそこは使いやすそう。

リッチテキストのフィールドで装飾ボタンなどを限りなくシンプルにするっていうのも1つではあるけれど。

その設定をせずにテキストエリアのフィールドだけでいけるのは便利そう。