このエントリを読んで、そういえば最近全くアウトプットができていないことにはたと気づきました。@sunaot++
4 月にエンジニアとなった人たちに知っておいてもらいたいこと
というわけで、「そうだ、ブログを書こう」となりました。メインのブログの方で書いてもいいんですが、なんとなく技術寄りのものは別にまとめてみたいなぁと思って、最近流行りのOctopress+Github Pagesで作ってみました。このブログの作り方を共有するところからまずは出発しようかと思います。
とは言っても、ドキュメントがよくできてるので特に解説することはありませんでした。。。
local setup
まずはこれに従ってローカルにファイルを落とす。rbenv使ってて、.rbenv-versionのが入って無かったのでrbenv localで適当に自分の持ってるバージョンを指定。bundleはいつも通りbundle install --path vendor/bundle --binstubs。--binstubs用に.bash_profileとかでexport PATH="./bin:$PATH"してます。
rake installしたら次へ。
github setup
githubにはpagesという静的コンテンツ配信をしてくれる仕組みがあります。これを利用してかつカスタムドメインで自分のドメインを使います(github.com=>github.ioに勝手にドメインが変えられたりするので、パーマリンク厨的には自分のドメインで配信したいのです)。
ところが、github pagesのカスタムドメインは1ユーザにつき1つしか設定できないので、プロジェクト毎のページのリンクはusername.github.io/projectになってしまいます。僕は既に別のサイトを自分のgithub pagesで配信してるのでさて困った。
というわけでorganizationを使います。organizationのメインgithub pagesにもカスタムドメインが設定できるからですね。publicなレポジトリであればorganizationを作るのは無料なのでこのブログ専用のorganizationを作りました。
そうしたら、ブログ用のレポジトリを作ります。名前は必ずorganame.github.ioになります。もちろんpublic。
作ったらgit@github.comで始まるパスをコピーしておいて、おもむろにrake setup_github_pagesを実行。URLを聞かれたらさっきのを入力。あとはrake generate, rake deployしたら、http://organame.github.ioでもう見れるはず。github++
custom domain
カスタムドメインもそんなに難しくない。上記の通り、TLDならAレコード、それ以外ならCNAMEを設定。あとは、echo orgname.example.com >> source/CNAMEとして、先ほどのrakeを再実行すれば終わり。
source repo
さて、先ほどorgname.gihub.ioにpushされたのはOctopressによって生成された静的コンテンツなわけですが、それらの元になっているファイルも当然githubで管理したくなります。
別にpublicで良ければOctopressの手順通り、git push origin sourceとすれば、先ほどのorganizationのレポジトリにsourceブランチができて完了です。
僕はなんとなくsourceはprivateにしたかったのでちょっと変なやりかたをしました。自分のユーザ配下にprivateレポジトリを作成して、そこに向けてpushするようにします。多分こんな感じでいけるはず。
$ git remote add private PRIVATE_REPO_URL
$ git config branch.source.remote private
$ git push -u private source
これでgit pushすればsourceはprivateの方にいきます。
configuration
_config.ymlを見ながら適当に編集。そのうち頑張る。
first post
あとはエントリを書くだけ。rake new_post['post title']
とりあえずMouを試用してます。ただ、rake previewとしておけばローカルにサーバ立ててくれてリアルタイムに反映されるので、リロードするだけでプレビューできるので要らないかも。
おわりに
今日は日本人のハッカーの方達と晩御飯食べましたが、みなさんかっこよくてちょっとでも近づけるように頑張ろうと思えて、とても元気出ました。このブログが誰かの何かの役に立てば幸いです。たまに日本語だったりたまに英語だったりすると思います。書きやすさとその日の気分重視。