WordPressからはてなブログに移行した

はてなブログにWordPressのデータをインポートする機能がついたので引っ越しました。
WordPress形式をMovableType形式に変換するところでいつも心折れていたので大変よかった。

ただ、WordPress形式のインポートも一筋縄ではいかなかったので対応をメモしておきます。

画像

厄介な画像の移動でしたが、先人の知恵を拝借することで比較的カンタンに移動することができました。

父親のブログをWordPressからはてなブログに移行した - あんパン
こちらのブログを参考にしながらスクリプトを組みました。

組んだついでにgithubとrubygemsに上げたので、必要な方はなにかしら使えるかもしれません。
utahta/wp2hatena · GitHub

やっていることはたぶん同じでWordPressからエクスポートした XML から画像URLを抽出してダウンロードして、はてなフォトライフにアップロードしていき、最後に画像タグをはてな記法に変換する感じです。
詳しい使い方はこのエントリの末尾に。

改行

インポート後、文章が一部改行されていないことに気づきました。
どうやら空行のない場合は、文末にスペースを2つ入れると改行してくれる(Markdown記法?)ようだったので、そのように XML を置換したところ、うまくいきました。
公式で対応してほしいような気もします。

カスタムURL

URLに日本語が含まれているとき、カスタムURLがエンコードされた状態でインポートされてしまい、元ブログからリダイレクトするのがつらくなっていました。
XML の wp:post_name がそもそもエンコードされていることが原因のようで、これを一度デコードして置換したらうまくいきました。

おまけ:スクリプトの使い方

まず wp2hatena をインストールします。(動作確認は ruby 2.2.2 でしてます)

$ gem install wp2hatena

続いて、はてなフォトライフのアクセストークンを取得します。
あらかじめ http://www.hatena.ne.jp/oauth/develop で Consumer key と Consumer secret を取得しておきます。

$ wp2hatena_oauth
CONSUMER_KEY:<Consumer key>
CONSUMER_SECRET:<Consumer secret>

sinatra が起動したら http://localhost:4567 にアクセスしてリンクをぽちぽちします。
access_token と access_token_secret が手に入るのでコピーします。

最後に画像のダウンロード、アップロード、変換を一括で行います。

$ wp2hatena
CONSUMER_KEY:<Consumer key>
CONSUMER_SECRET:<Consumer secret>
ACCESS_TOKEN:<Access token>
ACCESS_TOKEN_SECRET:<Access token secret>
WORDPRESS_XML_PATH:/path/to/wordpress.xml

日本語を含むURLがあるときは、こちらも一緒に行います。

$ wp2hatena_decode

おしまい。
自分のブログデータに合わせて作ったので、合わない箇所があるかもしれません。
そのときはよしなにしてくださいmm