過去13年分の日記をtDiaryからWordPressに引越し完了

過去13年間、ハイパー日記システムとtDiaryで書き続けた日記を、WordPressへ引っ越しできました。 移行した日記の記事数は4580件とのことです。

WordPressの記事件数

やり方なのですが、tDiary形式のファイルを引っ越すのは tDiary1,2形式のファイルをParseしなければならないなどキツかったので、このような順序を取りました。

  • 画像ファイルは、元のディレクトリから新しいディレクトリ ${wp_dir}/wp-conten/uploads/YYYY/MM/ にハードリンクを張るように実施
  • tDiaryのサイトから wget で月別のHTMLファイルを取得。 ${tdiary_url}/YYYYMM.html という具合のURLを叩いて取得。全部で 13年×12月/年 = 156月
  • 先のHTMLファイルを、Ruby nokogiri を使ってスクレイピング
    • div class="section" の部分を1つの記事として吸い出す。
    • H3 の部分を記事名として取扱
    • 内部の画像ファイルへのリンクを書き換える。
    • 内部の記事へのリンクURLを書き換える。
    • これを MovableType の export/import 形式で書き出して、1.5MB程度になるようにくっつける。
  • そして、WordPressでインポート。 WordPressの管理画面の [ツール] – [インポート] で MovableType/TypePad プラグインを用いて取り込みました。

今回用いた Scraping のプログラムは http://masaru.org/misc/tdiarhtml2mttxt.rb に置きました。

以前の tDiary と現在のWordPressでは別のURLを用いているので、あわせて Apache のRewriteRuleを .htaccess に記述。こんな風にしておきました。

RewriteEngine on
RewriteRule ^([0-9]{4})([01][0-9]).html /wp/archives/date/$1/$2 [R=301,L]
RewriteRule ^([0-9]{4})([01][0-9])([0-3][0-9]).html /wp/archives/date/$1/$2/$3 [R=301,L]
RewriteRule ^$ /wp/ [R=301,L]
RewriteRule ^index.rdf$ /wp/feed [R=301,L]

これで、以前の日記へ日付ベース (YYYYMMDD.html , YYYYMM.html) のアクセスは新しいWordPressに 301 Moved Permanently でリダイレクトされるようになります。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください