• 更新:
  • 投稿:
  • カテゴリィ:

【常識】MT の動的生成は Smarty を使ってる【今更】 : 亜細亜ノ蛾 に引き続き、PHP 版のダイナミックパブリッシング(動的生成)について。

動的生成に移行する場合に障害となるのは、やはりプラグインを使っている場合です。PHP に対応したプラグインを使っているの場合は、テンプレートの変更なしでもそのまま移行できます。mt_dir/php/plugins をざっくり見て、使っているプラグインの名前があれば、大丈夫でしょう(それでいいのか)。もし、PHP 非対応だった場合はテンプレートの書き直しが必要です。

──だがしかし。ちょっと落とし穴なのが、「改行設定」──いわゆるテキストフォーマットを変更するプラグインを使って記事を書いていた場合。このせいで自分は PHP 版の動的生成に移行できなかった、のをいま思い出しました。

いくつか抜け道があるので紹介します。

記事のモジュール化

あなたのmovabletype、重たくないですか?(テンプレートモジュール化) (CROSSBREED クロスブリード!) は、2004 年に書かれた記事ながら今後も残り続ける良記事です。

この記事の終わりの方にある記事の部分のモジュール化を利用すると、PHP 非対応版のテキストフォーマッタを使っていても、無理矢理「ページの動的生成化」ができます。すなわち、

  1. 記事部分(本文と追記)をモジュール化
    • 静的に生成
  2. 個別ページ(など)のテンプレートを変更

という、ちょいワルな方法。記事の部分は、けっきょく静的生成だったり。

ただ、この「一つのページで静的生成と動的生成を混在できる」というのは頭の隅に置いておくヨロシ。いろいろな場面で応用ができるでしょう。

エクスポート・インポートする方法

記事をすべて「改行設定 : なし」、つまりプレーン (X)HTML に変換してエクスポート、そしてインポートする方法。大がかりでデータベースのバックアップ必須です。

で、問題のプレーン (X)HTML に変換する方法は、「それ Plu」──と言いたいところですが、「MT 標準で出来ることは MT 標準ですべし」と、ばっちゃが言ってた(元ネタ知らぬ)。

要するに、「エクスポート」準拠のテンプレートを一つ作ればいいわけです。自力で作ろうとしましたが、Movable Type Knowledge Base: Customized Exports で six apart 純正(?)のテンプレートが公開されているので、有り難く利用します。

CONVERT BREAKS: の部分は `0`(変換無し)にする必要があります。

Markdown の場合

そもそもテキストフォーマッタに Markdown を使っている場合、初めから PHP 版があるので、そのまま移行できますね。

Movable TypeのDynamic PublishingでMarkdownを使う (pLab blog)

対応しているブログも多いし、Markdown はかなりお勧めです。

[2] このページの一番上へ戻る