2014-01-27

過去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 でリダイレクトされるようになります。

0 件のコメント:

コメントを投稿