DynamicMTMLとPerl版ダイナミック・パブリッシングの違い

DynamicMTMLについて、以下のような質問をいただきました。

Perl版ダイナミックパブリッシングプラグインとDynamicMTMLに、機能的差異はありますか?

両者は動作原理が異なり、機能やメリット/デメリットも異なります。
そこで、両者の違いについて解説します。

1.DynamicMTMLの動作の仕組み

DynamicMTMLは、静的なHTMLファイルの中にMovable Typeのテンプレートタグを書いて、その部分だけを動的に処理する仕組みです。

動的な処理は、Movable Type標準のダイナミック・パブリッシングを応用して作られています。
そのため、動的な処理はPHPで行うことになります。
HTML内のDynamicMTMLの部分は、ダイナミック・パブリッシングに対応したテンプレートタグだけで記述する必要があります。
ダイナミック・パブリッシングに対応していないテンプレートタグを書くと、ページの表示の際にエラーメッセージが表示されます。
プラグインでテンプレートタグを拡張する場合、そのプラグインがダイナミック・パブリッシングに対応している必要があります。
この点がデメリットです。

一方、DynamicMTMLでは、静的と動的を混在できるというメリットがあります。
通常のテンプレートの中に、部分的にDynamicMTMLを入れておくと、DynamicMTML以外の部分は静的に再構築され、DynamicMTMLの部分だけ動的に処理されます。

また、DynamicMTMLでは、Movable Typeのテンプレートだけでなく、一般のHTMLファイルの中にテンプレートタグを書くこともできます。
既存の静的サイトのHTMLの一部だけをDynamicMTMLに書き換えて動的化する、といった使い方もできます。

2.Perl版ダイナミック・パブリッシングの仕組み

Perl版Dynamicパブリッシングは、テンプレートを動的に再構築して表示する仕組みです。

動的な再構築は、Movable TypeのPerlのフレームワークを利用して行っています。
そのため、既存の(ダイナミック・パブリッシング非対応の)大半のプラグインが、そのまま動作するというメリットがあります。

一方、DynamicMTMLとは異なり、既存の静的HTMLファイルにテンプレートタグを組み込んで動的化するような機能はありません。
Movable Typeのテンプレートの中でのみ、利用することができます。
また、1つのテンプレートの中で、静的部分と動的部分を混在させることはできません。
これらの点がデメリットです。

3.両者の混在は不可

DynamicMTMLとPerl版ダイナミック・パブリッシングは、いずれも.htaccessを利用して処理を行っています。
そのため、両者を混在させるとバッティングが起こってしまいます。
申し訳ありませんが、現状では両者を混在させることはできません。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください