« HaloScan + JS-Kit によるエントリのレーティング | Main | Leopard の Automator + rsync + PipeAlert で公開 »

2008年04月21日

Mac OS X 10.5(Leopard) で Thingamablog

Leopard 上で Thingamablog を使い始めた。一点注意する必要がある以外は問題なく使えている。

私は数日前から Mac OS X 10.5 (Leopard) を使い始めました。Leopard は以前の使っていた Tiger から移行せずに、まっさらな状態でインストールして必要な書類をバックアップからコピーしたり、改めてアプリをダウンロードしてインストールしたりしてセットアップしました。

Thingamablog も 1.1b6 を新たにダウンロードしてインストール(と言ってもアーカイブを解凍してコピーするだけ)しましたが、データは次をコピーしました。

  • ~/Documents/Thingamablog フォルダ

    私の「データーベース」のフォルダです。

  • ~/.thinga ファイル

    Thingamablog のグローバルな設定ファイルです。

Thingamablog を起動してみると、これまで書いてきたブログの内容がきちんと出てきます。問題なさそうでした。

ところが実際に記事を書いてみると公開されません。Thingamablog のツールボックス(機能のアイコンが並んでいるところ)ではいくつかのアイコンが disabled 状態になったままです。コンソールを見ると Thingamablog が例外を出していました。テンプレートの format 属性に N という値があってどうのこうのと言っています。

format 属性と言えば日時型のテンプレートタグで、実際に置き換えられるときの書式を指定する属性です。そこには私は「yyy年MM月dd日」という書式を指定しています。この中の「年」を Shift_JIS で書くと 2 バイト目が N です。恐らく Shift_JIS のテンプレートを理解できなくなっているのだろうと予想しました。

Tiger まではターミナルのシェルには LANG 環境変数が設定されませんでした。しかし Leopard では ja_JP.UTF-8 という値が設定されるようになっています。つまりロケールの設定がより徹底して UTF-8 化が徹底されたようです。Thingamablog では特にファイル入出力の文字セットの指定はされていません。つまり、そのシステムでの JAVA のデフォルトを用います。Tiger まではそれが Shift_JIS (あるいは MacJapanese)でした。これが Leopard では UTF-8 になったと考えると現象を説明できるだけでなく、ターミナルなどの状況証拠にも合致します。

そこでテスト用の「データーベース」を作成して、そこにテスト用のブログを作成しました。そのテンプレートの日時型のテンプレートタグの format 属性値を「yyy年MM月dd日」とし、それを UTF-8 で保存した場合と Shift_JIS で保存した場合とで Thingamablog の挙動を比べてみました。

結果はこうでした。

Shift_JIS で保存した場合

NG でした。上に述べた状態になってしまいます。

UTF-8 で保存した場合

OK でした。正常に公開できます。

というわけで、Leopard ではテンプレートファイルは UTF-8 で保存する必要があるとわかりました。既存の「データベース」を用いるときはそのテンプレートファイルを Shift_JIS から UTF-8 に保存し直してから使うということになります。