Subscribe1000記事あるブログをMovableTypeからHugoへ乗り換えたのでやったことまとめ2015/06/28ツイート本ブログをMovableTypeからHugoへついに乗り換えました。調査期間やデザイン作業を含めるとトータルで1週間くらいかかったのでノウハウをここに記します。MovableTypeと私MTに始めて触れたのはMT3のときでした。インストールして触ってみたものの使いこなせず挫折。その後MT4がリリースされたのを機に本格的に使い出し、それまでBloggerで書いていた記事をMTにインポートして本格的なMTライフがはじまりました。当時MT4に関する情報がWeb上に全くなく、ぐぐってもMT3に関する情報ばかり出てきて苦労したのを覚えています。むやみに新技術に飛びつくと苦労するというのを痛感した出来事でした。その後MT5,MTOSへと順調にアップグレードし、Apache+CGIだったのをPlack/PSGI化したり、プレビュー画面が遅かったので自作したりしながらブログを書き続けました。再構築が遅いのに不満がありました。デザイン変更すると再構築完了まで長時間待たされるが問題でした。MTをMacで動かすようにしたら記事を書くのがおっくうになったMTは個人で借りてるVPSサーバで動かしていたのですが、あるとき「手元のMacで動かせば再構築が速くなるし改良しやすいだろう」と考えて、MySQLデータをダンプして手元のMACにMT環境一式を移管しました。このアイデアは完全に裏目に出ました。(デーモン化して常時起動すればよいかもしれないがそれはそれで面倒)再構築するのに結局plackサーバとブラウザが必要(CLIだけでは再構築できない)MTOSはOSSなので自分で改良すればいいやと思って改良はしてみたのですが、ソースコードが想像以上に複雑で手をいれずらく、つらくなってきました。(改良したMTのソースは公開してあります。)また再構築が少し速くなったとはいえ1000記事を再構築するのに8分もかかるありさまで、だんだんブログを書くのがおっくうになり、気がついたらせっせとQiitaに記事を投稿してる自分がいました。重い腰をあげてHugoに乗り換えることを決心しました。Hugoなのかきっかけはdeeetさんの記事です。後発なので新しそう個人的にツボだったのが名前です。Miserableの原作者)の大ファンなのです。Hugoが関係あるかはわかりませんが...どうやって移管したのかまずHugoの挙動を把握するためにHugoをインストールしてサンプル記事を3つほど書いてみました。その結果以下のことがわかりました。記事はMarkdownでなくHTMLで書いてもよい。いうPermalinkになるカテゴリやタグ機能も使える(ただしMTのそれとは仕様が少し異なる)これで、MTにある記事(全て生HTMLで書いてた)をPermalinkを維持しつつ移行できそうだという確信が得られました。MTから記事データを抽出してHugo形式にコンバートするググっても既存のコンバートツールがなさそうだったので、エイヤっと自分でPerlでコンバートツールを書きました。MTのDB構造を調査するのに時間がかかりましたがツール自体は2〜3時間ほどでできました。コンバートツールをOSSで公開してるのでよかったらお使いください。https://github.com/DQNEO/movabletype2hugo下調べした内容はQiitaに書きました。MovableTypeからHugoにブログ記事を移管するために下調べしたのでまとめテーマは既存のをforkして少し改良テーマはいろいろ試してみて、viennaというのが一番シンプルできれいだったのでこれにしました。スマホで閲覧してもいい感じです。https://github.com/keichi/viennaその後結局forkして自分用に改良しました。https://github.com/DQNEO/vienna2Hugoはシンプルか?巷で言われてるほどめちゃくちゃシンプルかというと、そうではない気がします。多少の学習コストはいりますし、公式ドキュメントが見づらい。テーマをいじろうとすると一気に学習コストがあがり、Go言語のhtml/templateというライブラリを知る必要があります。それでもMovableTypeよりは(感覚値ですが)20倍くらいシンプルなので学習コストは20分の1くらいで済みます。インストールが楽なのもよいです。hugoバイナリを1個入れるだけで動きます。基本の使い方だけなら2-3日使えば把握できるでしょう。ビルド時間が爆速!!さいて気になるビルド時間です。MovableType8分24秒(=504秒)です。