Atom のバージョンが 0.3 から 1.0 になり,大きな変更が加えられた。atom:info 要素がなくなったのが痛い。
先月2005年12月に,Atom が RFC 4287 として公開された。オンラインのフィードチェッカ Feed Validator for Atom and RSS もバージョン 1.0 対応となり,0.3 への対応は2005年9月15日付で終了していた (Atom 0.3 Support Deprecated)。9月といえば,かなり前。しばらくチェックしていなかったので,知らなかった。Atom については,日本語なら Atom - RSS改訂の試み,英語なら AtomEnabled / Developers / Atom Syndication Format が詳しい。
長い間 0.3 だった Atom のバージョンは 1.0 となり,要素にも大きな変更が加えられた。このため,Atom 0.3 のままで Feed Validator のチェックをするとエラーが山ほど出る。Atom 用のテンプレート(nlog(n): Atom Index の追加)を Atom 1.0 対応に書き換えなければならない。
Movable Type 3.2 では,Template Backup and Refresh プラグイン を使うとバージョンアップができるらしい。Movable Type 日本語版の公式サイトで公開されているテンプレートは Movable Type 3.1 用のみとなっている (Six Apart - Movable Type: デフォルト・テンプレート)。MT 2.6x 用のテンプレートはすでに削除されている。これは嬉しくない。米国の Movable Type のサイトでは,MT 2.6x, 3.1x, 3.2 のそれぞれに対し,デフォルトのテンプレートとスタイルシートが公開されている(Movable Type - Style Sheets & Templates)。日本語版のサイトもこうあるべきである。新しいものだけを追いかけていいのはユーザだけである。供給元は,古いものを削除していくべきではない。MT 2.x と 3.x ではライセンスも違う。ソースコードのバージョンアップは行わなくてもいいから,せめて削除だけは行わないでもらいたいものだ。リソースを残しておくだけでも立派なサポートだと思うのだが…。
話は戻って,Movable Type 2.661 での Atom 1.0 への対応は難しくない。Movable Type - Style Sheets & Templates から MT 3.2 用の Atom Index のテンプレートをコピーしてきて,置き換えるだけである。ただし,MT 2.661 では使えないタグがあるので,そこだけ修正する必要がある。オリジナルの content タグ内で使われている「<$MTBlogLanguage ietf="1"$>」の部分を
次のように「ja」に書き換えればよい。
ここからは補足。
このサイトでは,Atom フィードにスタイルシートを適用し,Web ブラウザでも整形されて見られるようにしている。3種類のフィードを公開していて,内容が若干違う。RSS リーダに登録する前にブラウザで内容が確認できるようにするためである。Atom 0.3 では info 要素が使えたので,これに何らかの情報を記述することができた(The Atom Syndication Format 0.3 (PRE-DRAFT))。そこで,info タグを使って次のように書いていた。
これに RSS and Atom with a Safari CSS Theme のスタイルシートを適用すると,ブラウザでは次のように見えた。
この情報表示は RSS リーダでは表示されず,ブラウザで閲覧するときだけに表示されたので,気に入っていたのだが,Atom 1.0 では info 要素が廃止されてしまった。これは残念。Feed Validator では atom:info があるとエラーになってしまうのである。
atom:info は使えなくなってしまったが,スタイルシートはそのまま使える。次のように XML のコードが表示されてしまうよりも,ずっとスマートである。
さて,これとは別に新たな問題が発生。<$MTEntryModifiedDate$> が正しく動作しなくなってしまった。全ての記事が同じ時刻になってしまうのである。しかし,この問題は以前確認して解決したはずである(nlog(n): <$MTEntryModifiedDate$> が正しく動作しない)。探してみると,Movable Typeユーザー・マニュアル: 既知の問題 (制限事項) に次の記述を見つけた。
Movable Type 3.17で確認されている問題点 (制限事項)
MySQL 4.1 では、"modified"(変更した)date 文字列は切断されます。たとえば、 <MTEntryModifiedDate> タグは正しく出力されません。
このサイトの MySQL サーバは MySQL 4.0.25 である。MT 3.17 + MySQL 4.1 で確認されている問題は,MT 2.661 + MySQL 4.0.25 でも発生する可能性があるのではないだろうか。となると,Berkeley DB で試すしかない。また変換かよっ!
Movable Type とはサヨウナラしようかなぁ。
2006年1月16日追記:
Atom 0.3 と Atom 1.0 の違いについては rakaz - Moving from Atom 0.3 to 1.0 に詳しく書かれています。
2006年2月21日追記:
MT 2.661 + MySQL 4.0.25 の環境で <$MTEntryModifiedDate$> が正しく動作しない問題については,1つ1つの記事を個別に再構築した後に atom フィードを再構築することで正常に動作するようになりました。
Master Archive Index
Total Entry Count: 1957
SixApartで公開されているテンプレートが実際のテンプレートとは限らないので、うちの場合は該当バージョンのMobavleTypeをインストールしてからテンプレートを取り出してます(微妙にライセンス違反に近いですけど見逃して……)
例を出すと3.1系のWeb公開テンプレートではモジュール「Remember Me」を使用せずにそのまま組み込まれていたりと……
MYSQLの問題はMovableType3.2-ja-2に変更した上でデータベースにSQLiteを使うとか……(3.2にするだけで良いのかな?)
3.2に更新した後の手間とシステム自体を入れ替える手間が同じくらいと考えるなら、CMSシステム自体を入れ替えるのも手ですねぇ……こちらではMTのシステム部分のファイルにもかなり手を入れてるでしょうし。
うちの場合はMobableTypeより余程保守性があがったり高速だったり表現能力が高いとかの要素が組み合わさらないとシステムを変更しきれません……
国産Blog作成ツール(CMSツールとは言えないと思う)を展開してインストールしてみたことがあるんですが、全てのテンプレートが1つになったシステムや独自タグを覚えきれませんでした。
Posted by: ち印 at January 11, 2006 18:22うちのMTではRSS/ATOMに似たダイジェストを取り出してHTML化してたりするんでその機能も必要ですし……(この部分は諦めれば済むことですが)
実はCMSシステム自体を入れ替えるかどうかについて考え中です。MT 3.2 にしていない最大の理由は,ライセンスの考え方が変わってしまったことにあります。もちろん,システムにも相当手を入れていますので,移行にかかる手間の問題もあります。
ち印さんと同じように,興味の対象は MT のシステムの話題から日常のことに移ってきています。システムに関する話は飽きてきました。
CMSを変えるとすると,問題は今までの記事をどうするかです。これが一番の悩みです。
Posted by: n at January 12, 2006 01:14nさんがご存知のサイトか判りませんが、
「caramel*vanilla」さんち
http://caramel-tea.com/
もWordPressと言うツールへ移行を決断したそうです(最近複数のところで名前を聞き始めたのでどういう機能があるのか判らないのがナントモ……)
http://caramel-tea.com/2006/01/09/new_blog_wordpress.php
MovableTypeでのサイトはトラックバックやコメントを停止して過去ログとして残すとか。
うちも「nlog(n)」さんの所は最初は色付きカレンダー目当てで訪問しましたが、直後から日記として読ませてもらってます。