JavaScriptコードをブックマークレット用にフォーマットするRubyスクリプト

ちょっと長めのブックマークレットを書くとき、普通にエディタで書くんだけど、その後ブラウザで使える'javascript:'形式に変換するのがめんどくさいな、って思ってた。どうやら同じようなこと考えてた人がいるみたいだ。
再編集可能なbookmarklet
秀丸マクロでいい感じに解決してる。しかも「エラーコンソールでエラーとなった行が何行目なのかが分かる」、これはいい。

せっかくなのでRubyで書き直してみた。

JavaScriptコードをブックマークレット用にフォーマットする

#!/usr/bin/env ruby

ARGF.each_line(rs = nil) do |buf|
  printf "javascript:%s\n",
    buf.gsub(/\s+$/, "").
    gsub("%", "%25").
    gsub("\n", "%0A").gsub("\t", "%09")
end

ブックマークレットを改行、インデント付きのJavaScriptコードに戻す

#!/usr/bin/env ruby

ARGF.each_line(rs = nil) do |buf|
  puts buf.sub(/^javascript:/, "").
    gsub("%0A", "\n").gsub("%09", "\t").
    gsub("%20", " ").gsub("%25", "%")
end

どっちも「引数で指定したファイルまたは標準入力」を読み込んで、変換結果を標準出力に出力するよ。