MTのテキスト複数行で改行を反映させる方法

Posted on
MTのテキスト複数行で改行を反映させる方法

Movable Typeのカスタムフィールドには「テキスト(複数行)」というものが存在しますが、普通に出力すると以下のようにテキストフィールド内の改行が反映されません。

テキスト(複数行)のカスタムフィールドには以下のように入力されているとします。

吾輩は猫である。
名前はまだ無い。
どこで生れたかとんと見当がつかぬ。

これをそのまま出力すると…

<mt:customFieldName>
吾輩は猫である。
名前はまだ無い。
どこで生れたかとんと見当がつかぬ。

上記のように改行箇所に<br>タグは入ってくれません。

改行を反映させるには

改行を反映させるにはnl2brというモディファイアを付与します。
nl2brは付与したファンクションタグに含まれる改行をbr要素に置き換えることができます。
nl2br=”1”では改行を<br>に、nl2br=”xhtml”では改行を<br />に変換します。

<mt:customFieldName nl2br=”1”>
吾輩は猫である。<br>
名前はまだ無い。<br>
どこで生れたかとんと見当がつかぬ。

Pタグで囲うには

入力されたテキストをpタグで囲いたい場合にはnl2brではなくconvert_breaksというモディファイアを付与します。

<mt:customFieldName convert_breaks="1">
<p>吾輩は猫である。<br />
名前はまだ無い。<br />
どこで生れたかとんと見当がつかぬ。</p>

convert_breaksを付与することでpタグで囲われた状態で改行も反映されますが、改行が<br />となってしまうため以下のようにreplaceを追加して<br>に置換します。

<mt:customFieldName convert_breaks="1" replace="<br />","<br>">
<p>吾輩は猫である。<br>
名前はまだ無い。<br>
どこで生れたかとんと見当がつかぬ。</p>

こうすることでconvert_breaksでも<br>に変換することができます。

おしまい。