名前
man2html - マニュアルページを整形して html にする
書式
man2html [options] [file]
説明
man2html は file として指定されたファイル (ファイル引き数がなかったり、 "-" が指定され た場合は標準入力) を変換して、 man スタイルの nroff から html を生成し、 結果を標準出力に表示します。 tbl はサポートしていますが eqn はしていま せん。返り値は常に 0 です。なにか問題が起こった場合は、エラーページが 標準出力に表示されます。
これはスタンドアローンのユーティリティとしても使えますが、主な目的は、 ユーザーが man ページを lynx(1), xmosaic(1), netscape(1) などの html ブラウザを用いて見ることができるようにするための補助をする ことです。
man2html の主要部は Richard Verhoeven (rcb5@win.tue.nl) によって書かれた troff-to-html エンジンです。これは以下のような形式のハイパーリンクを付 加します。
foo(3x) | "http://localhost/cgi-bin/man/man2html?3x+foo" |
method://string | "method://string" |
www.host.name | "http://www.host.name" |
ftp.host.name | "ftp://ftp.host.name" |
name@host | "mailto:name@host" |
<string.h> | "file:/usr/include/string.h" |
(最初のリンクはオプションによって変更できます - 以下の記述を参照のこと) リンク先の確認は行われず、リンク先が存在していなくてもリンク行が生成 されます。文書内部での、セクションなどへのハイパーリンクも生成されます。 したがって bash(1) などの大きなマン・ページで必要な部分を探すのが楽になります。
オプション
標準入力から読み込むとき、 .so の展開に関してはっきりしない場合もあり ます。 -D オプションを用いれば、スクリプトからワーキングディレクトリ を指定することができます。
-D pathname | |
pathname の最後の二つ分を取り除き、変換を行う前にそこに chdir(dir) します。 | |
-E オプションを用いると cgi スクリプトから簡単にエラーメッセージを生 成することができます。 | |
-E string | |
与えられたエラーメッセージを含むエラーページを出力します。 | |
参照先がマン・ページであるハイパーリンク、一般に以下のような形式で生成 されます。 | |
<method:cgipath><man2htmlpath><separator><manpage> | |
デフォルトは上の通りですが、ハイパーリンクの各部は各種オプション を用いることでいろいろ設定できます。 | |
-h | method:cgipath を http://localhost にします。デフォルトです。 |
-H host[.domain][:port] | |
method:cgipath を htttp://host.domain:port に設定します。 | |
-l | method:cgipath を lynxcgi:/home/httpd に設定します。 |
-L dir | |
method:cgipath を lynxcgi:dir に設定します。 | |
-M man2htmlpath | |
man2htmlpath を設定します。デフォルトは /cgi-bin/man/man2html です。 | |
-p | セパレーターを / に設定します。 |
-q | セパレーターを ? に設定します。デフォルトです。 |
httpd が稼動していないマシンでは、
lynx で lynxcgi を用いればマン・ページを閲覧することができます。
http デーモンが稼動している場合は、 lynx でも他のブラウザでも閲覧でき
ます。オプション -l (lynxcgi の意味) は前者を選択します。これを指定
すると、デフォルトの cgipath は /home/httpd/ になります。
一般には cgi スクリプトは | |
<path_to_script>/<more_path>?<query> | |
のようなかたちで呼ぶことができます。
環境変数 PATH_INFO と QUERY_STRING がそれぞれ <more_path> と <query>
に設定されます。 lynxcgi は PATH_INFO 部分を扱うことができないので、デ
フォルトでは ? をセパレーターとするハイパーリンクを生成することにし
ました。オプション -p (path の意味) は / をセパレーターにします。
一方 -q (query の意味) は ? をセパレーターにします。
オプション -H host は (localhost の代わりに) 用いるホスト を指定します。環境変数 SERVER_NAME が設定されていれば、 cgi スクリプ トから | |
man2html -H $SERVER_NAME | |
バグ
多くの発見的手法 (heuristic) が用いられています。出力は常に完全である とは限りません。 lynxcgi は、これをサポートするように選択して lynx を コンパイルしなければ動作しません。セキュリティ上の問題があるかもしれま せん。