MT4i/MovableType用 i-mode変換スクリプト

  • 投稿日:
  • by
  • カテゴリ:

 勢いでこんなものを作ってしまいました。ちょっと更新が滞っていたのはこいつのせいです。

talk to oneself 2 mobile ver.
J.V.N.C. mobile ver.

 ちと重いかもしれません。しかし昨日自宅ではサクサク動いてたから、回線の問題かな?
 えっと、これらがなんだか分かりますでしょうか。あ、そこのあなた、「MTでモバイル用に軽いページ作るならTemplete追加するだけで良いじゃん」と思いましたね。
 そう思う気持ちもわかりますが、実際Templeteだけじゃダメなんですよ。
 だってうちに設置してあるMovableTypeは、全コンテンツをEUC-JPで出力するんですから。i-mode等では正しい表示結果を得られません。

 というわけで、上記ページでは文字コードをShift_JISに変換してあげています。たった一本のPerlプログラムで動いてます。主な機能は以下の通り。

・直接DBにアクセス
・良く分からんのでMTのDB関連モジュールは使用せず
・とりあえずPostgreSQLのみの対応
・改行→brタグ変換
・blockquoteタグ→pタグ変換
・blockquote部文字色変更
・Jcode.pl、Jcode.pm双方に対応
・Shift_JISへの文字コード変換
・全角カナ→半角カナ変換
・全角英数字→半角英数字変換

 とまぁ、要するにJcode.pl、Jcode.pmにおんぶにだっこなプログラムです。
 実は、i-mode対応で最も重要と思われる以下の機能が未だ実装されていません。

・5KBオーバー時のページ分け
・画像への対処

 近いうちになんとかしたいと思います。

 痛いのは、僕自身もかみさんもi-modeユーザーではないこと。親や弟の携帯をわざわざ借りに行くというのもあれなので、i-modeユーザーの皆さん、表示確認して頂けませんか?バグ報告等はこのエントリーにコメントとして投稿してください。報酬などは一切ございませんが、ご協力お願い致します。
 ああそうだ、ところで、このプログラムを自分のところでも動かしたい人っています?ニーズがあるなら、もうちょっと体裁を整えて、ソースを公開しようと思ってるんですが。自分のソースってできれば公開したくないんですよね、ごちゃごちゃしてて恥ずかしいから。

 そもそもこんなものを作ろうと思い立ったのは、「J.V.N.C.」を立ち上げた後、なるべく多くの人にバレーボールに興味を持って欲しいなと考えた時。パソコンなんかよりも遥かに普及していると思われるi-modeでも見られた方が、より多くの人に見てもらえるんじゃないかと考えたわけです。
 で、思い立ったらすぐに実行して最後まで突っ走らないと、すぐに飽きて忘れてしまう自分の性格を考慮し、とりあえず一気に仕上げてみました。

<追記>
 何か変更する度に、いちいち二つのファイルを書き換えるのは面倒なので、一つのプラグラムで複数のblogに対応するようにしてみた。というわけで上記リンク先が変更になってます。前のは忘れてください。

<更に追記>
 画像については、ざっくり削除して削除したことを示す文を挿入するようにした。こんな感じ
 それと細かい機能追加、見栄えの変更を少々。
 あとは5KBオーバー時の処理だなぁ。しかし半角変換とかしてるせいか、うちの記事の中で「これは5K超えるだろ」という記事を表示させても、4KB弱にしかならないんだよね。テキストオンリーだと、5KB超なんてそうそう無いのかもしれないな。でも対策はきちんとしておかないと。

<更に更に追記>
 その後、色々といじくってたら上の画像削除例へのリンクが切れてしまったので修正。
 JuNyaさんがTrackBack&コメントくれたのでえらい嬉しい。i-modeでの表示は問題なさそう。とりあえず5KB対策は置いといて、ソース公開しようかしら。
 そうそう、Docomo以外の端末での表示確認も募集中です。J-SkyとかEzwebとか。違いが良く分かってないんでそもそもアクセスできるのかどうかも知らないんですが、是非。違いを懇切丁寧に教えてくれる方でも結構です。徹底的に他力本願でごめんなさい。できればこれらにも対応したいと思っています。

<更に更に更に追記>
 こんなに追記して、果たして誰か見てくれてるのかという疑問も浮かびますが、まぁ自分自身の為のメモってことで一つよろしく。

Quoted from TAG index/ケータイ index/互換性について キャリアと言語の互換性についてまとめてみました。

 上記ページを見た感じでは、どうやら独自の拡張機能を使用しなければ、i-modeに合わせて作っておいてもさほど問題は無さそうです。