これは、Movable Type Advent Calendar 2014の15日目の記事です。
Data APIが利用できるようになったからか、最近は新しいMovableTypeプラグインが増えてきました。
私は大きな機能を追加するものよりも、ちょっとした不満を解消する「細かくて伝わらない」系のプラグインが好きだったりします。
実際に検証したものをいくつかご紹介します。
新しいプラグインディレクトリ
MovableTypeの公式プラグイン・テーマディレクトリが、新しくなったことをご存知でしょうか。
「MovableType プラグイン」「MovableType テーマ」で検索しても、このページは出てきません。タイトルに含まれていないからです。
今のところ先頭に出てくる、公式の告知記事を経由すればいいのですが、気付いていない人も多そうです。「作品を探す」というのはいらないので、title要素を再考していただきたいところです…
さて、本題に入ります。
リアルタイムプレビューを可能にする「FastestPreview」プラグイン
「FastestPreview」は、プレビュー画面が編集画面の変更をその場で反映するようになるプラグインです。
記事・ウェブページ、スタティック・ダイナミックともに動作します。
- FastestPreview – Movable Type Plugins And Themes Directory
- FastestPreview – 編集画面とプレビュー画面を同期するプラグイン – blog.taaas.jp
MovableTypeは最近のCMSのような「公開画面を見たまま編集」ができませんが、このプラグインを入れると近いことは可能になります。デザイン重視のサイトで導入すると喜ばれそうです。
ただし、シビアなサイトに導入するときには、いくつか注意が必要です。
- ある程度のディスプレイ解像度が必要です。XGA程度では厳しいでしょう。
- テキスト形式以外のカスタムフィールド、日付、カテゴリーには対応していません。
- 画面が更新されるタイミングは「キーを押したとき」になります。マウスで画像やリンクを追加したときは更新されません。
- エントリーアーカイブをスタティックで書き出している状態で、編集画面を保存する前にプレビュー画面を閉じると、サーバー上にプレビュー用のHTMLが残ってしまいます(※)。
※MovableTypeの仕様です。もう一度、同じ記事をプレビュー・更新すると削除できます。
ファイル名の重複を防ぐ「InvalidBasename」プラグイン
MovableTypeは、書き出されるファイル名を指定することができます。
既存コンテンツと重複した場合、ウェブページについては、保存しようとするとエラーになりますが、何故か記事はこのチェックが行われないので、IDが古い方のページが上書きされてしまいます。
このプラグインを導入すると、記事に対しても重複チェックを行うようになります。
- InvalidBasename – Movable Type Plugins And Themes Directory
- 出力ファイル名が重複したらエラーを出すMTプラグイン「InvalidBasename」 | SRE BLOG
私はMovableTypeの構築をする際、特にURLの指示がなければ、日付やIDをファイル名にするよう設定したりしています。
このプラグインを入れればその心配もいらなくなるので、今後は常に入れておこうかなと思います。
なお、チェックを行うのは「最初に記事が保存されたとき」です。プラグイン導入前にすでに重複してしまったファイル名はチェックできません。
ファイル名関連はほかにも、タイトルから英数字を自動抜粋した変なファイル名になるのを防ぐ「DisableRebasename」プラグイン、タイトルを英語に翻訳して抜粋する「Translate Basename to English」もあります。
- DisableRebasename – Movable Type Plugins And Themes Directory
- Translate Basename to English – Movable Type Plugins And Themes Directory
前者の方は、ファイル名が空のまま公開すると、やっぱり自動抜粋のファイル名になってしまうので、後者の方が実用性が高そうです。
IDや名前からカテゴリーの情報を取得する「SpecificCategory」プラグイン
開発用プラグインですが、個人的にはこれがいちばんおすすめです。
WordPressの「get_category」関数のような、名前からのカテゴリー情報の取得がMovableTypeでも可能になります。
こちらについては「いろいろコードスニペット」の方で解説しています。
私は、MovableTypeの構築で、インフラと化しているもの以外のプラグインを導入することはほとんどありません。
プラグインなしでもかなりカスタマイズができるというのもありますが、企業・団体での利用が多いという性格上、プラグインに頼るリスクを抱えるようなアグレッシブな構築は要望として上がらないのです。
なので、今回久しぶりに新しいプラグインをいろいろ検証しました。
案件に合ったプラグインの導入は、開発や更新の不満を大幅に軽減します。機能や欠点を理解したうえで、上手に使いこなしたいものです。