【MovableType】編集画面をテキストエリアにする

100405-0005.png

MTに記事を投稿するときはIt’s All Textアドオンを使っている。これはブラウザの<textarea>を自分の好きなエディタで編集させてくれる素敵なアドオンだ。入力中に文字を訂正しようとしてControl + Hを押すとブラウザの履歴タブが開いてしまい、憤りの余りモニタを殴り付けた経験のあるEmacs / Vimユーザには必携と言える1

It’s All Text! :: Add-ons for Firefox
https://addons.mozilla.org/ja/firefox/addon/4125

しかしこのアドオンも万能ではない。<textarea>のみにしか効果がないので、MT5より搭載されたCodeMirrorではこのアドオンが使えないのだ。具体的には、テンプレートの編集画面がそれに当たる2

Continue reading

【MovableType】エントリーの中でタグを使う

現在では mteval を使った方法が推奨されています → こちら

エントリーの中に以前のエントリーへのリンクを貼りたいことがよくある。そう思ってエントリーへのリンクを生成するタグをエントリー本文に書いても無視されてしまう。そんなときに使うのがこれだ。

エントリーやウェブページ内でMTタグが使えるプラグイン:Templatize | Movable Typeプラグイン | MTエンジニアブログ | スカイアークシステム
http://www.skyarc.co.jp/engineerblog/entry/3969.html

インストール & 設定

ファイルのコピー

ダウンロードして出てきた「Templatize.pl」を「mt/plugins」にコピーするだけだ。

$ unzip Templatize.zip
$ cp Templatize.pl ~/Sites/mt/plugins

テンプレートの修正

プラグインを有効にするには、該当するタグにアトリビュートを付ける。具体的には各店プレートに於いて次のように書けばいい。

<$mt:EntryBody templatize="all"$>
<$mt:EntryMore templatize="all"$>

Continue reading

【MovableType】決まった時刻にブログを自動で再構築する

記事を投稿したとしても、最新の状態になるのはその記事とトップページなどで、他の記事に含まれる「最近のエントリー」「関連するエントリー」は更新されない。これらを更新するためにはブログ全体の再構築が必要なのだが、記事の投稿のたびにやるのでは二度手間だ。そういうときにはこれ。

Movable Type 備忘録 – MovableTypeを自動的に再構築する
http://bizcaz.com/archives/2006/08/09-221138.php

mt-rebuild / Code / The Appnel Group
http://appnel.com/code/mt-rebuild

ずいぶん古いスクリプトだがMT5でも問題なく動くようだ。インストールした上で、Cronを使ってサーバの暇な頃(朝4時とか)に実行するよう設定した。

mt-rebuildのインストール

ダウンロードしたファイルをmtディレクトリに展開する。

$ cd mt
$ tar zxvf ~/Downloads/mt-rebuild-0.2.tar.gz
x Changes
x docs/
x docs/mtrebuild.html
x mt-rebuild.pl

試しに再構築してみる

コマンドラインから実際に再構築をやってみよう。

$ ./mt-rebuild.pl -blog_id=ブログID -mode="all"

-modeオプションや-archive_typeオプションで(必要ならば)再構築する範囲を指定できるが、今回はそこまで指定していない。

指定時刻に実行するように設定する

$ sudo crontab -e
10 4 * * * /path/to/mt/mt-rebuild.pl -blog_id=4 -mode="all" > /dev/null 2>&1

これで毎日午前4時10分に実行されるようになった。

iPhone用ページに自動で転送する

【MovableType】iPhone用テンプレートの導入 | blog.delphinus.dev」では iPhone 用のページを作成し、切り替えて利用できるようにした。しかし、実際に使うときにはPCで見たときは PC 用ページ、iPhone で見たときには iPhone 用ページを表示して欲しい。そんなときは Apache の mod_rewrite モジュールを利用する。ここのサイトが詳しかった。

杉浦とホームページ製作〜 URL を書き換えろ!「Rewrite 機能とは」
http://www.nurs.or.jp/~sug/homep/rewrite/rewrite1.htm

Apache の設定を確認

httpd.conf に次の一行があるか確認する。そもそもこれがないとモジュール自体が機能しない。

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

そして肝心の「iPhone 用のページに自動で転送する」ためには次の設定を使う。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^(.*)\.html$ /m/$1.html [L]

User-Agent 文字列に「iPhone」「iPod」を含み(2 行目)、要求された URI が「/m/」で始まらない場合は(3 行目)、HTML ファイルの要求を「/m/」ディレクトリにある同名のファイルへ転送する(4 行目)。これをどこに書くかは二通りある。

  1. httpd.conf(またはそこにインクルードされるファイル)に書く
  2. 転送したいファイルのあるディレクトリの .htaccess に書く

Continue reading

【MovableType】iPhone用テンプレートの導入

IMG_1031.PNG

MovableType の iPhone 用テーマを導入してみた。この種のテーマでは crema 氏による iPhone テンプレート for MTがデファクトスタンダードのようだが、インストール手順が非常に煩雑だったことで導入をためらっていた。

そんなとき、もう一つの選択肢を発見。

Ogawa::Buzz: Pluggable なテンプレートセットを実現する Templetsフレームワーク
http://blog.as-is.net/2008/08/pluggable-templets.html

このプラグインを使うと、ベースとなるテンプレートに対して小さなテーマの固まり(「テンプレット」と呼ばれる。)を追加することができる。デフォルトで上述の「iPhone テンプレート for MT」を「テンプレット化」したものが用意されており、導入がだいぶ簡単になっている。手順は次の通りだ。

  1. テンプレットプラグインのインストール
  2. iPhone テンプレットをインストール
  3. 現在のテーマにテンプレットを適用する

Continue reading

【MovableType】iPhone用管理ツール「iMT」がMT5に正式対応

iPhoneなどのスマートフォンで記事の投稿・編集、コメントの閲覧・削除などが行えるプラグイン、「iMT」がバージョンアップしてMT5に対応してた。

iMT – iPhone Interface for Movable Type
http://plugins.movabletype.org/imt/

インストール方法はこちら。MT4用の文書だが、MT5でも方法は変わっていない。

Movable Type 4 を iPod touch または iPhone で利用する
http://www.movabletype.jp/documentation/appendices/imt.html

Continue reading

【MovableType】Captcha画像の生成に異様な時間がかかる件について

MT5をFastCGIで動かしているとmt-comments.fcgiによるCaptcha画像の生成に時間がかかりまくり。おまけに一度アクセスしただけでプロセスが際限なく増えていく。ググってもこんな症状見つからなかったんだけど、うちの変態環境(Mac OS X + Perl5.10.1)が原因なのかな?

Apacheのログ

[notice] Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8l DAV/2 mod_fastcgi/2.4.2 configured -- resuming normal operations
[notice] FastCGI: process manager initialized (pid 23678)
[warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23692)
[warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23724)
[warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23732)
[warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23736)
[warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23766)
[warn] FastCGI: scheduled the start of the last (dynamic) server "/path/to/mt/mt-comments.fcgi" process: reached dynamicMaxClassProcs (6)
[warn] FastCGI: (dynamic) server "/path/to/mt/mt-comments.fcgi" started (pid 23769)

このログの後、30秒待ってやっとCaptcha画像が表示される。これがなかなか直せないのでずっと悩んでいた。症状は違うものの、Captchaのトラブルとしては定番らしいハックを試してみる。

Continue reading