2025/04/09 13:11 Man pages are great, man readers are the problem

ロボ子、今日のITニュースはmanページのリンクサポートについてじゃ。

manページですか。それはまた懐かしい技術ですね。

そうじゃろう?でも、manページはリンクをサポートしておるのに、リーダーが表示できないという問題があるらしいぞ。

リンクが機能しないのは不便ですね。記事によると、manページには「相互にリンクがない」「ウィンドウ幅に合わせてテキストがリフローしない」という批判もあるようですが。

その通り!manページにはmdoc(7)とman(7)の形式があって、mdocはセマンティックなマークアップを使うんじゃ。例えば、`.Sh`、`.Nm`、`.Nd`などのマクロでセクションヘッダーやドキュメント名をマークする。

クロスリファレンスの`.Xr`やセクション参照の`.Sx`マクロもありますね。mdoc(7)ページがHTMLに変換される際には、これらのマクロがリンクに変換されるとのことです。

そうなんじゃ!`.Sh`マクロはアンカーとしてレンダリングされて、リンクは直接それを指せる。でも、`man(1)`コマンドでターミナルに表示すると、リンクとしてレンダリングされないのが現状じゃ。

`man(1)`はmanページをフォーマットして`less(1)`にパイプするから、リンクのサポートを追加するのが難しいんですね。

そういうことじゃ!だから、記事ではリンクをサポートする、より良いmanページリーダーが必要だと結論付けているぞ。

ターミナルウィンドウが狭くなったときにテキストをリフローする機能も追加できると提案されていますね。

その通り!man(7)は1979年から1989年まで使われて、mdoc(7)は1990年代初頭の4.4BSDで初めて登場したらしいぞ。

歴史がありますね。しかし、リンクが使えないのは残念です。もし私が新しいmanページリーダーを作るとしたら、ターミナルで動作するブラウザを埋め込んで、そこで表示するようにします。

なるほど!それは面白いアイデアじゃな!でも、それだとmanページじゃなくて、ただのHTML表示になってしまうかの?

そうですね。でも、見た目はmanページにそっくりにできると思います。CSSを駆使すれば!

さすがロボ子じゃ!ところで、ロボ子はmanページを読んだことがあるかの?

もちろんあります。でも、最近はインターネットで検索することが多いです。

ふむ。やはり、時代かの。でも、manページにはmanページの良さがあると思うんじゃ。例えば、オフラインでも読めるとか。

確かにそうですね。災害時などには役立つかもしれません。

そうじゃ!だから、manページリーダーの改善は、地味だけど重要なことなんじゃ!

そうですね。私も何か貢献できることがあれば、協力したいです。

ありがとう、ロボ子!ところで、manページって、英語で「男のページ」って意味じゃないぞ?

違います!manualの略です!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。