Migrate from Octopress to Hexo

年末年始にOctopressからHexoに移行したときのメモ。

まずOctopressで書いていたMarkdownの記事をHexo用のフォーマットに変換するスクリプトを書いた。

1
2
3
4
#!/bin/sh
for i in *.markdown; do
awk '!/^(layout|comments)/&&NR!=1{print $0}' $i | sed 's/^categories/tags/g' | sed 's/^title: *"\(.*\)"$/title: \1/g' > "$i".markdown.new
done

Hexoは1行目に---は書かないらしいので削除している。また、Octopressのlayout, comments等のタグもHexoでは不要なので削除し、OctopressのcategoriesはHexoではtagsとして扱うようなので変換している。最後に、Octopressでつけていたtitleのダブルクォーテーションを削除している。無論、*.markdown.newの内容が問題なさそうであれば*.markdownにリネームしておく。

また、各記事のPermalinkの設定もOctopressに合わせる必要があるが、これはHexoの_config.ymlに設定することで対応できる。

1
permalink: blog/:year/:month/:day/:title/

先頭のblog/がミソで、最初これを設定していなかったが故にOctopressとPermalinkの構造が変わってしまい、記事へのリンクが切れてしまった。(そしてしばらく気がつかなかった…)

テーマはCodelandというテーマをforkして、右のサイドペインにAboutウィジェットが表示されるようにしてみた。forkしたテーマはGithubに登録しておいた。