Wikiの方には書いたのですが、DmBlogger1.2.0にはバグがあります。(言うまでもなくバグはいっぱいあるのでしょうが・・・)
何かというとNucleus以外で記事投稿時にカテゴリが反映されないというものです。完全にバグ。
こっちには、その顛末も書いておこうと思うのですが、1.2.0では投稿はmetaWeblog.newPostだけを使っていて、そのcontents構造体(RubyではHash)にcategoriesのArrayをセットしておけば、Nucleusではカテゴリが反映されました。
MovableTypeでカテゴリが反映されないという報告を受けて、もう一度APIを調べてみると、categoriesなるオプションがどこにも書いていない・・・。xml-rpcするところのコードは数カ月前に書いたZBlogger(未公開の記事投稿限定ソフト)のものをそのまま使っているのですが、その数カ月前、私はどこでcategoriesをセットするという情報を入手したんだろう?Nucleusのソースでも見たのかな?
で、DmBloggerとして公開するにあたって、MovableTypeやココログで投稿がうまく行くことは確認したものの、カテゴリは見てませんでした。イージーミス。
で、正しい?投稿の方法は、metaWeblog.newPostの後、mt.setPostCategoriesしてmt.publishPostする。これで少なくともうまくいってる。
NucleusはMovableType互換のAPIを持っていることは違いないのだけど、基本構造が全然違うので、動きも微妙に違うんですね。大体、Nucleusは動的にページを作る。MovableTypeは再構築が必要で、あとは静的。だから、最後のmt.publishPostが必要なんですね。
自分がdm。をNucleusで行こうと思った理由は、MySQLでデータ管理している点と、PHPで出来ているからの2つ。MovableTypeはDBじゃない(MySQLでもイケるみたいだけど、やったことないな)し、Perl。Perlはねぇ、書けないこともないけど読めないんだな。人の書いたPerlは。その点、PHPは簡単で良いです。実に分かりやすい。これほど簡単にWebシステムが作れる言語もそうそうないくらいなわけで。
でもまぁ、毛嫌いせず(嫌いなのはPerlだけなんだけど)にMovableTypeも使ってみないと、DmBloggerは高品質にならないのかもなぁ。吹けば飛ぶようなNucleusと違い、MovableTypeはデファクトスタンダードだから。
この記事をDmBloggerから投稿してみて分かりましたが、MovableTypeなら上手くいくこの方法は、Nucleusだと必ずしも上手くない。余計な改行が入るし、カテゴリがセットされてない!さてさて、どうしたものか・・・。