MTで出力されるbrタグの変換方法

HTML4.01でMovableTypeのテンプレートを作成した場合、正しいHTMLである為には<br>タグは適切な状態になっている必要があります。「改行を変換」「リッチテキスト」で記事を書いた場合、<br />を出力するのでHTML4.01でブログを作成した場合都合が悪いです。ここではその対策をいくつか考えていきます。

replaceモディファイアを使ってbrを置換する(推奨)

個人的にはこれが一番良い方法だと思っています。どんなフォーマットで記事を書いても強制的に変換できる為です。replaceモディファイアについてはマニュアルを参照してください。

<$MTEntryBody replace="<br />","<br>" replace="<BR />","<br>"$>
<$MTEntryMore replace="<br />","<br>" replace="<BR />","<br>"$>

とすれば、HTMLとXHTMLの違いを理解していない人が改行タグを書いてしまってもある程度問題ないです。テンプレートをXHTMLで作っても、<br>タグを直接書かれてしまう可能性がある場合は、これの置換するタグを入れ替えて対応することができます。
MTEntryBodyやMTEntryMore以外のカスタムフィールド等にも使えます。

ほか

  • そもそもHTML5でテンプレートを作る
  • nl2brモディファイアを使用する
    • (フォーマットが「なし」の時?)空白行を<br>に置き換えることができるタグのようで、nl2br="xhtml"とすると<br />になります。nl2brモディファイアについてはマニュアルを参照してください。
  • 「改行を変換する」のカスタマイズ
    • MTの「改行を変換する」について - sampling.sys(この記事では改行タグがどうというよりは「改行を変換する」自体の改良が主旨になっています。)
      lib/MT/Util.pmを編集する手段です。「改行を変換」で記事を書いた場合には確実な方法の一つですが問題もあります。MT内全てで共有しているUtil.pmを編集してしまうと、ブログによってHTML/XHTMLが混在する場合厄介です。この記事では<br>だけを気にしているので、あまり向いてないかもしれません。
  • 記事を書いてからいったん「リッチテキスト」を選択する

最終更新: 2017-10-15 (日) 22:57:02