📃

【Movable Type】記事とウェブページ、コンテンツタイプにおける改行コードの違いについて

2025/01/22に公開

概要

MTにおいて、たとえば「リッチテキストエディタ」は記事やウェブページ、コンテンツタイプ(コンテンツデータ)で利用できますが、出力時の改行コードに違いがあるようです。
本記事では、この検証結果についてまとめています。

改行コードの違いについて

以下、検証コードと出力結果です。
記事・ウェブページ・コンテンツタイプのいずれも、リッチテキストエディタに入力した文章を出力しています。また、改行コードの出力を可視化するため、encode_jsonを使用しています。

<!-- リッチテキストエディタに入力した内容 -->
<h2>リッチテキストエディタでの改行コード</h2>
<p>テスト文章<br>改行</p>
<p>段落改行<br>改行</p>
<!-- 検証用MTML(ブロックタグのモディファイアは割愛) -->

<!-- 記事 -->
<mt:Entries>
  <$mt:EntryBody encode_json="1"$>
</mt:Entries>

<!-- ウェブページ -->
<mt:Pages>
  <$mt:PageBody encode_json="1"$>
</mt:Pages>

<!-- コンテンツタイプ -->
<mt:Contents>
  <mt:ContentField content_field="テキスト(複数行)"><mt:ContentFieldValue encode_json="1"></mt:ContentField>
</mt:Contents>
<!-- 出力結果 / 見やすいように改行しています(実際の出力は1行) -->

<!-- 記事 -->
<h2>リッチテキストエディタでの改行コード</h2>\n
<p>テスト文章<br>改行</p>\n
<p>段落改行<br>改行</p>

<!-- ウェブページ -->
<h2>リッチテキストエディタでの改行コード</h2>\n
<p>テスト文章<br>改行</p>\n
<p>段落改行<br>改行</p>

<!-- コンテンツタイプ -->
<h2>リッチテキストエディタでの改行コード</h2>\r\n
<p>テスト文章<br>改行</p>\r\n
<p>段落改行<br>改行</p>

記事・ウェブページでは改行コードが\n(LF)ですが、コンテンツタイプの場合は\r\n(CR+LF)で出力されます。
なお、記事・Webページにおけるカスタムフィールド「テキスト複数行」、コンテンツタイプの「埋め込みテキスト」も、改行コードはそれぞれ\n\r\nでした。

普通にMTMLを書いてテンプレートとして扱う分にはさほど問題にはならないと思いますが、JSONデータとして出力したものをPHPなどで処理する場合は、注意が必要かもしれません。

以上です。

Discussion