読者です 読者をやめる 読者になる 読者になる

あんパン

こしあん以外は認めない

父親のブログをWordPressからはてなブログに移行した

staff.hatenablog.com

↑いいの出たので画像を移行したくてこのページをご覧になった方はこの機能をご利用ください!!!!


結構前から父親のブログをWordPressでやっていて、最近ずっとメンテがだるいと思っていた。

staff.hatenablog.com

この前はてなブログWordPressインポートに対応したので、WordPressからはてなブログに移行してみた。手順は以下の通り。

まず、ツール>エクスポートを選択して、全てのコンテンツをWXR形式でエクスポートした。

f:id:masawada:20150718231125p:plain:w300

f:id:masawada:20150718231126p:plain

次に、画像をはてなフォトライフに上げ直した。といっても、もちろん手動で上げ直すのは生産的でないので、アップロードするためのスクリプトを書いた。はてなフォトライフにはAtomAPIがあるので、これを活用した。

masawada.hatenablog.jp

基本的にはこの記事に書いた通りでアップロードすることができる。僕の場合はこれを元にして

  1. 画像URLを正規表現で抽出
  2. 抽出したURLから画像をダウンロード
  3. ダウンロードした写真をアップロード
  4. レスポンスに載っている写真の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のファイルをはてなブログに食わせてインポート。少し時間がかかる。終わったらちゃんと記事全部きれいに表示できて、コメントとかカテゴリも移行できてた。もともと下書きだった記事は下書きに入ってたりしてよかった。

というわけで、移行した先がこちらです。

blog.sprg.jp