Link_110.lzh 桐8用 HTMLファイル内ハイパーリンク設定CMD Copyright (c) 2001 by Ogo mailto:ogou@icity.or.jp ●はじめに 桐8用 HTMLファイル内ハイパーリンク設定CMDをアップロード します。 単刀直入に言えば、桐8が一覧表印刷機能により書き出した HTML 形式 ファイルのデータに URL やメールアドレスが入っている場合に、これに 対するハイパーリンクを HTML ファイルに埋め込むものです。 桐8では URL やメールアドレスが入っていても、これを単純文字列と してしか認識せず、人為的に を含ませた項目値を 作成しても、わざわざ "<" や ">" を "<" や ">" のメタ文字に 展開してしまい(これはハイパーリンクを除外すれば、誠に正しい仕様 なのです)、折角 桐8 で書き出した HTML ファイルなのに、どこにも リンクできないという悲しい仕様を補完するものです。 Ver.1.1 で リンク文字列 というリンクタグ を html 出力した場合のリンク設定も可能としています。 ●インストール この圧縮ファイルの中には、$$$_HTML.CMD , $$$_HTML.TBL , Choice.WFM , Confirm.WFM, Display.WFM , LinkHTML.Txt の6ファイルと Sample.lzh が入っています。 この中で稼働に必要なのは、テキストと lzh を除く5ファイルだけです。 インストールと言っても、適当に何でもいいからディレクトリを作って、 その中にファイルを移動・複写するだけです。 ●実行してみましょう 既に目的とする(桐8が書き出した) HTML ファイルが存在する場合は、 以下のようにして下さい。 インストールしたフォルダの「 $$$_HTML.CMD 」をダブルクリックすれば このシステムが動き始めます(もし関連づけをしていない場合は、桐8 のメニューかファイルパレットから「 $$$_HTML.CMD 」を開いて下さい)。 目的とする HTML ファイルのフルパス名が &選択ファイル名 という共通 変数に代入されていれば、自動的にその HTML ファイルを変換するような 仕様になっています。 &選択ファイル名 という共通変数が空だったり、ファイル名でなかったり、 存在しないファイル名だったり、存在しても *.htm か *.html でなかった 場合、「どのファイルを処理対象にしますか?」のダイアローグが開きます。 後は作業経過を表示しながら、当該 HTML ファイルの URL, メールアドレス をハイパーリンクに変更するように動作します。 一応、ハイパーリンクの対象になる記述(先頭文字列)は以下の3種類です。 http: ftp: mailto: メールアドレスの場合、 mailto: で始まらないとリンク対象として認識し ませんので、データの持ち方にお気を付け下さい。 一応、「一覧表形式印刷物の HTML 化」という前提条件にしてあります。 従って、文字列(文章)の中の URL, メールアドレスを拾い出すような面倒 臭い作業はしていません。 あくまでも「項目値全体」が URL, メールアドレス であるとの前提です。 なお、このハイパーリンクは タグの中に「 TARGET="_blank"」という 属性を含ませています( HTMLlint で怒られていますが (^^;; )。 これは、「リンク先を新しい(別の)窓で開く=リンク元の画面は切り換え になるわけでなく、そのまま残る」という指定です。 - - - Ver.1.1 で任意の記述をしたリンク文字列にも対応するようにしました。 ただし、これは、文字列(文章)の中の URL, メールアドレスを拾い出すと いう仕組みではありません。 桐(レポート)の項目値として リンク文字列 と いう記述を HTML 出力した際に、"<" と ">" を "<" や ">" に修正 するという 桐 の仕様を更に元に戻すようにしただけです。 # リンク以外のタグは、いくら記述してあっても無視します。 従って、一覧表形式・レポート形式のいずれであっても、 項目値全体が URL, メールアドレス である場合 項目値が リンク文字列 という記述を含む場合 の双方に対応可能です。 - - - データのハイパーリンク化の変換作業が終わった後に、「戻る」リンクを 追加するか否かを選択できます。 HTML ファイルはリンクされてこそ有機的活用ができるのですが、流石に桐の データを「一覧表形式印刷物の HTML 化」してできた程度の物に、戻り先の データを含ませることはできません。 戻り先を指定させることもできるのですが、それでは毎回 HTML 化する度に 戻り先の URL かファイル名を入力するウィンドウを開くしかなくなります。 それでは面倒臭いので、この一括処理の「戻る」は Java-Script の 「戻る」 機能でお茶を濁すことにしました。 公開する HTML ファイルに SCRIPT を記載することは、閲覧者のセキュリティ ランクを落とさせることを強制することに等しいため、望ましくないと思って はいるのですが、戻り先が不定の場合でも記述内容を変更する必要がないため、 このような仕様にしたわけです。どうぞお許し下さい。 最後に、今、ハイパーリンクを設定した HTML ファイルを開いてそのまま閲覧 してみるか否かを訊ねられます。 これは *.htm ファイルに標準で関連づけされているブラウザが開きます。 なお、改変する前の(桐8が書き出した) HTML ファイルそのものは、同一 フォルダに拡張子 *.ORG となって残っています。 # Ver.1.1 から、 *.ORG も強制上書きするように変更しました。 - - - 未だ目的とする(桐8が書き出した) HTML ファイルが存在しない場合は、 以下のようにして動作確認をして下さい。 Sample.lzh の中身をこのシステムと同じフォルダに展開します。 インストールしたフォルダの「 Test.Wfm 」をダブルクリックすればテスト用 サンプルシステムが動き始めます(この場合、「*.CMD」 が桐に関連づけされ ていないと、システムが動かない筈です。その時は、桐 で「 Test.CMD 」を 直接開いて下さい)。 「実験開始」ボタンを押せば、Ogo がサンプルで作成した、 URL, メール アドレスの集約用 TBL が開きます(これは中身のデータを編集・改変しても かまいません。自由にお使い下さい)。 この TBL を閉じた時、桐の「一覧表形式/レポート形式印刷物の HTML 化」 機能を選択して実験開始できます。 その後で書き出した HTML ファイル名を &選択ファイル名 に代入してから、 上記の「 $$$_HTML.CMD 」を開いています。 従って、これ以降の説明は上に遡って全部をお読み下さい。 ●応用するには Sample.lzh の中身を解析すれば、どうやって自分のシステムに組み込むかは おおよそ理解できると思います。 問題はどうやって、「 $$$_HTML.CMD 」を呼び出すかだけと言えるでしょう。 なお、コンバートの実作業は2ヵ所に分散されて記述されています。 「 $$$_HTML.TBL 」の項目計算式では、項目値= URL, メールアドレス の 場合のリンク先を取り出しています。 実際には「 $$$_HTML.CMD 」で各種 HTML 修正処理を行なっています。 出力する HTML ファイルの様式を変更したい場合には「 $$$_HTML.CMD 」を 再定義で開くことが早道だろうと思います。 蛇足ですが、桐 が書き出した HTML ファイルの文法上の問題点もできる限り 修正しています(「 $$$_HTML.CMD 」内のコメント参照)。 # 桐 が一覧表形式で書き出した html を Opera で閲覧して驚いた。 (T_T) およそ、ホームページを公開しようと思うなら、 HTMLlint ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) で、その記述した HTML ファイルの文法上の正誤・問題をチェックする程度 のことはしてみれば良いとは思います。 HTML 作成ソフトが、いかにヒドイ(文法違反の) HTML ファイルを吐き出す かも判るし、大メーカーのホームページもいかにヒドイ(文法違反の) HTML ファイルを公開しているかが判ろうと言うものです(何しろ、100点満点 なのに0点を超えたマイナス点になってしまうページがゴロゴロしている)。 なお、私の修正した HTML ファイルでは、あえて(MS-ie とネスケでは問題が ないことが明らかだから)マイナス点になる記述も含んでおります。 (^^;; ※ サンプルの TBL の中に HTMLlint へのリンクを入れてあります。 ところで、いろいろやってるうちに気がついたのですが、「ファイル属性」 で「表題」を設定していないテーブル・レポートを html 化した場合、 html ファイルの に何もないという異常事態が発生するようです。 これには注意して下さいね。 ●最後に この「桐8用 HTMLファイル内ハイパーリンク設定CMD」は Ogo の 著作物です。 Ogo は これのバグ訂正やバージョンアップの義務を一切負いませんし、 ユーザーサポートの義務も負いません。 この一括処理を使った結果、生じた損害に関しては Ogo は一切関知しません。 ご自分の責任とリスクにおいてお使い下さい。 この一括処理を使った結果、生じた喜びや感謝や感想は、動作環境と共に Ogo に伝えてもらえれば、 Ogo は大喜びするでしょう。(^_^) この一括処理を配布するなら、この説明書も添付して下さい。 不特定多数の方への配布でなければ、再譲渡は自由です。 物好きにも転載等をしたい人がいれば、事前に Ogo まで E-Mail でご連絡 下さい。 Ogo mailto:ogou@icity.or.jp URL=http://www.icity.or.jp/usr/ogou/ --------------------------------------------------------------------------- 蛇足 1. これは「フリーソフトウェア」です。代金支払いの義務は全くありません。 ただしよっぽど気にいった方がいらしたら、寄付金をいただくのにやぶさか ではありません。 その際には下記まで送金下さい。領収証が必要なら送付も可です。 もちろん金額に要望なぞはありません。 郵便振り替え 口座番号: 01320-2-15048 加入者名: Office Ogo 2.某社や某社のように、普及した頃合を見計らって、後になってライセンス を強制するような姿勢は人間の信義を踏みにじる最低の行為だと Ogo は 考えています。 また、オンラインその他で「相互扶助」精神でフリーソフト(オープン・ ソースに限定せず)公開やボランティア行為を行なっている人々の精神を 貶めようようとしたり、その行為を妨害しようとしたりするMS社の行動 も顰蹙を買ってしかるべきだと Ogo は考えています。 心当たりのある会社の関係者は、この一括処理を利用することを自発的 にご辞退下さるよう、 Ogo は強く望んでいます。