Hyper NIKKI Systemで運営してた旧日記のデータをMovableTypeで運用しているこの新ゆーすけべー日記(yusukebe.com)へインポートすることについさきほど達成した。
やり方は
HNS独自のフォーマットで書かれている日記データをMTのインポートフォーマットに変更
その際にサカイ家.NET: 過去の日記をインポートにあるperlのスクリプトを改良して使わせていただいた。サカイヤ屋さんスクリプトからの変更点は
- サカイヤさんスクリプトでは、HNSで改行を表す~を全て削除して、COVERT BREAKSに改行を任せているが、それだとかなり崩れるし、~が入るURLとかが正しく機能しないので行末にある~をbrタグに変換するようにした
- LINKやIMGタグのサイト名やALT名に空白が含まれるとおかしかったので修正した (.*)を(.*?)にして最短マッチング!
- LNEWで題名にURLが入るときにエントリータイトルにURLが含まれてしまうので、URLを取り除き、エントリーボディーの中にリンクを表示するようにした
- サカイヤさんのスクリプトではSUBやLSUBで始まるブロックもひとつのエントリーとしていたが、SUBやLSUBをh4であらわし、エントリーの最小単位をNEW、LNEWで始まるブロックとした
- 過去の日記の参照をそのままにすると新サイトに移行しても旧サイトへ飛んでしまう。自サイトへのリンクはURLから日付を抽出して、MTのDaily Archivesのhtmlへ飛ばすようにした
- イメージフォルダへのパスが相対だったので新サイトのアーカイブパスhttp://yusukebe.com/archivesをつけて絶対パスにした
- DIVに対応させた
このようにPerl&正規表現初心者の僕ががんばって作ったスクリプトがこちら
hnf2mt_yusuke01.pl
これをHNSの日記ファイルのあるディレクトリで実行。
できたファイルをMTのimportフォルダの中に入れて管理画面からImport。かなり長い時間かかって完了。約1000のエントリーになった。リビルドもたいそうな時間が。インポートログはみていて気持ちがいい。
さあ過去のネタを掘り起こすぞ。そして掘り起こしてください(左のメニューとか検索とかから過去のネタにありつけます。面白いネタあったらコメントに書いてください。僕も掘り起こしていきます)