My Movable Typeのご紹介。
公開日 : 2007-05-07 23:38:25
最初にMTに触れてから1年強、自分で触り出してから半年くらい。僕には「アーミーナイフ」のようなこのツールがしっくり来た。受託系のWeb制作を生業として10人弱の会社を率いている身としても、このツールを極めることで新しい何かが見えて来そうな気がしている。
ということで、色々やっているんだけどまずはこのブログのしくみ? をご紹介してみる。
ItemSort(非公開)
カテゴリの表示順を制御したいとか、さらにはエントリーさえも自由に並べ替えたいとか、ブログではなくCMSとして使うのであれば当然出てくるニーズであり、「日付(created_on)を変更してください」「概要(excerpt)」欄に数字を入れてください」と説明していたウチのスタッフに、
- 「そんな説明あり得んやろ」
- 「でも、仕様上他に手は無いです」
という会話から産まれた一品(?)
カテゴリー名(label)の頭と、エントリーのキーワード(keywords)の頭にHTMLのコメントタグを加えるという「ありがちな」ことをやっているわけだがポイントはGUIで並び替え順を制御できること。且つCMS上では何ら意識することはない(コメント部をCMS上でカットしている)。
本当はDrag&Dropに対応させたいところだけど、これで充分という声? もあるし。
BackgroundRebuilder(公開:CCライセンス)
正直、これにはかなりの時間を割いた。速くなるわけでもなく、負荷が減るわけでもない。ただ、体感速度があがり、サイト制作シーン等では効率があがることは間違いない。 とにかく時間のかかる「再構築」処理をバックグラウンド化して、CMS上はレスポンスを素早く返す。「体感速度」を向上させるもの。
エントリーのカテゴリーを変更した時に「ゴミ」ファイルが出来る問題や「LaunchBackgroundTasks 1」を指定している時のバグ? (出力先ディレクトリがおかしくなる問題)にも対応している。つまり、できるだけ「ゴミ」を作らないという効果もある。
CleanUp(公開:フリー)
BackgroundRebuilderを導入していれば不要。
エントリー一覧画面で複数のエントリーをチェックボックスで選択して「非公開にする」を選択した時に、「DeleteFilesAtRebuild」が効かなくて(ゴミ?)ファイルが残ってしまう対策として、ステータスが下書きなのにファイルが残っている場合にリストアップして削除することができる。
Quickedit(公開:フリー)
エントリーを閲覧している時に「修正したい」と思ったらBookmarkletをクリック。これでエントリーの編集画面にジャンプできる。
主にセキュリティの問題から mt.cgi へのパスを晒したくないケースで使えると思う。
abs2rel(非公開)
MTから生成されるHTMLファイル内のリンクやimgタグのsrcを相対パスに変換するプラグイン。ローカル環境で閲覧とか、制作はCMS(MT)で、納品はファイルで、といった用途に使える。拡張子やディレクトリ単位で除外出来るようにしているので、IncludeファイルやRSS等を対象外に出来る。
※Includeファイルは、インクルードされた後にちゃんと相対パスに変換されます。
MTIfItemIsOdd(公開:フリー)
エントリーやカテゴリーの偶数・奇数で出力結果を変更する条件タグ・プラグイン。 いわゆる「縞々」の出力(このBlogのサイドバーのカテゴリーのような)に使える。
Jaccessibility(公開:CCライセンス)
Blogのアクセシビリティ向上をCMS側で行う、をコンセプトに作成したフィルタープラグイン。日付フォーマットや単位の表現など、主に「音声読み上げしやすく」する処理を行うもの。画像のalt属性をアップロード画面で入力できる機能も。
Moooooble(非公開)
(ふざけた仮称ですが...)モブログ機能拡張。携帯電話からメールで投稿、携帯電話からブログの管理、携帯電話からブログの閲覧ができる統合パッケージ。必要なPerlモジュールが結構ある等導入の敷居は低くはないと思うが、インストーラを用意したのでモジュールの問題さえクリアできれば導入は簡単かと。
Unicode::Normalize(公開:フリー)
PerlのUnicode::Normalizeテキストフィルター。Jaccessibilityプラグインに同様の機能あり。
CatIndexKiller(公開:フリー)
特定のカテゴリーアーカイブを「再構築しない」プラグイン。レア・ケースではあるが、特定のカテゴリーだけ出力結果を変えたい、というニーズがサイト制作にMTを使っている時に稀にあるのだが、その「ニッチ」なニーズに応えるもの。
StylePreview(公開:フリー)
エントリ投稿時の「確認」を改善するプラグイン。公開状態とほぼ同じ状態でテンプレートやCSSが適用された状態で「プレビュー」できる。設定が容易なのが特徴。プラグインを放り込むだけで有効になる。
IfMatchEntry(公開:フリー)
エントリーに含まれる文字列とか正規表現でテンプレートの処理を分岐させるプラグイン。同種のものもあるけど、扱い方が簡単。このブログでは携帯からの投稿を分岐処理させるのに使っている。
Estcmd for MT(非公開)
これは自分でも「すごい」と思う(自画自賛、というか本当にすごいのはHyperEstraierやけど)。HyperEstraierでブログ検索を提供するのだが、エントリーを更新すればリアルタイムに検索インデックスに反映される。また、ブログ毎の検索も、全ブログの横断検索も可能。実際の検索はPHPで書いたオリジナルの検索プログラムで行うのだが、テンプレートデザインの反映や、ブログ・カテゴリのマッチを優先する等柔軟な対応が可能。しかも共通ナビゲーションとかを無視して「エントリー」のコンテンツを優先して検索し、且つエントリーのタイトル等に重みづけがなされるために検索の精度、結果に対する品質もかなり高い。まだ色々と今後も拡張する予定。
FileManager(非公開:制作中)
MTから出力されたファイルとかアップロードされたファイルを管理するもの。 MacOSのFinderライクに管理できる。今のところビューワとファイルの削除部分を実装済み。
AltDinamicPublishing(非公開:制作中)
ダイナミックパブリッシングの代わりに「再構築」→「ファイルを生成」せずにDBに保存するもの。実際のBlog運用にメリットは殆どないが(DBの状況では再構築が軽い、というメリットはあるが)、サイト制作の過程で余計なファイルを生成しないで納品時に一気にファイルを書き出す(当然ゴミもない)という用途を想定している。