昨日書いたように、はてなブログから jeykll に移行した。
はてなブログで書いていた記事を移す際に、ある程度自動化できたのでやったこと書く。
はてなブログは以下の手順で記事をエクスポートできる。
エクスポートされた記事は Movable Type 形式のブログデータらしいのだが、jeykll はそのままだと記事として読み込めないぽいので、各記事毎にファイルを分割するスクリプトを Ruby で書いた。
コードは GitHub に置いている。
https://github.com/ot0m1/hatena-blog-to-jekyll
1つのテキストファイルを記事毎のマークダウンファイルに分割して、そのまま jeykll の _posts ディレクトリに放り込めるようにした。
やったこと
- 1つのテキストファイルを記事毎のマークダウンファイルに分割
- 記事を分割して配列に格納
- 正規表現で split
- 分割した記事のメタ情報と本文をそれぞれヘッダーとボディとして hash で持つ
- ヘッダーを jeykll の形式に変換
- ボディの html の構文をマークダウン形式に変換
- reverse_markdown ライブラリを利用させてもらった
- 記事毎にマークダウンファイルとして書き出す
やってみて
- jeykll で記事として扱ってもらえるファイルの内容が不明だったので、変換の最適化ができなかった
- 書き出したファイルを _posts ディレクトリに放り込んでも、タイトルがうまく反映しなかったりページングできなかったりした
- jeykll 側のパーマリンクの設定などで対応できそうだったが、そこまで調べる元気がなく結局手作業での修正が発生した
- 記事毎にマークダウンファイルを作るのはできたので、手作業は発生はしたが大幅に移行する時間は短縮できた
- 自分は20記事くらいだったが、100記事超えるとかなってくるともっと時間短縮が効いてくると思う
まとめ
現実に起こっている課題を Ruby で解決することができたのがなによりの収穫でした。