bashやzshでルビ生成するための設定

 きっと誰しも使っているよね。たとえばこんなの。

function rubytag(){
  if [ "$2" != "" ];then
    echo "<ruby><rb>$1</rb><rp>(</rp><rt>$2</rt><rp>)</rp></ruby>"
  fi
}

 あと、rubyfilterなんて名前でこんなの作ろう。

#!/usr/bin/ruby
while STDIN.gets
  gsub! /\[{2}([^\]\|]+)\|([^\]]+)\]{2}/,"<ruby><rb>\\1</rb><rp>(</rp><rt>\\2</rt><rp>)</rp></ruby>"
  gsub! /\[{2}([^\]\|]+)\]{2}/,"<strong>\\1</strong>"
  gsub! /\[{1}img:([^\]\|]+)\|([^\]]+)\]{1}/,"<a href=\"\\2\"><img src=\"\\1\" alt=\"\\1\" /></a>"
  gsub! /\[{1}([^\]\|]+)\|([^\]]+)\]{1}/,"<a href=\"\\2\">\\1</a>"
  print
end

 これで、vimの中とかで、 :%!rubyfilter とか呼び出すと、

[[本文|ルビ]]

 この形式のものが、きちんとルビに変換される。