📃
【Movable Type】記事とウェブページ、コンテンツタイプにおける改行コードの違いについて
概要
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