ことの発端はまつもとさんの Ruby講習会中級コース2日目 で cgi.rb を使った CGI の作り方をやったことからはじまる.
僕は cgi.rb の HTML フォーマッタ部分は結構気に入っている. 気に入っている理由として,
この 2 点がある.
以下のようなコードを見ると, Ruby っぽく HTML を表現しているように見える.
cgi.html("lang" => "ja") { cgi.body { cgi.p { "本文っすよ〜." } } }
cgi.rb のフォーマッタはあまり使われていないためか, タグを含む連結をするときに
cgi.html("lang" => "ja") { cgi.body { cgi.p { "本文っすよ〜." + cgi.br + "2行目っす〜." + cgi.a("href" => "http://www.ruby-lang.org/") { "Ruby" } } } }
のように + で連結することを想像する方が多い.
演算子 + で連結すると ruby-mode.el でコードを書いたときに 字下げがいやなことになる. したがって,そのために cgi.rb から去った Rubyist も少なくない(と思う).
そこで本日記では,配列を使って連結することを提案する.
具体的には,上記のコードを以下のように書き換えることで, ruby-mode.el でも気持ちのいい字下げが可能となる.
cgi.html("lang" => "ja") { cgi.body { cgi.p { [ "本文っすよ〜.", cgi.br, "2行目っす〜.", cgi.a("href" => "http://www.ruby-lang.org/") { "Ruby" }, ] } } }
cgi.rb のフォーマッタが吐く HTML は一行だけん, 人間が出力を確認するにはちょっとえらい. そういう場合には CGI.pretty を使いましょう. たとえば,
cgi.out do cgi.html { あげこげ } end
は,
cgi.out do s = cgi.html { あげこげ } CGI.pretty(s) end
とすることで,みやすい HTML を吐いてくれます.
二年も前に開発が終了したソフトウェアだけど, 日本語の PostScript をテキストにするフィルタはこれしかなさげ. <URL:http://softpark.jplaza.com/cgi-bin/DL1.cgi/ps2text>
喰わせる PostScript ファイルが 2 だと読めないが,3 だと読める.
% apt-cache show libdb4.2 libxmlrpc-c3 ruby1.8 ... \ | awk -v OFS=": " '/^Package: / {name = $2} /^Version: / {print(name, $2)}'
grep-available はパッケージ名を一つしかとれないのか.
_ Kouji [googleアソシエイト希望〜]