html2man

最初何がやりたいのか分からなかったのですが、何となく分かってきました。

つまり、nroff 形式なんて書いてられないから、普段から良く使う HTML で書けばいいんじゃないかということです。確かにそのとおりなのですが、HTML を用いるという点も awk を用いるという点もネタなのかと思い、「何となく」と書きました。
そもそも HTML が完全な構造体ではなく、何となく表示できてしまう構造体であるために、いい加減なものがスルーする可能性があります。同様に awk で dehtml のようなことをさせると、先の構造体が完璧であっても awk 自体が HTML の構造体をパースできないために、何となくできてしまうケースがあります。

ですから、mikio さんが書かれている部分を十分注意してください。

もちろん、こんな小さいプログラムには一般的なHTMLを完全にman形式に直す能力はありません。しかし、手間を減らすのが目的なのですから、自分のユースケースのサブセットを処理できればよいのです(時に「完璧」なものを作りたくなって湯水の如く時間を使ってしまうこともありますが…)。今回の場合は、Tokyo Cabinetのマニュアルに表れる、h1, h2, h3, p, dl, dt, dl, ul, li, code, var だけ処理できればOKです。

mixi engineer blog

これが悪いとかではなく、完璧なものではなく、どういう目的であるかを書かれているのが良いなと思っただけです。

一方、awk と man を強力に結びつけたものは html2man ではなく、awk で man の代わりをする awf (ftp://ftp.freefriends.org/arnold/Awkstuff/awf.tgz) だったりします。mixi engineer blogにも書かれていますが、man は man コマンドだけではなく、Unix っぽく裏で nroff を動作させるフロントエンドなのですが、これを awk だけで表示させるのは awf です。現 gawk メンテナー Arnold のところからダウンロードできます。