kaakaa Blog

この世は極楽 空にはとんぼ

はてなダイアリーの記事をMarkdown形式に一括変換

はじめに

はてな記法があまり好きになれないのとフロントエンドを触るために、ブログをGithub Pagesに移行しようと思っている。
middleman-blogをgithubでホストする

middlemanを使えば好きなエディタで記事書けるし、記法も最近よく使うMarkdownを使えるので便利そうだな、と。

そのために今まではてなで書いてきた記事を、Markdown形式にして移行できないか調べてみた。

調査

とりあえずはてなの記事を取得するのはAtomPub使えば良さそう。
はてなダイアリーAtomPub - Hatena Developer Center

認証突破にはwsseを使う。
RubyでAtompubのWSSE認証 - Panty's
取得したAtomの解析にはREXMLを。
XML処理 REXMLの使い方 - プログラムメモ

記事HTMLをMarkdown形式に変更するにはPandocを使うと良さそう。
Pandoc - About pandoc
Rubyのラッパーもあるし。
alphabetum/pandoc-ruby

成果物

作ってみた。
kaakaa/hatena2md

とりあえず大まかには変換できてるけど、middleman-blogに読み込ませると表示がおかしな部分が多々…。まぁ、昔の記事へのリンク貼っておけば良いか。
あと、middleman-blog用のMarkdownなのでタイトルやタグなどのヘッダがついてます。