Movable Type はアーカイブ・テンプレートを作って、pure diary 形式のデータフォーマットを出力できたのでけっこうラク。
ただ、ブログに貼り付けてある画像ファイルやリンクが問題だった・・・

ブログを移行することを考えると、画像パスやFlashの埋め込みやらが相対パスになっているとなかなか厳しい。
ブログのURLが変わると、ブログの本文に埋め込んである相対パスが指している先がちがってしまう。
画像やフラッシュの埋め込みデータや、同じドメイン内のリンクは、ブログとは別物として扱って独立させておけばよかった。
ブログの本文に埋め込むときは、http:// ではじまるURL にしておくか、同じドメイン内なら / スラッシュではじまる絶対パスにしておくべきだった。

と、いまさら後悔しても遅いので、相対パスを絶対パスへ変換するプログラムをRubyで書くことにした。
ヅラッシュ! - Ruby + Hpricot で相対パスを絶対パスへ変換する

これで、最低限見ることができるデータとして
ヅラッシュドット時々、音楽ヅラッシュ! に移行(というかコピー)完了。
i am a cheap jap!Samurai zlash! に移行(というかコピー)完了。

元ブログのページは、いつか本文を削除して、個別エントリから新ブログのエントリへリンクを張ることにする(リンク切れを起こさないように)。元ブログのカテゴリーとかタグページはたぶん消滅するけどまぁそれはしょうがないということで。

どういう形になっていくかわからなかったので、いままで pure diary ではベタに関数を書いてた。
今回のデータ変換でなんとなく構造がわかってきたので、Rubyのモジュールで名前空間を分けて、クラスを作って、外部から操作しやすいようにリファクタリングしてみた。

データ変換に関してやり残しているのはタグ名の変換ぐらいかな(ポリシーとしてタグは全て英数小文字でアンダーバーつなぎに変換する)。こんなのあとまわしでいいや。移行したデータをもうすこしきれいに見せるためにCSSなんとかしないと。これもまぁあとまわしで。

次は tDiary から pure diary へのデータ移行をしたいけど、ざっと tDiary のクラスを見てもあんまり理解できなかった。(あれ? 構造についてのメモをどこかになくした・・・) データモデル系のクラスがいくつか継承してるとかそんな感じ。あと、コメントやrefererもうまいことエントリに振り分けしたい(手動設定で)。こっちはまぁぼちぼちいこうか。。。

tags: pure_diary movable_type

Posted by NI-Lab. (@nilab)