↑いいの出たので画像を移行したくてこのページをご覧になった方はこの機能をご利用ください!!!!
結構前から父親のブログをWordPressでやっていて、最近ずっとメンテがだるいと思っていた。
この前はてなブログがWordPressインポートに対応したので、WordPressからはてなブログに移行してみた。手順は以下の通り。
まず、ツール>エクスポートを選択して、全てのコンテンツをWXR形式でエクスポートした。
次に、画像をはてなフォトライフに上げ直した。といっても、もちろん手動で上げ直すのは生産的でないので、アップロードするためのスクリプトを書いた。はてなフォトライフにはAtomAPIがあるので、これを活用した。
基本的にはこの記事に書いた通りでアップロードすることができる。僕の場合はこれを元にして
- 画像URLを正規表現で抽出
- 抽出したURLから画像をダウンロード
- ダウンロードした写真をアップロード
- レスポンスに載っている写真のid(
f:id:masawada:20150718231126p:image
みたいなのが返ってくる)をmarkdownぽく整形して元の写真と置換
みたいな流れで写真を上げ直した。
WordPressは標準の機能で写真をアップロードしていれば以下の正規表現で写真を抜き取ることができる。
<a.*?href="(.+?)"><img.*?src="(.+?)".*?width="(.+?)".*?><\/a>
1番目のマッチは画像本体、2番目のマッチは画像のサムネイル、3番目のマッチは画像の幅。
今回は1番目のマッチに画像が入らないことがあったため、拡張子を調べて画像でなかったら2番目のマッチした画像をダウンロードするようにした。また、3番目のマッチを使って画像の幅を調整した。
画像の幅は[f:id:masawada:20150718231126p:image:w500]
のように最後にw[画像幅]
をつけると指定することができる。これははてな記法なので、以下のリンクを見ると良い気がする。
リンクを簡単に記述する(http記法、mailto記法) - はてなダイアリーのヘルプ
これで画像アップロードしなおしができた。
最後に、画像部分を置換したWXRのファイルをはてなブログに食わせてインポート。少し時間がかかる。終わったらちゃんと記事全部きれいに表示できて、コメントとかカテゴリも移行できてた。もともと下書きだった記事は下書きに入ってたりしてよかった。
というわけで、移行した先がこちらです。