Movable Type 備忘録
Movable Type 4 で使用できるプラグイン
今まででは、ちょっとした条件でテンプレートの内容を変えようとすると、プラグインに頼らざるを得なかったのですが、Movable Type 4 では複雑な条件によるテンプレートの表示が行えるようになりました。
とはいっても、やっぱりプラグインの機能拡張は魅力でして、わたしが実際に使ってみた Movable Type 4 用のプラグインを以下に記してます。
プラグイン技術情報
また、プラグイン作成のための技術情報も公開されてます。
- Movable Type API リファレンス(英語版)
- Movable Type オブジェクト・リファレンス(日本語版)
- Movable Typeユーザー・マニュアル: プラグインの書き方
- プラグイン開発のためのファーストステップ
- テンプレート・タグ(変数タグ) プラグインの開発
- ローカライズ技術の解説
- フィルター プラグインの開発
- テンプレート・タグ(コンテナ・タグ) プラグインの開発
- テンプレート・タグ(条件タグ) プラグインの開発
- Transformerプラグインの開発
プラグイン(Perl)を解析するための基礎知識
プラグイン一覧
Movable Type 4 より前のバージョンでは使用できませんのでご注意ください。
- [2007.12.24] InvalidateCodePress
- [2007.12.22] InsertIcon
- [2007.12.02] PreviousNextInCategory / MTBooter
- [2007.11.24] MTTimer / StopWatch
- [2007.11.19] FileInfo
- [2007.10.31] Asset Handler
- [2007.10.28] LoginSession
- [2007.10.20] Mapper
- [2007.10.11] ModifiedCMSPagination
- [2007.10.08] GoogleAdsenseWidget / GoogleAnalyticsWidget / HatenaBookmarker / MyBlogs
- [2007.10.07] CheckLink / PageBute / TemplateShelf
ApplyModifier
Movable Type 4 のテンプレートでは、MTSetVar タグやテンプレートモジュールが多用されています。 その影響で、ページの先頭に余分な空白が入ってしまいます。
ApplyModifier プラグインは、再構築後のページ先頭の余分な空白を削除してくれるプラグインです。Asset Handler
イメージファイルなどのアイテムを一括して Movable Type に登録することができるプラグインです。MT3.3x からアップグレードした人にオススメです♪
アイテムに付けたタグやファイル名も一括して変更することができます。とっても便利ですの♪ArchiveDateHeader
Movable Type 3.2 の頃から使用しているプラグインです。 月別アーカイブ一覧を、年別に一覧表示することができます。
たとえば、わたしのサイトのサイドバーに表示している Monthly Archive のようなかんじで一覧表示します。BlogSkeletonCloner
BlogSkeletonCloner プラグインは、ブログのテンプレートのみ複製することができるプラグインです。
ブログ一覧から複製したいブログを選択して、「アクション」ドロップダウンリストから「ブログの複製(スケルトン)」を選択すると、複製元のテンプレートを丸ごとコピーしたブログを作成することができます。記事内容はコピーされません。記事内容も含めて複製したい場合には、「アクション」ドロップダウンリストから「ブログの複製」を選択することで、新規ブログとして同じものが作成されます。
CheckLink
CheckLink プラグインは、エントリ内のリンク切れをチェックしてくれるプラグインです。
メンテナンスにはもってこいのプラグインだと思います ( ̄∇ ̄)bCompare
Compare プラグインは、Movable Type 4 以前のバージョンから使用されてるプラグインです。
いろんな条件タグがサポートされてて、この条件タグを使用することで人とは違ったテンプレートなど作ることができます。
でも、Movable Type 4 では標準の条件タグが強力になったことで、このプラグインを使用しなくてもほとんどのことは可能となっています。Counter
Counter プラグインは MTCounter ブロックタグ内のループカウント数によって条件を付加することができるプラグインです。
たとえば、奇数/偶数で表示を変更したりなどができます。EntryPrimaryCategory
エントリは複数のカテゴリに属すことができます。エントリに属す、プライマリ・カテゴリを表示したい場合標準のタグではできません。
たとえば、パンくずリストなど作りたい場合に困ってしまいます。EntryPrimaryCategory プラグインは、エントリのプライマリ・カテゴリを取得するブロックタグを提供します。EntryPrimaryCategory タグの間でしたら、MTCategories ブロックタグのように使用することができます。
ちなみにわたしが作ったプラグインです (; ̄∇ ̄A
EvalTemplate
Movable Type のタグは通常、テンプレート内でしか使用できません。
たとえば、エントリ内で MT タグを使用したいなって思ったことありませんか。EvalTemplate プラグインは、エントリの中で MT タグを使用できるようにするプラグインです。
たとえば、わたしの場合いろんな JavaScript、プラグインのご紹介をする上で、サンプルとして MT タグを使用したい場合があります。そんなとき重宝します。FeedburnerWidget
FeedburnerWidget プラグインは、FeedBurner を使用している場合、ダッシュボード上に購読情報を表示してくれるプラグインです。
ただし、このプラグインではfeedburner.com 用なので、feedburner.jp 用にカスタマイズする必要があります。
具体的には以下の箇所を修正します。
feedburner_widget.pl / 84 行目
my $url = "http://api.feedburner.com/awareness/1.0/GetFeedData?uri=my $url = "http://api.feedburner.jp/awareness/1.0/GetFeedData?uri=
tmpl/blog_config.tmpl / 6 行目
http://feeds.feedburner.com/http://feeds.feedburner.jp/
赤い字の部分を青い字のように修正するだけです。
FileInfo
FileInfo プラグインは、再構築時にアーカイブタイプを識別できるプラグインです。
たとえば、ブログ記事リスト・テンプレートは、カテゴリ・アーカイブ、月別アーカイブ、年別アーカイブなど、複数のアーカイブが 1 つのテンプレートで共有されてますね。 カテゴリ・アーカイブだけ別な処理をさせたいなどの用途に使えそうです。ただアーカイブの識別するだけなら Movable Type の予約変数を使うことで同様のことはできますけどね。
FilterCategories
FilterCategories プラグインは、特定のカテゴリのみ表示したり、省いたりすることができるプラグインです。
GoogleAdsenseWidget
Google AdSense の収益(所得)をダッシュボード上に表示してくれるプラグインです。言うまでもなく、Google AdSense に登録している必要があります。
わたしは残念なことに、イタズラ!? 行為によってアカウントを削除されてしまったので確認はしていません。GoogleAnalyticsWidget
Google Analytics のレポートをダッシュボードの 'BLOG STATS' に表示できるプラグインです。 配布元ではページビューがサンプル表示されてますが、わたしのとこでは訪問者数が表示されました。
HatenaAuth
Movable Type 4 から、複数のユーザ認証サービスを選択することができるようになりました。ユーザ認証とはカンタンに言うと、コメント投稿時の認証のことです。
HatenaAuth プラグインは、このユーザ認証の 1 つに「はてな認証」を追加するためのプラグインになります。
必ずしも必要というわけではないですが、選択肢が多い分にはいいかな、と思います。HatenaBookmarker
新規投稿や投稿済みのエントリを更新したときに、はてなブックマークにポストしてくれるプラグインです。また、エントリ一覧から選択した複数のエントリを一括してポストもできるようです。
HatenaBookmarkWidget
Movable Type 4 で追加された機能にダッシュボードというのがあります。
コメント一覧や最近の記事一覧、タグ一覧などが表示される画面ですね。HatenaBookmarkWidget プラグインは、このダッシュボード上に、今まで投稿したエントリで、はてなブックマークされたエントリの一覧を表示してくれるプラグインです。
IfFileExist
IfFileExist プラグインは、任意のファイルが存在するか否かをチェックする条件タグを提供します。
たとえば、あるファイルが存在する場合のみコンテンツを表示したい・・・などのように使うことができます。ちなみにこちらもわたしが作ったプラグインです (●´∀`●)
InsertIcon
InsertIcon プラグインは、エントリ内、コメント投稿時に絵文字アイコンを挿入できるプラグインです。
コメント投稿時の絵文字アイコン挿入には、別途 ConvertIconMacro プラグインも必要になります。InvalidateCodePress
Movable Type 4 からテンプレート編集画面で整形機能が追加されました。整形機能として CodePress というツールが使用されてますが、InvalidateCodePress プラグインはこの CodePress を無効にするプラグインです。
わたしみたいに Syntax Highlight 機能が不要な人にオススメです ( ̄∇ ̄)bLinkNumber
LinkNumber プラグインは2ちゃんねるライクなコメントの参照機能を提供するプラグインです。
MovableType MEMO で配布する、Movable Type 4 用テンプレート内でも使用しています。具体的にはわたしのサイトの、各エントリのコメント欄のようなかんじです。
LoginSession
LoginSession プラグインは、MT 画面にログインしている場合のみ、動的にエントリの編集画面へのリンクを表示することができるプラグインです。
このプラグインは Cookie を使用します。使い方はカンタンで、
まずプラグインをダウンロードしていつものように mt/plugins/ ディレクトリ内にインストールします。
次に各ブログ記事テンプレート内の先頭に以下のタグを追加します。
<$MTUseMTLoginSession$>そして、編集画面へのリンクを表示したい場所に以下のタグを追加します。
<MTIfLoggedInMT> <p><a href="<$MTEntryEditLink$>">Edit this entry</a></p> </MTIfLoggedInMT>最後に mt-config.cgi 内に以下を追加します。
#======== セッション管理用 =========== # セッション管理用の Cookie を生成する際に利用するパスを設定できます。 CookiePath /
詳細は配布元の説明をご覧ください。
loopcontainer
Movable Type のループ処理は、基本的にエントリやアーカイブに依存した繰り返し処理しかできません。
LoopContainer プラグインは、エントリやアーカイブに無関係に、独自のループ処理を提供してくれます。たとえば、MTLoopContainer ブロックタグ内の記述を繰り返し行わせることができます。
またまたこのプラグインもわたしが作ったものです (●>∀<●)MailForm
MailForm プラグインは、その名の通り、メールフォームを設置するためのプラグインです。
使い方はカンタンで、各自でお好みのフォームを用意して、コメント投稿と同様のプレビュー/完了/エラーのテンプレートモジュールを作成するだけです。Mapper
Google マップや ALPSLAB のマップサービスを利用して、記述した map タグを地図イメージに変換してくれるプラグインです。使い方はカンタンで、
<MTMapper> ブロックタグで <MTEntryBody>、<MTEntryMore> を囲います。
<MTMapper> <div><$MTEntryBody$></div> <div><$MTEntryMore$></div> </MTMapper>エントリ内に [map:住所] というフォーマットで表示させたい住所を記述します。
[map:東京都中央区銀座8-3-10]
以上です。後は再構築するだけで地図表示用の JavaScript に変換してくれます。
Google マップを自分のエントリ内に地図描画してるサイトを見かけますね。ModifiedCMSPagination
ModifiedCMSPagination プラグインは、管理画面の各一覧ページにダイレクトにページ送りできる機能を提供します。
たとえば、エントリ一覧やコメント一覧などは 1 ページに表示できる件数は最大 100 行ですが、ドロップダウンリストから任意のページにジャンプすることができます。ModTextFilter
Movable Type には、エントリの本文/追記の中の改行を自動的に変換したり、規定のフォーマットに変換する機能があります。
Movable Type 4 では WYSIWYG が採用されています。ModTextFilter プラグインは、エントリ投稿時の改行を自動的に変換するだけでなく、コメント投稿時の改行についても自動変換してくれます。
わたしは主にコメント投稿時の変換として使用しています。MTBooter
テンプレートの表示確認用にオススメなプラグインです。
通常なら、テスト用のブログを作成してエントリやらコメント、タグなどすべて手作業で作成する必要がありました。でも、MTBooter プラグインを使用すればカンタンに任意のエントリ数、コメント数、タグ数分のダミーデータを作成することができます。ただし、一度インストールしてしまうとデータベースを更新するようなので削除できなくなります。ご注意ください。
使い方はカンタンです。
ダミーデータを作成したいブログに移動します。
メニューの「新規作成」から「Test Data」を選択します。
データ作成画面が表示されますので、以下の設定内容を元に任意数分のデータを指定します。
- How many entries would you like to create?
作成したいエントリページ数を指定します。エントリページは作成したくない場合には 0 を指定します。 - How many Pages would you like to create?
作成したいウェブページ数を指定します。ウェブページは作成したくない場合には 0 を指定します。 - How many years back should the entries go?
作成するエントリ/ウェブページの投稿日を過去にさかのぼって作成できます。過去何年前のデータを作成するか指定します。デフォルトは 5 年です。 - Max number of tags for entry?
作成するタグ数を指定します。タグは作成しない場合には 0 を指定します。 - Add comments
作成したエントリ/ウェブページにコメント投稿も追加するか否かを設定します。追加する場合にはチェックしてください。 - Rate entries
すいません。これよく分かりません。評価!? って何の評価なのやら (; ̄∇ ̄A チェックしなくっても問題ありません。
- How many entries would you like to create?
一通り設定したら「新規作成」ボタンで作成します。作成後、「created successfully! Rock on!」と表示されれば完了です。
完了後、引き続き追加作成できますが、その必要がなければ「キャンセル」ボタンで終了します。
コメント投稿追加を行った場合には、コメント一覧にてコメント許可設定を行ってください。
MTTimer
MTTiemr プラグインは再構築時の処理時間を計測してくれるプラグインです。2 点間の計測も可能なようです。
使い方はカンタンで、たとえばタグ検索結果の処理時間を計測したい場合には、検索結果テンプレート内に MTTimer プラグインのタグを組み込むだけで計測できます。ただし、Perl の Time::HiRes モジュールがサーバにインストールされてる必要があります。
MyBlogs
Movable Type 3.3x の頃に使用していた管理画面にしてくれるプラグインです。
Movable Type 4 のダッシュボードが使いにくい、重たくて嫌だ!! って人にオススメです ( ̄∇ ̄)bわたしはエントリ編集画面の JavaScript を何とかしてもらいたいですの。重たくってしょうがないですのっ!!
PageBute
ページを分割できるプラグインです。
たとえば、わたしのサイトの年別アーカイブを、このプラグインを使って 1 ヶ月単位にページ分割してみました。Precode
Precode プラグインは JavaScript のコードや PHP のコードなどを表示したい場合、行番号付きで整形してくれるプラグインです。
pre タグと code タグを使って表示するのが通常ですが、行番号を付加することでチョビッとリッチに表示させることができます。こちらもわたしが作ったものです (; ̄∇ ̄A
PreviousNextInCategory
個別エントリアーカイブ内で使用するプラグインです。
エントリの前・次リンクは、デフォルトでは投稿された順にリンクが生成されます。この PreviousNextInCategory プラグインを使用することで、カテゴリ内の前・次リンクを生成することができます。ただし、PreviousNextInCategory は元々 Movable Type 4 向けのプラグインではありません。
一応わたしのサイトでも使用してますが、前・次リンクを生成するだけなら問題はなさそうです。参考:カテゴリ内で前・次リンクを行う / MovableType MEMOのテンプレートお使いのみなさんへ4
ダウンロードreCaptcha
reCaptcha プラグインは、ダウンロードした Movable Type 4 の圧縮ファイル中に同梱されているプラグインで、reCaptcha が提供する CAPTCHA 認証サービスを使うことができるプラグインです。
CAPTCHA 認証とは、グニャグニャしたテキストイメージを動的に生成して、スパム対策としてコメント投稿時にイメージ中のテキスト入力を促す認証です。ですので、ユーザ認証を使用せず匿名でのコメント投稿の場合は CAPTCHA 認証を行ってください (●>∀<●)/ というシロモノです。
Recently_Pinged_On
コメント一覧のようにトラックバック一覧も、エントリごとにトラックバック一覧を表示できたらいいと思ったことありませんか。
Recently_Pinged_On プラグインはそんな機能を提供してくれるプラグインです。Regex
Regex プラグインは、任意の正規表現を使ってエントリの内容を書き換えたり、条件分岐したりできるプラグインです。
でも、Movable Type 4 では Regex プラグインと同様の機能が追加されました。
regex_replaceRelativePath
RelativePath プラグインは、MTBlogURL タグや MTLink タグの URL( or パス) 部分を抜き出して、別な URL ( or パス)を作成したりすることができるプラグインです。
この RelativePath プラグインを使用すれば、ベースとなる URL( or パス)を基準にした URL を作成することができるので、テンプレート作成時に役立つと思います ( ̄∇ ̄)b
MovableType MEMO で配布する、Movable Type 4 用のテンプレートには、すべて RelativePath プラグインを使用してテンプレートを作成してます。ちなみにこのプラグインもわたしが作ったものです (//▽//)
ReleaseDate
ReleaseDate プラグインは、エントリの日付を公開日時に自動的に行ってくれるプラグインです。とっても便利です (●´∀`●)
通常ですと、エントリの日時は作成日時となってしまいます。ですので、記事を書いてる間、2 時間、3 時間と経過してしまった場合ズレが生じます。
最悪なのは日付をまたがった場合です。深夜に記事を書いてるとき、0 時を回ってしまうと明日の投稿となってしまうわけです。このプラグインは必須ですね。
RemoveBlank
ApplyModifier プラグインの機能と重複するところがありますが、RemoveBlank プラグインは再構築後の余分なブランク(スペース or タブ)を削除するプラグインです。
ApplyModifier プラグインは、再構築後のページ先頭の余分な空白を削除してくれますが、RemoveBlank プラグインは行の先頭および、末尾のブランクを削除します。ですので、Movable Type 4 のテンプレート特有の余分な空白はもちろんのこと、行の先頭/末尾のブランクも削除しますので、チョビッとスリム化することができます。
スリム化するということは、サーバからのデータ転送量を減らすことができる・・・というわけです ( ̄∇ ̄)b
改行は削除しないようにしています。このプラグインもわたしが作ったものです (; ̄∇ ̄A
RoundRobin
RoundRobin プラグインは、リストの背景や文字の色を交互に変更したり、MTEntries ブロックタグで出力される内容を偶数番/奇数番で変更したりなどができるプラグインです。
特にリスト表示時には背景色を変えることで見やすくすることができると思います。StopWatch
MTTimer プラグインと同様です。
TemplateHammer
Movable Type 4 のテンプレートでは、テンプレートモジュールを活用することで共通部分などがパーツ化されています。
メリットととしては、共通な部分がパーツ化されるのでテンプレートの変更などが容易に行うことができます。デメリットとしては、テンプレートの全体が分かりにくいということでしょうか。TemplateHammer プラグインは、パーツ化されたテンプレートモジュールを読込むことで、Movable Type 3.3x のテンプレートのようにまとめてくれるプラグインです。
具体的にはテンプレート内の MTInclude タグが処理されて、テンプレート本来の姿(条件タグは再構築時に反映されます)にしてくれます。テンプレート全体がイメージしにくい ヽ(`Д´)ノ という人にはうってつけのプラグインとなってます。
TemplateShelf
Movable Type 4 のテンプレートでは、テンプレートモジュールをフルに活用しています。共通な部分をテンプレートモジュールとすることで、すっきりとしたテンプレートに仕上がっています。
反面、テンプレート作成中は、画面間を行ったり来たりするなど、画面移動が頻繁に発生します。 そこで便利なのが TemplateShelf プラグインです。
このプラグインを使用することで、サイドバー上にすべてのテンプレートを一覧表示することができるようになるので、ダイレクトに編集したいテンプレートに移動することができます。とっても便利です。お試しアレ (●>∀<●)/
trimj_to
trimj_to プラグインは、長くなったテキストをトリミングしてくれるプラグインです。 Movable Type の標準タグでも trim というグローバルフィルタがありますが、trimj_to プラグインではトリミング後のテキストに「・・・」を付加してくれます。
MovableType MEMO で配布するテンプレートでも使用しています。


