CommonMark for PHP で改行をbrタグに変換するオプション
PHP 用の Markdown ライブラリである「CommonMark」で改行を反映させる、つまり <br> に変換する方法が分かりづらかったのでメモ。
結論から言うと、
$converter = new CommonMarkConverter([ 'renderer' => [ 'soft_break' => '<br>', ] ]);
のように CommonMarkConverter のコンストラクタのオプションとして渡す renderer の soft_break の値を <br> にすればOKです。
ref: Cannot make soft_break work · Issue #311 · thephpleague/commonmark
ドキュメント (バージョン 1.5) にもこの設定項目があるのは確認していたのですが、
$converter = new CommonMarkConverter([ 'renderer' => [ 'block_separator' => "\n", 'inner_separator' => "\n", 'soft_break' => "\n", ], 'enable_em' => true, 'enable_strong' => true, 'use_asterisk' => true, 'use_underscore' => true, 'unordered_list_markers' => ['-', '*', '+'], 'html_input' => 'escape', 'allow_unsafe_links' => false, 'max_nesting_level' => INF, ]);
soft_break – String to use for rendering soft breaks
とあるだけでちょっと分かりづらかった。
PHP の Markdown ライブラリはいくつか使ったことがあるのですが、たいていの場合デフォルトでは改行が br タグに変換されないようになってます。GitHub の投稿フォームなど改行が br に変換されるのに慣れているので、ちょっと戸惑ってしまいますね。
コメントを残す