いんたーねっと日記

141文字以上のものを書くところ

はてなダイアリーのエクスポートの形式

sjs7/Rir6アーカイブを作るにあたって、とりあえず仕様とかを考えずにはてなダイアリーの全てのエクスポート形式(CSV,XML,MovableType)を送ってもらったんだけど、結局どの形式を選んだら最も完全な状態のログを復元可能なのかよくわからなかった。sjs7のはてなダイアリーは「ブログモード」なので記事ごとにコメント/トラックバックがつくはずだけれども、CSVXMLは日ごとにコメントだけ保存という形だしMovableTypeはコメントすら保存されてないしでどうしようもない。
扱い易さからXMLを使ったけれども、XMLで出力するとはてな記法のまま出力されてしまうし、コメント欄の改行は&lt;br&gt;という形式で保存されていてコメント欄で>や<を使って書いたのと見分けがつかないしでややこしい。CSVMovableTypeはHTMLのかたちで保存されているからそのまま出力すればいいけどCSVはコメントのユーザー名を切り出すのが非常にめんどくさい。
XMLを処理することにして、Rubyの練習になりそうだからちょっとRubyでやるかと思って最初はRubyで書いてあるhparserというのを試してみたけれどもうまく動いてくれず、慣れないRubyでやるのをあきらめてPHPで処理をした。PHPにもText_Hatenaがあるので、これでざっと変換したあと見出し記法やURL記法の処理をてきとうにpreg_replaceとかでやってとりあえず公開した。やっぱりある程度使用経験がある言語だと作業がはやい。CPANじぇいこん謹製のはてな記法パーサーがあるはずなのに使わなかったのも、Perlに慣れてないせい。逃げちゃだめなのは分かってる。