switching to octopress

しばらくの間 github パクリデザインでしたが レイアウト崩れてきてしまった(リソース直接参照してました。すいません…) ので変更することにしました。

ということで今回採用したのが octopress というブログエンジンです。

octopress とは

octopress http://octopress.org/

簡単に言えば jekyll にデザイン載せて便利にしたようなブログエンジンです。
jekyll 自体に手を加えているわけではなく、jekyll を利用したフレームワークといった感じ。

特徴

jekyll の思想や仕組みは好きだが、実際それなりのデザインにするのは難しいと感じていた私のような(なのでパクった)人に octopress は良いと思う。
実際、移行もサクっとできた。

WordPress / Movable Type 等他ブログからの移行については jekyll 自体が対応している。See, Blog Migrations

Get Start

セットアップに関しては Octopress Setup にあるとおりでハマリ所もないので省略。 Ruby 1.9.2 必須 なのでそこだけ注意。 ちなみに私は rbenv を利用してます。

ローカルプレビュー

上記セットアップさえすればすぐデザインを確認できます。

ローカル環境で表示を確認したい場合は、

rake preview

でサーバが立ち上がるので http://localhost:4000/ で確認できます。 jekyllの場合の jekyll --server と同じですね。

octopress は Pow (というか Rack)にも対応しているのでマカーで Pow 使ってる人は rake preview しなくても http://[SITENAME].dev で確認できます。

ファイルの変更を自動で反映させるには、

rake watch

します。 jekyll --auto オプションと同じです。

基本的な設定

jekyll の設定ファイルである _config.yml を編集します。
特にこだわら無いのであれば、

あたりをちょろっと変更するくらいで大丈夫です。
設定の変更は rake watch では反映されないようなので必要に応じて再実行しましょう。

記事の投稿

rake new_post["switching to octopress"]

するとsource/_posts/2011-12-17-switching-to-octopress.markdown が生成されるのでこれを編集します。 デフォルトは markdown ですが Rakefile で設定変更できます。

ちなみにこの記事のソースはこちら

デプロイ

自分のサーバ等にデプロイする場合は Rakefilessh_user, document_root あたりを変更します。

Github pages を利用する場合は、

rake setup_github_pages

することで Rakefile_config.yml の設定部分が書き変わるので直接変更する必要はありません。

そして、

rake deploy

することで本番環境にページが反映されます。

ただ Github pages デプロイ機能は毎回リポジトリ削除してから新規作成するようなのでコミット履歴が残らないのがちょっと残念。

そんなことなかった。

感想

デフォルトでここまでデザインできているのはうれしいね!
他にもいろいろ紹介したい機能等あるけど今回はとりあえずここまで。

参考

rake タスク一覧

rake clean                 # Clean out caches: .pygments-cache, .gist-cache, .sass-cache
rake copydot[source,dest]  # copy dot files for deployment
rake deploy                # Default deploy task
rake gen_deploy            # Generate website and deploy
rake generate              # Generate jekyll site
rake install[theme]        # Initial setup for Octopress: copies the default theme into the path of Jekyll's ge...
rake integrate             # Move all stashed posts back into the posts directory, ready for site generation.
rake isolate[filename]     # Move all other posts than the one currently being worked on to a temporary stash l...
rake list                  # list tasks
rake new_page[filename]    # Create a new page in source/(filename)/index.markdown
rake new_post[title]       # Begin a new post in source/_posts
rake preview               # preview the site in a web browser
rake push                  # deploy public directory to github pages
rake rsync                 # Deploy website via rsync
rake set_root_dir[dir]     # Update configurations to support publishing to root or sub directory
rake setup_github_pages    # Set up _deploy folder and deploy branch for Github Pages deployment
rake update_source[theme]  # Move source to source.old, install source theme updates, replace source/_includes/...
rake update_style[theme]   # Move sass to sass.old, install sass theme updates, replace sass/custom with sass.o...
rake watch                 # Watch the site and regenerate when it changes