monoの開発ブログ

Google Chromeのtextareaを外部エディタで編集する (Ruby版)

現在KAYA Satoshi氏がGitHub上でRack対応を行ったバージョンを公開されていますので、そちらを利用されることをおすすめします。

kayakaya's edit_server_rack at master - GitHub Google Chrome のテキストエリアを外部エディタで編集する Edit with Emacs 自分のPCにはPerlがインストールされていないので、Rubyで書いてみました。Perlは分からないので勘で移植しましたが、一応動作しているようです。対象バージョンは1.8系のつもりです。動作確認はmswin32の1.8.7で行いました。

#!/usr/bin/rubyrequire 'webrick'require 'tempfile'$EDITOR = 'C:\vim\gvim.exe'$PORT = 9292server = WEBrick::HTTPServer.new(:Port => $PORT)trap('INT') { server.shutdown }server.mount_proc('/status') do |req, res|  res.status = 200endserver.mount_proc('/edit') do |req, res|  temp = Tempfile.new('editwith_')  temp << req.body  temp.close false  system $EDITOR, temp.path  temp.open  res.body = temp.read  temp.close  res.status = 200  res['Content-Type'] = 'text/plain'  res['Content-Length'] = res.body.sizeendserver.start

$EDITORと$PORTを適切に設定すれば動作するんじゃないかと思います。

追記

2010/06/02
KAYA Satoshi氏のGitHubへのリンクを追加
文字化けおよび入力した半角カタカナが全角に変換される不具合を修正