IconHTML Conv Object

テキストとHTMLとを相互に変換する機能を持つライブラリです。HTMLを読み書きする多くのスクリプトが参照します。

タブ区切りテキストの表への変換

HTML Conv Objectの持つ,タブ区切りテキストTSVからHTMLのTableタグへの変換ルーチンは,変換後のタグの一部にコメントとして元データを含めることができるので,データを再編集する際に便利です。この機能は Text2Tableなどのソフトウエアで利用されます。
クラリスワークスを使用した例
Jeditを使用した例

上記のような表データが,次のようなHTMLに変換されます。

<table class="auto">
  <tr class="em1"><td>ソフト</td><td>対象</td><td>価格</td></tr>
  <tr><td class="em2">Text2Table</td><td>表のみ</td><td>無料</td></tr>
  <tr><td class="em2">HTML Conv-J</td><td>全文</td><td>無料</td></tr>
</table>
<!--以下,元となったデータです。タグは変換時に復元されます。
ソフト  対象  価格
Text2Table  表のみ  無料
HTML Conv-J  全文  無料
-->
<!--Converted with HTML Conv Object ver.1.5-->
元データはそのままコメントとして出力されるので,表計算ソフトウエアなどにコピー&ペーストで戻して再編集することができます。ブラウザ上では以下のように表示されます。XHTMLやスタイルシートにも対応しているので,多彩な修飾が可能となります。
ソフト対象価格
Text2Table表のみ無料
HTML Conv-J全文無料
HTML 4.0のスタイルシートに対応していない HTML 3.2対応のブラウザ(Netscape 3.0など)においてもさまざまな配色を利用することができます。
なお,HTML Conv-Jなどのアプリケーションが利用するテキストからHTMLへの変換機能については,出力されるHTMLはほぼ同じですが,コメント元データは出力されません。

インデント処理によるAppleScriptのHTML表示

タブコードによるインデントや半角カタカナを含むAppleScriptの文字列をHTMLで表現することができます。
欧文インデントモードでは,スクリプト編集プログラムでコンパイルが可能な状態でHTML表示させることができます。文字化けを防ぐために,表示フォントにはChicagoやGenevaなどの英文フォントを指定しなくてはいけません。
和文インデントモードでは,日本語フォントでも文字化けが起こらないようにいくつかの特殊な文字を置き換えます。そのままではコンパイルできませんが,ブラウザの上ではきれいに表示されます。

欧文インデントモード:フォントGenevaの場合
on ヌevent GURLGURLネ theURL
    OpenURL(theURL)
end ヌevent GURLGURLネ

和文インデントモード:フォントOsakaの場合
on <<event GURLGURL>> theURL
  OpenURL(theURL)
end <<event GURLGURL>>

タブの変換を設定する画面

ただし,この機能を利用する場合にはタブ区切りテキストの表データのTableタグへの変換機能は利用できません。

主なルーチン

Text2HTML(text)
テキストをHTMLに変換されます。タブ区切りテキスト形式の表データが含まれている場合にはその部分をHTMLのTableタグに変換することができます。このルーチンの主要部分は井上圭司様の「HTML変換」のHTML変換ルーチンを使用させていただきました。
HTMLConv(text)
Text2HTMLルーチンと表部分の修飾のためのmodifyHTMLルーチンを一括して行う。
Text2Table(text)
タブ区切りテキスト形式の表データをHTMLのTableタグに変換されます。表部分の修飾は行われない。
HTML2Text(HTML)
HTMLソースからタグを取り除きテキストに変換します。主に携帯端末での表示に適したコンパクトなテキストファイルが出力されます。Text Encoding Objectがインストールされている場合,文字コードのシフトJISへの変換も同時に行われます。

サブルーチン

askPref()
初期設定ダイアログを表示し,特殊記号の扱いや表部分の修飾に関する設定を行います。インデントモードの設定もここで行います。初期設定を行うとHTML Conv Obj内部の属性が変更されるとともに,初期設定データがレコード形式で返されます。この初期設定データはsetPrefルーチンで再利用することができるので、HTML Conv Objを実行中のアプリケーションのメモリーからいったん破棄しても、再度共有ライブラリから読み込みなおし、属性をつけ直すことが可能です。
askStyle()
初期設定ダイアログを表示し,表部分の修飾に関する設定のみを行う。初期設定を行うと内部の属性が変更されるとともに,初期設定データがレコード形式で返されます。askPref()はこのルーチンを含みます。
setPref(PrefData)
レコード形式の初期設定データを与えてライブラリの内部の初期設定を変更します。
modifyHTML(PlainHTML)
表部分の修飾が行われていないHTMLデータを入力すると修飾されます。修飾の内容はsetPrefまたはaskStyleで決定されます。
run
開発者向けの技術情報がガイド形式で表示されます。ClipboardObjectがインストールされていればクリップボード内のテキストデータのHTMLへの変換も可能です。

スクリプトアプリケーションからの利用法

スクリプト共有ライブラリはAppleScriptなので,スクリプト共有ライブラリ規格のページで提供されているライブラリである loadObj() Handler を用いたスクリプトによりスクリプトアプリケーションのメモリに読み込んで利用します。たとえば、クリップボード内のテキストをHTMLに変換するスクリプトは次のように記述できます。
property loadObjHandler : load script file "loadObj() Handler"
on loadObj(ObjName)
    loadObj(ObjName) of loadObjHandler
end loadObj

tell loadObj("ClipboardObj"))
    set msg to getClip()
end tell
tell loadObj("HTML Conv Obj"))
    askPref()
    set msg to HTMLConv(msg)
end tell
tell loadObj("ClipboardObj"))
    setClip(msg)
end tell
loadObj(ObjName) ルーチンはコアライブラリであるCyberHandlerObjectおよびそれを実装した実行環境であるAS Runnerにも組み込まれているので,AS Runnerにおいて実行されるスクリプトは loadObj() Handler の組込みを省略できます。

変更履歴

ver.1.56
アプリケーションパッケージに対応。
ver.1.55
テキストからHTMLへの変換で一部のデータが消失することがある問題を解決。テーブルHTML変換ルーチンで作成されたバックアップ用HTMLタグ付きタブ区切り元データを汎用のHTML変換ルーチンで正しく処理できるように修正。
ver.1.541
スタイルシートを用いる設定で表のセルの中のデータの位置合わせが初期設定のまま変更できなくなっていた問題を解決。
ver.1.54
HTMLのテキスト変換でエスケープされていないstyleとscriptが変換結果のテキストに含まれる問題を解決。これまで文字列置換サブルーチンのバグ回避のために入れていた前処理を削除。
ver.1.53
文字列置換サブルーチンのバグを修正(2.5)。多くのルーチンに影響します(過去の多くのバグもこれが原因でした)。Mac OS Xにおける改行処理を修正。
ver.1.52
CoreObjをベースにコンパイル。他のライブラリの呼び出し方法やファイル読み書き全般のMac OS Xにあわせた修正。
ver.1.514
複数の改行で終わる文書を変換するとデータが消失する問題を解決。Mac OS X環境でコンパイルされるようになった。
ver.1.513
新しい文字列置換ルーチンにより改行コード変換ルーチンが空のデータを返す問題を解決。
ver.1.511
出荷時の設定のままテキストを変換すると表より後が中央寄せになってしまう問題を修正。
ver.1.51
文字列置換ルーチンをアップデートして,1000行以上のテキストを処理しようとするとエラーとなる問題を修正。
ver.1.5
XHTMLへの対応。スタイルシートへの対応の強化。Mac OS Xの改行コードへの対応。
ver.1.4
IE5,iCabなどにおける見栄えを改善するためにエンボスデザインを廃止してフレームデザインを導入。スタイルシートへの対応を強化。HTMLをテキストに整形するルーチンを実装。
ver.1.3
初期設定のバージョンを1.2とし,Tableタグの使用の有無を設定できるようになり,Tableタグを使用しないインデントモードを高速化した。
ver.1.2
Tableタグの配色の自由度を増やし,配色の種類を増やした。
ver.1.1
初期設定のバージョンを1.1とし,文字の変換テーブルも初期設定データに含まれるようになった。
ver.1.0
最初の公式リリース。

このソフトウエアはネットワークインストーラからのみインストールすることが可能です。

関連ページ
   ネットワークインストーラ
   HTML Conv-J
   AS Runner CGIによるサーバの遠隔制御
   使用できる表のスタイルと配色の一覧
   スクリプト共有ライブラリ規格
   Text Encoding Object


Copyright(C) SUZUKI Kazufumi, All rights reserved.