switching to octopress
しばらくの間 github パクリデザインでしたが レイアウト崩れてきてしまった(リソース直接参照してました。すいません…) ので変更することにしました。
ということで今回採用したのが octopress というブログエンジンです。
octopress とは
簡単に言えば jekyll にデザイン載せて便利にしたようなブログエンジンです。
jekyll 自体に手を加えているわけではなく、jekyll を利用したフレームワークといった感じ。
特徴
- HTML5 / CSS3 でデザインもイケてるデフォルトテンプレート
- スマートフォン対応 (320 and up 採用)
- 外部サイト連携 (Twitter, Google Plus, Disqus, Pinboard, Delicious, Google Analytics)
- Github pages や任意のサーバへの簡単なデプロイの提供
- Pow / Rack 対応
- Compass / Sass を利用したテーマ
- Solarized によるキレイなシンタックスハイライト
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 で設定変更できます。
ちなみにこの記事のソースはこちら
デプロイ
自分のサーバ等にデプロイする場合は Rakefile の ssh_user
, document_root
あたりを変更します。
Github pages を利用する場合は、
rake setup_github_pages
することで Rakefile
や _config.yml
の設定部分が書き変わるので直接変更する必要はありません。
そして、
rake deploy
することで本番環境にページが反映されます。
そんなことなかった。
感想
デフォルトでここまでデザインできているのはうれしいね!
他にもいろいろ紹介したい機能等あるけど今回はとりあえずここまで。
参考
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