移転作業

この日記とVOXとはてなダイアリーあたりを全部統合してWordPressにつっこもうとしていろいろやってるんですが。
この日記自体が一番古い部分でHTML直書きからhnsを経ているうえに、hnsからtDiaryへ持ってくるときに誤変換とかデータ整合性のチェックとかを怠っているのでここへ来てうまく意図通りに変換されていない事象が見つかったり、はてなダイアリーのMT互換エクスポートの日付表現がWordPressのMTインポーターと互換性が無くて日付がロストするとか……
最初は変換後データの方をいじって補正してたんですが、あまりにも修正箇所が多いので、tDiaryベースでごりごり修正することに。で、それで一部修正したんですが、あまりにも人海戦術過ぎるので、コンバートプログラムを書いてある程度補正データを作るように方針変更。
今のところ、

  • tDiaryのデータを修正した、もしくはする予定のもの
    • hnsからの変換仕様の問題で空エントリーができてしまう件
    • hnsからの変換仕様の問題でH"の"がクオートされないままtdiaryフェアに書き込まれており、表示および編集画面が落ちる件
    • t2m.pl の仕様で<%=image* %> タグが単一行に複数あると変換がおかしくなる件を修正 (これは今となってはt2m.plを修正すべきだったかも。どう修正すべきかもわかっているのではあるけど、需要があるかなあ……自分向けにはもういらないし。要望があったらパッチ書きます)
    • <%=isbn* %> タグを、展開後のHTMLに置き換え (これも本来はプログラム対応すべきかもだけど、rubyのプラグインを読み込んでperlに落とすのがめんどくさいという理由で前処理。しかし結構量があるんだよなあ……)
    • 複数行<%=fn %> タグを、一行にまとめる
    • 本文中-のみで構成されている行があると後述のツールが誤動作する。何となくMTのエクスポート形式上も問題がある気がするのでt2m.plを直すべきかもしれないけど、2カ所しかないのでデータ修正
    • おそらくhnsからの変換仕様の問題で<%=fn %>内の’が二重になっている箇所があったので補正(1カ所)
  • t2m.plの修正で対応したもの
    • <%=image* %> タグがpngに対応していなかった部分を修正
  • 補正プログラムにてエクスポートデータを補正するもの
    • 日付が00:??:?? ?M となっているエントリーを12:??:?? ?Mに置き換え
    • すべてのエントリーのプライマリカテゴリーをLOGに強制化。(カテゴリーがついてないエントリーはLOGを付加)
    • カテゴリーに空白を含むものをそれぞれ別のカテゴリーに分割
    • エントリータイトルにリンクを含むものはタイトルからリンクを取り除き、本文の先頭に「LINK To:」として追加
    • <%=fn %> タグを処理。全移行データ内で追い番を振り、タグのあった場所へは追い番へのリンクを、本文の最後にフットノート内容を<div>で囲って追加
  • 移行後WordPress側で補正する予定のもの(移行データの妥当性が検証されて、再移行をしないと判断した時点で)
    • リンクとして移行されている画像のうち、自サイトのものについてはWordPress上にアップロードしてリンクを張り替え
    • 旧日記(http://www.tls.org/~linitoka/diary/)/新日記(http://sakura.fairies.jp/diary/)への自己参照リンクは適切なリンクに差し替え
  • 移行後新旧日記側に転送をかける(2011年3月頃に実施)
    • 旧日記(http://www.tls.org/~linitoka/diary/)に関してはhnsのリンクパラメタが複雑すぎるし、mod_rewriteがうまく働かないので、ステータスコード301とLocationを返すcgiに差し替え(Locationは想定できるパラメタの場合は補正をかけて転送、そうでない場合は記録して補正せずにルートに転送)
    • 新日記(http://sakura.fairies.jp/diary/)に関してはmod_rewriteでステータスコード301を返して連想するよう設定
    • その他のサイトについては移転記事を記述
  • 対応しない件
    • 上記以外のデッドリンクの整理

という感じで。
とりあえず、今日中に移行したかったんだけど、複数行<%=fn %> タグ、<%=isbn* %> タグ周りの作業がまだ結構残ってる*816ので、今月中には移行できたらなあと思っております。

*816:ざっくり100件ぐらい