isolate/integrate
Octopressにはisolate
、integrate
というrake taskが用意されていて、
$ rake isolate[2013-01-01-a.md]
とすると2013-01-01-a.md
以外の記事をsource/_stash
ディレクトリに
退避させてgenerate
やpreview
の対象外にします。
これにより一時的にこのポストだけのサイトを作り高速にチェックする事が出来ます。
チェックが終わったら
$ rake integrate
としてやれば_stash
から_post
へ全ての記事が戻されます。
これを忘れたままdeploy
してしまうと1つのポストだけのブログになってしまうので
注意です。
ちなみにgen_deploy
コマンドではintegrate
をgenerate
より先に
実行しているので自動的に全ポストが反映されます。
一応コマンドになってますが、基本的にはただmv
しているだけなので、
複数記事だけ見てみたいとかだと手動で_post
から_stash
へ動かしても
同じ事が出来ます。
generate_only/preview_only/watch_only
上の状態だと毎回手動で移動させてる様な物なので余り恩恵が無いですが、
これを
$ rake generate_onnly[2013-01-01-a.md]
と言うコマンドで
isolate
generate
integrate
と1つのコマンドで出来たら便利だと思います。
実は、このコマンドはベータバージョンのOctopress-2.1の時に
一度加えられてたのですが
1、
現在のベータバージョンのOctopress-2.5では外されています。
ただし、現在もsite-2.1
というブランチや
commanderと言うブランチ
(このブランチにはより沢山のコマンドが入ってます)
に残っています。
これを参考に、preview
、watch
もついでに加えてみます。
こんな感じで。1つ注意が必要なのは、古いRakefileだとisolate
の所で
stash_dir
を自分自身で上書きしてしまうので、
そのままだとisolate
後にintegrate
使用としてもファイルが見つからずに
元に戻りません
2
。
なので、上のようにfull_stash_path
と言う変数を加えて
isolate
/integraete
の中では直接それを使うようにします。
これで、上のrake generate_only
に加えてpreview_only
/watch_only
も使える様になります。
ただし、この場合も、実際に生成されてるサイトは指定されたポストオンリーの
サイトになっているので、deploy
する前に必ずgenerate
するか、
gen_deploy
で確実にintegrate
した状態で生成、配置する必要があるので注意が必要です。
追加ページだけコンパイル?
上の方法は新しいポストを確認する際や、ちょっとcss等をいじった際に
高速にチェックする方法ですが、最終的に配置する前には
全体で再生成し直す必要が有ります。
実際に構築するJekyllコマンドのオプションを見ても一部だけ
生成するようなオプションが見当たらないので、今のところどうしようもないのかも。。。
適当にpublic
ディレクトリを消してから生成しなおしたり、何も変更しないまま
再生成しても時間的には変わらなかったので、結局毎回全部生成し直してる様。
もしかしたら何か方法があるのかもしれませんが、無いのであれば
今後のJekyllのアップデートを期待。