余分なホワイトスペースを削除するプラグイン

Movable Typeによって出力されたHTMLを見ると、余分なホワイトスペース(スペースや改行など)がかなり含まれていることがわかります。
特に、Movable Typeの標準のテンプレートは、内容を読みやすくするためにインデントが使われているので、出力されたHTMLにホワイトスペースが多く含まれます。

それらのホワイトスペースは、ページにアクセスがあった時の転送量を増やすことにつながります。
サーバーの負荷を少しでも低くしたいなら、HTMLから余分なホワイトスペースを削除したいです。
かといって、HTMLの元のテンプレートからホワイトスペースを削除すると、テンプレートの可読性が下がります。

そこで、テンプレートタグの出力結果から、余分なホワイトスペースを削除するプラグインを作りました。
これなら、テンプレートの可読性を損なわずに、出力されるHTMLから余分なホワイトスペースを削除することができます。
なお、このプラグインはMovable Type 4専用です。

1.インストール

このプラグインは、以下のアドレスからダウンロードすることができます。

TrimEx_1_00.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ファイルを解凍すると、「TrimEx」というフォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

2.trim_exモディファイア

このプラグインをインストールすると、「trim_ex」というモディファイアが追加されます。
このモディファイアの書き方は以下のようになります。

書き方動作
trim_ex="ltrim"文字列の各行の先頭にあるホワイトスペースを削除します。
trim_ex="rtrim"文字列の各行の最後にあるホワイトスペースを削除します。
ただし、行末の改行は残します。
trim_ex="trimcr"文字列の各行のうち、ホワイトスペースのみの行を削除します。

また、これらのモディファイアを組み合わせて使いたい場合は、「trim_ex="ltrim,rtrim,trimcr"」のように、削除方法を指定する文字列をコンマで区切って並べます。

例えば、以下のようにMTEntryBodyタグに「trim_ex="ltrim,rtrim,trimcr"」のモディファイアを追加すると、ブログ記事の本文に含まれる余分なホワイトスペースがすべて削除されます。

<MTEntryBody trim_ex="ltrim,rtrim,trimcr">

なお、ltrim/rtrim/trimcrとも、<pre>タグと</pre>タグの間にあるホワイトスペースは削除しません。

3.ApplyModifierプラグインとの組み合わせ

テンプレート内の任意の部分にこのモディファイアを適用したい場合、拙作のApplyModifierプラグインと組み合わせます。

例えば、以下のように、テンプレート全体をMTApplyModiferタグで囲み、trim_exモディファイアを指定すると、出力されたページ全体から余分なホワイトスペースを削除することができます。

<MTApplyModifier trim_ex="ltrim,rtrim,trimcr">
テンプレートの内容
</MTApplyModifier>

4.PHPのincludeと組み合わせる場合の注意

ページの中にPHPのinclude文がある場合、ページが読み込まれる時点でincludeの処理が行われます。
そのため、includeしたファイルの中にホワイトスペースがあると、それは削除されずに、Webブラウザに送信されることになります。

includeするファイルからもホワイトスペースを削除したい場合、そのファイルの元になるテンプレートにtrim_exモディファイアを追加して、そのファイルが再構築される時点でホワイトスペースを削除するようにします。