tDiaryからWordPressへの乗り換え

tDiaryの思い出

昔からの読者の方はすでにお気付きの通り、fukumoto.orgのシステムをtDiaryからWordPressへ刷新した。

手控えを見ながら思い返すと、blog立ち上げ当初はHTMLをベタ書きしていた。fukumoto.orgのドメインも (取得はしていたが) 使用しておらず、comjong.comの片隅で始めた日記だった。

tDiaryを導入したのは2004年頭。当時の環境を振り返ると、Content Management System (CMS) はまだ一般的ではなく、そもそもCMSという言葉が存在していなかった様に思う。そんな中で、tDiaryは時代の一歩先を行く先進的なシステムであった。標準でのコメント (ツッコミ) 機能のサポート、レンタルサーバへの導入の容易さ、標準準拠のHTML出力、豊富なテーマなど、いずれも当時としては最高の水準であった。

それから15年後の現在でも、それらの成果は色褪せることなく輝いており、コミュニティも活発に開発を継続している。私も今でもtDiaryとそのコミュニティに強い愛着を持っている。しかしながら、いくつかの理由でfukumoto.orgの運用に適さない部分が出てきたのもまた事実だ。具体的には、以下の部分が運営方針に適さなくなってきていた。

  • サイト規模の拡大に伴い、パフォーマンスが低下することがあった。特に大きめのカテゴリの一覧表示など、秒オーダーで待たされるのはさすがに厳しい。もちろん改善する方法がいくつかあるのだが、根底がテキストファイルベースであることによる限界は如何ともし難い
  • amazon.rbを通じた書影等の取得失敗に対応できなくなってきた。もちろん、PA-API側の仕様変更に起因する部分が大きいのだが、それに追随していくのが困難になっていた。amazon.rbを書き直すという選択肢もあるが、書くのはともかくメンテナンスし続けられる自信がない

WordPressへの乗り換え

乗り換え先を探すと、やはり現代のデファクト・スタンダードであるWordPressとなる。今どきのレンタルサーバではワンクリックで導入可能で、大量のエントリにもびくともせずに十分なパフォーマンスが出る。

とはいえ、15年分の蓄積を違うプラットフォームに移すのは一筋縄ではいかない。もともと設計思想が異なるシステム間の移行のため、さまざまな工夫が必要となる。t2m.rb を手直ししたツールを使用して移行したが、最終的にはかなりの部分を手作業で直しながら少しずつインポートすることとなった。スキマ時間にしか作業ができず、また中断期間もあったため、移行には4ヶ月ほどを要した。

以下、移行時のメモ。

  • t2m.rbはデファクトスタンダードであるMovable Type形式のファイルを生成する。WordPress側はこれをプラグインを使用してインポートすることとなる
    • WordPressエクスポートファイル形式からのインポートは、そもそもWordPressエクスポートファイル形式を作成するのが面倒なので避けたほうが良い
    • 全エントリをまとめたmt-export.txtが生成されるが、大量のインポートはエラーが出た場合の処理が面倒。各年のディレクトリに月毎の中間ファイルが置かれているため、個別に確認しながらインポートしたほうが安全。fukumoto.orgは約2,600件のエントリが存在していたため、安全のために個別でインポートした
  • authorはハードコーディングされているので、手書きで直す必要がある
  • tDiaryのカテゴリは先頭の一つだけがWordPressのカテゴリとして採用される。二つ目以降を採用したり、一部をWordPressのタグに移したりする場合は個別に実装が必要
  • Wiki StyleとtDiary Styleがサポートされている
    • tDiary Styleは少し例外的な書き方をしていると対応されないので、都度修正が必要。fukumoto.orgはtDiary Styleを最初期にしか使っていなかったので助かった
    • WikiStyleもリストの処理が少々甘いため修正が必要だった
    • 主要なタグしかサポートされていないため、その他は自分で実装する必要がある。my.rbやamazon.rbなどは自前で修正した
      • imageはきちんと対応している。適当な場所にまとめて画像を置いて、IMAGE_URLを設定すれば良い
  • tDiaryは投稿時間の情報がないため、12:00:00 PMに設定される。一日に複数の日記がある場合は、1分ずつずらされる
  • Gutenbergには非対応。対応させるため、Gutenberg用のコメントタグを埋め込んだ

コメント

タイトルとURLをコピーしました