Octopressの気に入ったところ
GitHub Pagesを使ってOctopressを始めてみました。ずっとwordpressを使っていたのですが、次の3点が気にいって使ってみようと思い立ちました。
- 静的HTMLでサイトが生成される
- Git(Hub)ベースなので履歴が残る
- Pushしておけば、必ずGitHubにバックアップがある
- vimとmarkdownで書ける
静的に生成できればS3やCloudFrontに置くことで高速化もできるし、サーバーに負荷がかかりにくいです。
WordpressはMySQLに記事データが入っていましたが、Octopressは生のテキストデータとしてデータが残っています。Markdownのテキストデータとしてデータが残っているというのは気分的に安心感があります。 HTML以外の他のデータフォーマットへのエクスポートもしやすいかと思いました。
最近、仕事でもプライベートでもGitHubをよく使っているので、セットアップも手こずらないだろうという見込みもありました。
vimで書けてそのままアップできるのも気持ちいいです。Markdownはvimとの相性も良いです。vim-markdown を組み合わせて使っています。
日本語を使うところではまる
日本語をタイトルや本文に入れて投稿しようとしたところ、
1 2 3 4 5 6 7 8 9 10 11 |
|
という感じでなぜか記事をgenerateできず。文字コードの問題だと分かったので、ググって環境変数を設定したらいけました。
1 2 |
|
これを~/.zshrc
に記載します(使ってるシェルに合わせて変更してください)
zshだとrake new_post["hoge"]
とは書けず、rake new_post\["hoge"\]
とエスケープする必要がある
1 2 |
|
これはOctopress関係ないのですが、rakeコマンドが通らないので一瞬悩みました。bashならこの問題はありません。 またはrake “new_post[hoge]”でもいけます。
Octopressレポジトリのブランチ構成
Octopressのレポジトリは、”master”と”source”という2つのブランチを使いわけた構成になっています。
- master
rake generate
で生成された静的なHTMLコンテンツが置かれている。通常こちらを直接更新はしない。
- source
普段の作業ディレクトリ。rake new_post['hoge']
などを実行して投稿を作るのもこちら。
「masterが公開する部分」、「sourceが管理側」といったイメージです。
なので、rake deploy
では実質的にmasterがpushされます(実際、Rakefileの中はそのようになっています)、git push origin source
で管理側をpushしておけば、git clone
してgit checkout source
で別のマシンから作業の続きができます。
参考:
http://tokkonopapa.github.io/blog/2011/12/30/octopress-on-github-and-bitbucket/
記事を書き始めるのにはここが参考になりました。
http://blog.zerosharp.com/clone-your-octopress-to-blog-from-two-places/
文字コードの問題は環境変数を設定すると解決するのはここを読んで気づきました。