Jul 29, 2006

萌ディタで保存と同時にSafariをリロードするデモ

リアルタイムCSS編集の第二弾。やってることあまり変わらないけど。

VNCでSleipnirと同時に表示してキャプチャしてみた。
http://la.ma.la/misc/demo/realtime_cssedit2.htm

Apple scriptを使ってSafariをリロードすることができるのでWEBrickでSafariをリロードするだけのhttpサーバーを立てておいて、ファイル保存時に萌ディタから叩くようにしてみた。前回はSleipnirを使っていたけど、これでSafariでも同時に確認できるようになった。Safariリロードするためだけにサーバー立てるのはどうなのかとかdRubyとか使うのがいいのかも知れませんが、よく知らないので。httpだったら他のエディタからでもやりやすいんじゃないかと。

萌ディタ側

function XMLHttpRequest(){
    return new ActiveXObject("Microsoft.XMLHTTP");
}
function reload_safari(){
    var req = new XMLHttpRequest;
    req.open("GET", "http://MacのIPアドレス:3811/?"+(new Date-0), true);
    req.send(null);
}
// reload_safari()をf.onSaveに追加。

Mac側

#!/usr/bin/ruby
require 'webrick'
config = {
    :BindAddress => '0.0.0.0',
    :Port => 3811,
#   :Logger => WEBrick::Log.new("log",0),
#   :AccessLog =>  WEBrick::Log.new("log",0),
}
s = WEBrick::HTTPServer.new(config)
Signal.trap('INT') do
    s.shutdown
end
reload_safari = Proc.new{
    io = open '|osascript', "w"
    p io
io.puts <<END;
    tell application "Safari"
    do JavaScript "location.reload(true)" in document 1
    end tell
END
    io.close
}
s.mount_proc("/", reload_safari)
s.start


あとはFirefoxとOperaなんだけど、何かいい方法あるだろうか。
Posted at 19:47 | WriteBacks (4) | Edit
Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.