ブログをOctopress3に移行+esa連動した話
突然の手術
みなさんいかがお過ごしでしょうか? 僕はと言いますと、スノボのキッカーで着地を失敗しまして、上腕骨の骨折と、手首の粉砕骨折という目も当てられない状況になりまして、そのまま入院、手術というイベントがありました。 今では立派なボルト持ちです。
「この手術は、10人に1人…いや、5人に1人は麻痺が残るよ」
というお医者さんジョークの洗礼を受けまして、人生初の全身麻酔も体験しました。 術後に「どんな理屈で麻酔って効くんだろう」と思って調べてみると、「実はよく分かってない」という驚きの解答ばかりで度肝抜かされたのも、いい思い出です。
何はともあれ術後の麻痺も残らずに、無事リハビリを開始しています。
「シャチョー、ブログ更新しづらいっす」
回復にいそしんでいる中、
「シャチョー、ブログ更新しづらいっす」
という煽りを猛烈に受けていたのもあって、「おうおう、ならばやってやろうじゃないの」と、プログラムのリハビリに選んだのがこの三つです。
- ブログとホームページの切り離し
- Octopressを最新に
- esaとの連動
正直、Octopessを使っている人なんて、もはや絶滅危惧種だと思うので、誰得感半端ないですが、行ってみましょう!
Octopressの行方
弊社のホームページは、Octopressでコンテンツを生成しているのですが、これがまたレトロなライブラリでして、導入当初は「Gemfileなにそれ」というレベルで、なんと、 Octopressのリポジトリをcloneしてそこから調整をする というなかなかロックな方針で提供されていたライブラリです。
久しぶりに状況を確認してみると、バージョンが3まで上がっていて、Gemfileでインストールする形になってました。
「お、ナウでヤングになっとるやんけ。勝ったわ。一瞬で終わるわ」
と思ったのもつかの間、最終更新日を見て肩を落とします。
「2年前かよ…やる気ゼロやんけ」
しかし、そこで諦めるのが二流。僕くらいになると、ひとまず現段階で何ができて、何ができないのかを確かめる所から入ります。
ローカルで動かしながら色々確認してみると、
「 build
や server
みたいな、コンパイル系のもの以外はおおよそ揃ってる? 」
という状況で、コンパイル系もjekyllコマンドを直接呼び出せば余裕でいけました。
「これは、、、勝つる!」
と判断した僕は、過去Octopessに加えた改修を、猛烈にバージョン3に向けて移植し始めました。
今回は、pluginがgemで管理できるのでコードがスッキリしていい感じです。 移植・調整した機能はザラッとこんな感じです。
- 複数人author機能
- カテゴリーページ機能
- 記事をディレクトリ単位化
- ホームページのデザインをテーマ化
- コンパイル系の処理をoctopressコマンド化
これらを、本体にオープンクラスでパッチを軽く充てるだけで出来ちゃうのは素晴らしいなあって思いました。 (あ、けど、それはoctopressというよりかはjekyllのすごさか)
けど、octopress-ink とかまともに動いてるし、やっぱりなんかすごいよoctopress。 しかし開発は止まってしまった。。。なぜなんや。。。
esa.io と連動した話
esaに「githubと連携できる機能があるらしい」という噂を小耳に挟み、試してみる事に。
- 指定のディレクトリに記事をコミットできる
- 編集時も正常に対象のファイルが更新される
- wip時はgithub側には反映されない
- ご丁寧に、jekyll的なフロントformatter付きで出力してくれる
という優秀すぎる内容に涙しました。 esa、いいサービスだよ、ホントに。
ただ、esaではき出されるファイルは、123.html.md
みたいな名前になるので、そのままだとoctopress(jekyll)のコンパイル対象になりません。
そこで、esa-reader というプラグインを用意して、それらのesaがはき出すファイルを収集、不足しているfront fomatter内の情報を補完してpostsに加えるようにしてみました。
これで、
というナイスなコンビネーションを発揮されるはず!
これで、もう「ブログ更新しづらいっす」なんて言わせないぜ?!
惚れてもいいんだぜ? 以上、智史之介でした。