Sphinx+Guardでファイルを変更したときにビルドしつつ、自動でブラウザをリロードする
色々な言語が混ぜまくりすぎなので、他の人も環境を用意するようなものであればあまりおすすめできない。
guardfile内でふつうにWEBRick起動させるコードを書くのがよいんかな。
source/buildするディレクトリを分ける設定であるのを前提としております。
guard-shellとguard-livereloadが必要。
# A sample Guardfile # More info at https://github.com/guard/guard#readme guard 'shell' do watch(%r{source/.+\.rst}) { puts "invoke sphinx build" Process.spawn(%|make html >/dev/null|) } end guard 'shell' do watch(%r{app.psgi}) # dummy Process.spawn(%|plackup -MPlack::App::Directory -e 'Plack::App::Directory->new({root=>"build/html/"})->to_app' -p 3000|) end guard 'livereload' do watch(%r{build/html/.+\.html}) end
追記
WEBrickを使うようにしてみました
# A sample Guardfile # More info at https://github.com/guard/guard#readme guard 'shell' do watch(%r{source/.+\.rst}) { puts "invoke sphinx build" Process.spawn(%|make html >/dev/null|) } end guard 'shell' do watch(%r{app.psgi}) # dummy Process.fork do require 'webrick' webrick = WEBrick::HTTPServer.new({ :DocumentRoot => 'build/html/', :BindAddress => '127.0.0.1', :Port => 3000 }) trap("INT") { webrick.shutdown } webrick.start end end guard 'livereload' do watch(%r{build/html/.+\.html}) end