†逆襲のOS/2†

NewViewとヘルプのHTML化

作成開始日 2013.12.03
最終更新日 2022.01.10

OS/2のオンラインヘルプ・ビューア(情報表示機能:IPF)は恐ろしくデキが悪い。INF形式の技術資料を調べながら作業をしたことのあるユーザーなら判ると思うが、ビューアの機能自体がお粗末で、他OSのオンラインヘルプと比べても著しく使いにくい。

まず、一番の問題点は、ドキュメントの一部をコピー&ペーストできないことである。トピック全体をクリップボードやファイルにコピーする事はできるが《マウスで範囲選択をして、サンプルコードのみをぺたっと持って来ると》いうアタリマエの事ができない。ファイルへのコピーも、カレントディレクトリの「TEXT.TMP」というファイルに決め撃ちだし、しかもそのことは、ヘルプを使わないと判らない。普通、[ファイルへコピー]を選べば、ファイル保存ダイアログが出て、任意の場所に任意のファイル名で保存できると考えるのが当然である。技術的にも全然難しくない。しかし、このヘルプビューアは何のメッセージも出さず、勝手に決め撃ちしたファイルにコピーして、知らん顔をしている。ほとんどのユーザーは、何の反応もないのを見て、この機能は未実装のまま放置されていると判断するだろう。

第二は、マルチウィンドウの扱いが杜撰なことだ。このビューアは基本的にMDIを採用しているが、表示できるトピックスは1つだけらしい。ただし、目次や索引のウィンドウは、トピックスとは別に開く。したがって、マルチウィンドウであることには違いはない。ところが、複数のウィンドウから、必要なウィンドウを選んで表示することができない。上から順番に閉じるか最小化していかないと、目的のウィンドウに辿り着けない。情報へのアクセス性が極めて悪い。もっとも、[オプション]には目次や索引へジャンプする機能は用意されている。また、[オプション|読了ページ]も疑似的に複数トピックスのウィンドウ切替に使えないことはない。しかし、欲しいのはこうした代替機能ではなく、タブインターフェースのような、素直なページ切替機能である。

三番目は、情報検索時に、該当ページの位置が不明だと言う点にある。たとえば、ある単語を全ライブラリの中から検索する。そうすると、該当ページがずらっと表示されるが、その該当ページが、何と言うドキュメントの、どの章に書かれているのか、全くわからないのである。ただ、該当ページがぽっと表示されるだけなのだ。いわば、正体不明のマニュアルの1ページを切り取って渡されたようなもので、そこに検索語が含まれていても全く何の役にも立たない。もちろん、中味を読めば、何について書かれているかはある程度推測できるが、面倒な上に確実性に乏しい。そもそも、検索結果の一覧表示の時点で、元ドキュメント名くらい表示するのは当たり前だろう。

つまるところ、このビューアを設計した開発者は、仕様書を満たしさえすれば良しとして、自ら実際に使ってみることもなければ、使用者のフィードバックに耳を貸す事もなかった、と考えざるをえない。しかも、OS/2は曲がりなりにもバージョンアップを重ねていたのに、このビューアは全然改善されなかった。ダメだろう、それじゃ。

●高機能ヘルプビューアNewView

もっとまともなビューアが欲しい−−そう考えるのは私だけでなかった。そこで登場するのが、NewViewというフリーソフトだ(Hobbesから入手可能)。OS/2のINFファイルをWindowsのヘルプビューアに似た形式で表示してくれる優れものだ。MDIではないが、使い勝手は標準ビューアよりも圧倒的に上だ。

このNewViewは日本語も文字化けせずに表示してくれるのだが、残念なことに、一つ致命的な欠点を抱えている。日本語では行の折り返しができないのである。どうも、アルファベット圏の流儀に従い、空白を含まない文は、そのまま1単語とみなされてしまうようだ。途中に英数字が混在していれば、そこで改行されることはあるが、そうでなければ1文=1単語扱いで、文全体が1行に表示されてしまうのである。流石にこれは読みにくい。ちなみに、現行バージョン(2.18.1)ではメニューの日本語表示も可能なのだが…

【追記】NewView 2.19.7(2019.11.19)で日本語の行の折り返しが可能になった。従って、以下のようなHTML変換をしなくても、標準VIEW.EXEの代替ビューアとして十分に実用になる。

では、結局NewViewは使えないのか?標準ビューアを使い続けるしかないのか?−−ビューアに関しては残念ながらそうだと言わざるをえない。しかし、NewViewにはもう一つ、素晴らしい機能がある。それが、INF/IPF逆コンパイル機能だ。

●INF→IPF逆コンパイラ

そもそも、OS/2のINFファイルは、IPFと言うHTMLやTeXに似たタグ埋め込み式のマークアップ言語で書かれている。IPFファイルをコンパイラに掛けてINFファイルを生成するのである。ソースであるIPFファイルは純然たるテキスト・ファイルだ。つまり、IPFへの逆コンパイルが可能と言うことは、全テキストの抜き出しが可能だということに他ならない。私自身、INFで読むくらいならプレーンテキストの方がなんぼかマシだと考えて、INFを独自に解析してテキストの抽出を試みたことがある。しかし、試行錯誤しながらの解析だったため、どうしても抜き出せない部分が残ってしまった。しかも、プレーンテキストはプレーンテキストで、リファレンスとしては決して扱い易いものではなかった。項目へのアクセス性を何とかしないと、使い物にはならなかった。

ところが、このNewViewでIPF化したファイルは、中味を完全に吸い出してくれる上に、IPFのタグまで付けてくれる。このIPFタグはHTMLとの親和性が高い。たとえば、HTMLの「<p>」は、IPFでは「:p.」と表記する。流石にすべてのタグが1対1対応しているわけではないが、見出し、段落、改行、強調、列挙、ソースコードなど、文書の基本要素の扱い方は良く似ている。つまり、ちょいとしたスクリプトでタグを変換すれば、IPFファイルはそのままHTMLファイルになるのである。これは実に僥倖であった。

●IPF→HTML変換スクリプト

と言う事で、とりあえず、使用頻度の高い【REXX解説書をHTML化するスクリプト】を作ってみた。もっと大事になるかと思ったが、思いの外すんなりといった。文字グラフィックスなども綺麗に表示できている。もっとも、IPFのタグを網羅的・系統的に処理しているわけではないので、他のINFファイルでも同じように変換できるかどうかは不明だし、REXX解説書のように短いドキュメントでも、180近い見出しがずらずら並ぶ目次ファイルはどうかとも思うが、この辺りは今後の課題としたい。なお、このスクリプトをこのまま実行すると、カレントディレクトリにあるREXX.HTMとカレントディレクトリ内のREXXディレクトリの中にある*.HTMファイルをすべて削除する。同名ファイルがある場合は注意してほしい。

 

このHTML化によって、標準ビューアの欠点はほぼ克服できた。任意部分のコピー&ペーストはもちろん、タブブラウザによる複数ページ切替も簡単だ。検索に関しては、現時点ではOS標準の検索ツールを使うしかないが、専用の検索スクリプトを作るのも難しくはない。

実は、私がこんなものを作らなくても、やはりHobbesにINFを直接HTML化するツールが上がっている(i2htm.exe)。しかし、残念ながらこちらは日本語が一部文字化けしてしまう。DBCSの扱いがきちんとできていない感じだ。日本語を考慮してくれているわけではないので、仕方のないところだ。

【追記】上記の画像はSeamonkey 1.1.18でビットマップ・フォントを使用して表示したもの。最近のブラウザはビットマップ・フォントの使用が不可能なため、罫線が表示できない。一応、フォントをMonotype Sans Duospace WT Jとして、罫線を「-」「+」「|」などで置換すれば桁崩れなく表示可能。下記のようなフィルターを噛ませば良い(と言っても、罫線キャラクタは見えていないかも知れないが…)。
 st=translate(st,'-|--||++++','')
ただし、この方法でもかなり見苦しい。さりとて完全Unicode化も…(2021.11.18)

●NewViewのインストールとアンインストール

ということで、IPF逆コンパイラとしてのNewViewはたいへんにありがたいものだが、そのインストールには慎重を期さないといけない。旧バージョンのNewViewは、標準のビューアと同じファイル名(VIEW.EXE)にリネームして、\OS2に放り込むだけだったので、インストールもアンインストールも簡単だった。しかし、現行バージョンをデフォルトでインストールすると、DLL(HELPMGR.DLL)を置き換えられてしまう。そのくせ、アンイントーラは用意されていないので、いちいちユーティリティディスクで起動するなどして、DLLを元に戻してやらないといけない(ヘルプ機能を一度も使ってなければ、そのままDLLを弄れるのかも知れないが…)。個人的には、解凍だけしてインストーラは使用せず、そのまま単独プログラムとして使用する方が良いと思う。


【逆襲のOS/2目次】 【ホーム】