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 に変換されるのに慣れているので、ちょっと戸惑ってしまいますね。
コメントを残す