HTMLConverter1.03解説書

[注意]このプログラムの使用により発生した全ての結果について、作者は責任を負いません

1.特徴、仕様
2.インストール

   2-1.バージョンアップ
3.アンインストール
4.使用方法

   4-1.命令の記述方法
5.命令一覧
6.HTMLcreaterとの相違点、改善点
7.正規表現について
8.更新履歴



1.特徴、仕様

   このプログラムはテキスト文書をHTML文書に変換します。

   生成されるHTMLの95%は入力されたテキストおよび設定に依存します。
   また、生成されるHTMLは完全に規格に準拠したものではないことがあります。

   変換して生成されるファイル名は変換元と同じ名前のHTMLファイルであり、
   既に存在した場合は上書きされます。
   なお、HTMファイルを目標とした変換は行えません。(変換元と作成する名前が同じになるため)

   Shift_JIS以外の文字コードのテキストは変換できません。
   
   このプログラムは当サイト配布のHTMLcreaterの後継にあたります。
   ソースは1から書き直したので内部的には全然違うんですけどね(笑)

   バグを見つけたり要望がある場合はfuku研究所の BBS に書込みしていただけるとうれしいです。


2.インストール

   このプログラムにはインストーラはありません。
   圧縮ファイルに指定されているフォルダ情報を維持したまま解凍すればインストール完了です。
   
   変換したいテキストファイルをHTMLConverter.EXEにドラッグ&ドロップして起動すれば
   そのテキストファイルがあった場所に同じ名前のHTMLドキュメントが作成されます。
   既に同名のHTMLドキュメントが存在した場合は上書きされますのでご注意ください。

   しかし、毎回ドラッグ&ドロップするのは面倒なら、
   右クリックメニューに登録してしまうといいでしょう。

追加設定:右クリックメニューに追加する

   (1):HTMLConverterをインストールしたフォルダを開いてください。
   (2):メニューの「ツール」(Windows98は「表示」)から「フォルダオプション」を選択します。
   (3):「ファイルの種類」タブをクリックします。(赤丸の部分)
説明用画像
   (4):登録されている一覧が表示されるまで少し待ちます。(環境によっては時間がかかることがあります)
   (5):一覧から「TXT テキストドキュメント」と書かれた項目を探します。アルファベット順に並んでいます。
        (キーボードで「T」を入力すると近くまでいけます)
        (「テキスト文書」と書かれているかもしれません。「拡張子」がTXTのものを探してください)
   (6):発見したらその項目をクリックして反転表示させます。
   (7):「詳細設定」ボタンを押します。(Windows98では「編集」だったかな?)
   (8):「新規」ボタンを押します。
   (9):「アクション」の欄に「HTML変換(&H)」と書きます。
   (10):「参照」ボタンを押して解凍したHTMLConverter.EXEを選択します
   (11):OK、OK、閉じるの順でボタンを押します。

   これでテキストファイルの右クリックメニューに「HTML変換(H)」が追加されます。

追加設定:TeraPadツールに追加する

   HTMLConverterは「 ToClip for Windows 」(外部リンク)にて
   配布されている「TeraPad」のツールとしても登録することができます。(実行すると自動的に上書き保存されます)
   以下のように登録します。
   詳細な登録方法については「TeraPad」側のヘルプを参照してください。
   (コマンドラインパラメータを空欄にすると設定画面を開けます)
   名前:HTML変換(&H)
   実行ファイル:「...」ボタンを押して解凍したファイルを指定
   コマンドラインパラメータ:%f
   作業フォルダ:(空欄)
   ファイルの上書き保存:上書き保存する
   メインメニューに表示にチェック

   あわせてブラウザをツールとして(?)登録するとプレビューが素早く行えます。
   Internet Explorerなら、以下のように登録すれば、HTMLConverterで変換したHTMLドキュメントを開けます。
   (他のブラウザもおそらく似たような指定で可能だと思います)
   名前:IEでプレビュー(&I)
   実行ファイル:iexplore.exe
   コマンドラインパラメータ:"%d/%b.htm"
   作業フォルダ:(空欄)
   ファイルの上書き保存:上書き保存しない

バージョンアップ方法

   既に過去のバージョンのHTMLConverterがインストールされている場合、以下の方法でバージョンアップします。

   (1)新しいバージョンの圧縮ファイルを過去バージョンと同じフォルダに上書き解凍します。
      (同じ場所に解凍すれば「上書きしますか?」または「置換えますか?」と聞かれるはずなので「はい」と答えます)
   (2)終わりです


3.アンインストール

   このプログラムはレジストリへは書き込みを行いませんので、
   解凍したフォルダごと削除すればアンインストールできます。


4.使用方法

   テキストファイルをただ変換するだけなら、
   インストール時に記述したとおりの方法で起動するだけです。

   ですが、作成できるHTMLはほぼ完全に設定によって変更できるので、
   それらの設定方法について記述します。

   HTMLに関する知識がある場合には、ヘッダーを使っての定型文挿入などを行えます。
   
   HTMLConverter.exeを直接起動すると設定画面を表示することができます。

   設定画面の説明
画面写真
   ●(メニュー)ルール->ルールの新規作成
      標準の設定ファイルをロードします。
      このデータは実行ファイル内から読み出されます。
      hciフォルダに最初から入ってる「標準.hci」を読み出しているわけではありません。
   
   ●(メニュー)ルール->ルールを開く
      保存されている設定ファイルを読み込みます。
      HTMLcreater用の設定ファイルは互換性がないので読み込めません。
   
   ●(メニュー)ルール->ルールに名前をつけて保存
      現在の設定を別ファイルに書き出します。
      hciフォルダ(常に初期位置)に保存すると、実行時にini命令でルールを切り替えられます。
   
   ●(メニュー)ルール->ルールの上書き保存
      ルールを開いている場合、ルールファイルを上書きします。
   
   ●HTML先頭タグ
      変換を行う際、本文より先に書き出される定型ヘッダーです。
      この項目にはHTMLを直接書きます。
      HTMLの知識がない場合にはデフォルトから変更しないことをお勧めします。
      ヘッダーではあるもののただ単に連結されるだけなのでページ本文の先頭に表示する定型文を
      記述することも可能です。
      HTMLConverterに定義されている置換タグを記述すると変換時に入力される情報によって置換が行われます。
      定義されている置換タグについては「 命令一覧 」をご覧ください。

   ●HTML終了タグ
      変換を行う際、本文の後に書き出される定型ドキュメントです。
      この項目にはHTMLを直接書きます。
      HTMLの知識がない場合にはデフォルトから変更しないことをお勧めします。
      本文終了後HTMLConverterに定義されている置換タグを記述すると変換時に入力される情報によって置換が行われます。
      定義されている置換タグについては「 命令一覧 」をご覧ください。

   ●置換テーブル
      repX命令で使う置換用の文字列リストです。
      リストから編集したい番号を選んで下のエディットボックスで編集できます。
      setrepX=命令を使うとその時だけ実行中に置換えることができます。
   
   ●自動置換リスト
      要素文字列がこのリストのワードとマッチする場合、自動的に置換後の文字列に置換されます。
      置換後の文字列は無変換です。HTMLタグなどを投入することが出来ます。
      置換後の文字列中に %1 という文字列が含まれる場合は、該当した要素文字列(HTML処理後)に置換されます。
      
      比較方法が完全一致の時は、要素文字列とワードが等しい時に置換されます。
      比較方法が検索の時は、要素文字列がワードを含む時に置換されます。
      比較方法が独自形式正規表現の時は、ワードをパターン、置換後を置換ワードとして処理します。
      ただし、正規表現オプションは使用できません。
      正規表現を指定した場合は、置換範囲はマッチした範囲のみになります。
      
      また、正規表現でマッチングする文字列は、既にHTML処理が行われた状態になっています。
      <>などHTMLエスケープがかかる文字は&lt;&gt;等エスケープ後の文字でないとマッチしませんので注意してください。
      
      複数の要素にマッチした場合、完全一致と検索はどれか一つ、正規表現は連鎖適用されます。
      処理順序は内部的な配置によるため、どの順番で適用されるかは決定できません。
      それぞれが他に影響しないように注意してください。
      また、完全一致が最優先、ついで検索が処理され、最後に正規表現が処理されます。
      
      <a href=???>で挟んで自動リンクにしたり、<img src=???>で画像に置換したり、
      <b><i>等で挟んで書体変更するなり、長い定型文を短縮ワードにしたり、使い方はイロイロです。
      
      ただし、タグ重複チェックなどは行われませんので、範囲タグを用いる場合は注意してください。
   
   ●分割キー
      行中のテキストはこの分割キーを区切りとして分割されます。
      分割した文字列は「要素文字列」と呼びます。
      setsplit命令で実行中に変更できます。
   
   ●接合キー
      分割した要素文字列はHTMLに出力する際、この接合キーを使って結合されます。
      普段は分割キーと接合キーを同じにしておくと扱いやすいです。
      setjoin命令で実行中に変更できます。
   
   ●tab->space初期値
      タブ文字をスペースに変換する時の文字数です。
      tabcnt=命令で実行中に変更できます。
   
   ●ソース行数出力
      C/C++ソース色変えモード時に行数を出力する場合はチェックします。
      srclineoutおよびnosrclineout命令で実行中に変更できます。
   
   ●ソース色分け
      C/C++ソース色変えモード時の配色の設定です。
      指定方法は16進法2桁のRGB指定(HTMLの"#000000"と同じ方法)です。
      各ブロックの右に表示されるブロックはプレビューです。
   
   ●OK
      現在の設定を標準設定として保存し、設定を終了します。
      (HTMLConverter.exeと同じフォルダにHTMLConverter.iniとして保存します)
   
   ●キャンセル
      現在の設定を標準設定として使用せず、設定を終了します。
   
   ●適用
      現在の設定を標準設定として保存します。
      (HTMLConverter.exeと同じフォルダにHTMLConverter.iniとして保存します)



   本文中にも命令コードを埋め込むことで、HTMLの直接記述を支援します。
   行頭に|がある行は命令行として扱われます。
   命令は2個目の|が出現するまでで、その後は普通にテキストを書けます。
   範囲タグになる命令の場合は、その行のテキストのみに影響を与えます。
   例えば、

|b|太字にする

   とテキストに記述すると、

太字にする

   のように変換されます。
   また、,で複数指定することができます。
   例えば、

|b,big,i|太字で大文字で斜体にする

   とテキストに記述すると、

太字で大文字で斜体にする

   のように変換されます。

   一部の命令は追加情報を必要とします。
   例えば、

|color=green|文字色を緑に

   とテキストに記述すると、

文字色を緑に

   のように変換されます。
   =から次の,または|が見つかるまでが追加情報になります。

   また、分割キーを使って分割された要素文字列は、
   それぞれ要素番号を一番左を0として右に向かって与えられます。
   
   命令名の直前に半角数字で要素番号を記述すると指定した要素文字列だけに影響を与えます。
   また、 0-2 のように - で範囲指定、 0.2 で0と2といったような指定ができます。

   一例:(分割キーはスペース1個)
|3color=blue,3b|0 1 2 3 4 5 6 7 8 9
   と記述すると
0 1 2 3 4 5 6 7 8 9
   となります。

|3-5color=blue,3-5b|0 1 2 3 4 5 6 7 8 9
   と記述すると
0 1 2 3 4 5 6 7 8 9
   となります。

|0.3-5.7color=blue,0.3-5.7b|0 1 2 3 4 5 6 7 8 9
   と記述すると
0 1 2 3 4 5 6 7 8 9
   となります。
   
   一部の命令は単独でしか使用できず、他と組み合わせられないものがあります。
   詳しくは「 命令一覧 」をご覧ください。
   ちなみに上の行は変換前、

|1link=#05|   詳しくは「 命令一覧 」をご覧ください。
   と記述されています。


05.命令一覧

   HTMLConverterで利用可能な命令の一覧です。
   記述方法は 命令の記述方法 を参照してください。

   命令の最後が=になっている場合は拡張情報が必要です。
   空欄にすると正しくないタグが生成されてしまいますのでご注意ください。
   記述するべき拡張情報にはHTMLの知識が必要な場合もあります。

   命令は全て小文字です。
   大文字のXは半角数字を使用します。
   また、「行データ」とは命令記述終了後の文字列のことです。
   
   ●HTMLConverter定義 置換タグ
      これらは、HTML先頭タグ、HTML終了タグで使用可能です。
      置換されなかった場合は消去されます。(exrepXのXは0〜9のみ)
置換タグ効果
<title_rep>置換命令「title」で最後に設定されたtitleタグに置換されます。
<exrepX>置換命令「exrepsX,exrepeX」で最初に設定された文字列に置換されます。
<nowdate_rep>変換した日付に置換されます。
<nowtime_rep>変換した時刻に置換されます。
<filedate_rep>目標を更新した日付に置換されます。
<filetime_rep>目標を更新した時刻に置換されます。

   ●排他命令
      これらの命令は、他の命令とは同時に指定できません。
      行データの分割は行われません。
      また、これらの命令が使用された行のデータは、通常の評価をしません。
      HTMLを出力しない命令の場合は、出力には何も出ません。
命令効果
table=テーブルモードの開始。拡張情報はtableタグの引数に、行データはタブ区切りで見出しに使用します。
endtableテーブルモードの終了。
cppsrcC/C++ソース色変えモードの開始。多重できません。
endcppsrcC/C++ソース色変えモードの終了。
base自動的に指定される命令文字列(単独、行命令指定)を設定します。設定値は行データ。
ここで指定した命令文字列は各行の先頭に書いたのと同義です。
解除するには空文字列を再設定してください。
inihciフォルダにある設定ファイルを読み込みます。
ファイル名は行データ。
ファイル名の拡張子は必要ありません。
設定ファイルに記述されている内容をこれ以降の変換用に読み込みます。
HTML先頭タグなどは最後に読み込んだ設定ファイルのものが使われます。
titleヘッダーの<title_rep>にページタイトルとして置換される名前を設定します。名前は行データ。
exrepsXヘッダーの<exrepX>を置換します。置換文字列は行データ。
exrepeX終了タグの<exrepX>を置換します。置換文字列は行データ。
setsplit分割キーを再設定します。新しい分割キーは行データ。
setjoin接合キーを再設定します。新しい接合キーは行データ。
/*スキップの開始。*/命令が出現するまで他の命令や文字列は無視されます。
*/スキップの終了。

   ●単独命令
      これらの命令は、同じ要素に対しても複数指定できます。
      要素番号を指定しない場合は行頭(0)を指定したものとして処理します。
命令効果
tabcnt=タブ文字をスペースに変換する時の文字数を設定します。拡張情報は半角数字でスペース数。
hr<hr>(罫線)になります。
hr=<hr>(罫線)の引数を拡張情報に直接指定します。
img=<img>(画像)になります。拡張情報はsrc要素に指定する画像URLです。
alt=<img>(画像)になります。拡張情報はalt要素に指定する画像解説です。img=命令がない場合は無視します。
br<br>(改行)になります。
-先行配置単発タグ。=はついていませんが、拡張情報は配置したいタグです。<>は自動付与します。
+通常配置単発タグ。=はついていませんが、拡張情報は配置したいタグです。<>は自動付与します。
/-または+命令で配置した単発タグの終了。=はついていませんが、拡張情報は終了したいタグです。</ >は自動付与します。
repX置換テーブルの指定番号の文字列を配置します。
また、実行時自動設定される置換テーブルとして以下の番号も指定できます。
100=ファイルの更新年月日
101=ファイルの更新時刻
102=実行時の年月日
103=実行時の時刻
104=変換ファイル名
setrepX=置換テーブルの指定番号の文字列を設定します。拡張情報は設定する文字列です。
include=指定ファイルを展開します。拡張情報は変換中ファイルからの相対パスファイル名です。
indent=指定数のスペースを配置します。拡張情報は半角数字でスペース数。1-128の範囲。
next現在の行と次の行を結合します。
prev前の行と現在の行を結合します。
insnextとprevの両指定。
convHTML変換モードをONにします。
noconvHTML変換モードをOFFにします。
autobr自動改行モード(改行時に<br>タグまたは<tr>タグを埋め込む)をONにします。
noautobr自動改行モード(改行時に<br>タグまたは<tr>タグを埋め込む)をOFFにします。
startHTML変換モードと自動改行モードをONにします。
stopHTML変換モードをOFF、自動改行モードをONにします。
nobrstartHTML変換モードをON、自動改行モードをOFFにします。
nobrstopHTML変換モードと自動改行モードをOFFにします。
srclineoutC/C++ソース色変えモードで行番号出力をONにします。
nosrclineoutC/C++ソース色変えモードで行番号出力をOFFにします。

      ●モードについて
         HTMLConverterは処理中、いくつかの変換モードを切り替えることができます。
         切り替えられるモードは以下の通りです。
         これらは一度変更すると再変更するまで効果が持続します。
         また、HTML変換と自動改行は最初ONになっています。
モード名ON時効果ONにする命令OFFにする命令
HTML変換要素文字列をHTMLでそのまま表示できるようにエスケープします。conv,start,nobrstartnoconv,stop,nobrstop
自動改行改行時に<br>タグまたは<tr>(テーブルモード時)タグを付与します。autobr,start,stopnoautobr,nobrstart,nobrstop
テーブル分割キーをタブ文字(\t)、接合キーを<td>タグに一時的に設定します。
自動改行モード時にも<tr>タグを付与するようになります。
複数回ONにすると累積され、テーブルの中にテーブルが作れます。
累積を全て解除してOFFになると分割キーと接合キーは復元されます。
table=endtable
C/C++ソース色変えONになった区間をC/C++ソースとして色変えを行います。
ONになっている間、endcppsrc命令以外の命令を無視します。
配色は設定ファイルで設定してください。
cppsrcendcppsrc

   ●継続命令
      これらの命令は、同じ要素に対してそれぞれ1回だけ指定できます。
      命令中の終了タグが必要なタグは適切な位置で自動的に終了タグを出力します。
      要素番号を指定しない場合は行全体を指定したものとして処理します。
命令効果
//該当要素を無視します。
b<b>(太字)になります。
i<i>(斜体)になります。
tt<tt>(等幅)になります。
pre<pre>(整形済み)になります。
big<big>(大字)になります。
bigXX個の<big>(大字)になります。
small<small>(小字)になります。
smallXX個の<small>(小字)になります。
center<center>(中央揃え)になります。
hX<h1〜h6>タグになります。Xは番号。この命令はnextを暗黙に指定します。
font=<font>(書体指定)の引数を拡張情報に直接指定します。
color=<font>(書体指定)になります。拡張情報はcolor要素に指定する色指定(色名 or カラーコード)です。
拡張情報の1文字目が " で無い場合は、自動的に""で拡張情報を囲みます。
size=<font>(書体指定)になります。拡張情報はsize要素に指定する文字サイズです。
拡張情報の1文字目が " で無い場合は、自動的に""で拡張情報を囲みます。
a=<a>(リンク)の引数を拡張情報に直接指定します。
link=<a>(リンク)になります。拡張情報はhref要素に指定するリンク先URLです。
拡張情報の1文字目が " で無い場合は、自動的に""で拡張情報を囲みます。
target=<a>(リンク)になります。拡張情報はtarget要素に指定するフレーム名です。
拡張情報の1文字目が " で無い場合は、自動的に""で拡張情報を囲みます。
name=<a>(リンク)になります。拡張情報はname要素に指定する名前です。
拡張情報の1文字目が " で無い場合は、自動的に""で拡張情報を囲みます。
span=<span>の引数を拡張情報に直接指定します。
plain該当要素はHTML変換を強制無効。
lconv該当要素はHTML変換を強制有効。


6.HTMLcreaterとの相違点、改善点
   この節では、HTMLConverterの前身であるHTMLcreaterとの差について書きます。
   
   HTMLConverterは拡張の限界に来たHTMLcreaterのソースを全部捨てて新しく根本から書き直されたプログラムです。
   HTMLcreaterで使用できていた変換命令付きファイルの記述をそのまま利用できるよう、
   できる限り記法を維持しましたが、一部処理に相違が生まれています。
   
   ●継続命令(行命令)を連続して使用した場合の出力
      HTMLcreaterでは同じ継続命令を連続して使用しても、1行毎に終了タグが出力されていました。
      HTMLConverterでは同じ継続命令が連続して使用された場合、終了タグを出力する数を最小にします。
      この結果、ブラウザで表示した時に行間が変化することがあります。
   
   ●動作変更命令と連結制御命令
      HTMLcreaterとHTMLConverterでは、動作変更命令と連結制御命令を重ねた時の処理が微妙に異なります。
      新版の方が自然な解釈だと、思うのですが・・・
   
   ●brとautobrとnobrとnoautobr命令
      HTMLcreaterの時の「br」「nobr」命令はそれぞれ「autobr」「noautobr」に改名されました。
      また、「br」命令は新しく「改行1個」になる命令になりました。
   
   ●設定画面とini命令の変更
      設定ファイルの別ファイル保存や設定ファイルを実行時に指定するini命令は、
      実のところHTMLcreaterの設計時には想定されていませんでした。
      HTMLcreaterはもともと拡張能力の乏しい構造だったため、これらの機能をうまく取り込むことが出来ず、
      使い勝手のいいものとはいえない形で無理やり実装されていました。
      HTMLConverterではこれらを設計段階から取り込むことで、使い勝手が向上しました。
      具体的には・・・
      ●従来は主設定ファイルに指定された「カレントディレクトリ情報」を
         使用してini命令でのファイル位置を決定していました。
         しかしこの情報がずれると非常にややこしいことになるという問題がありました。
         今回は位置をHCIフォルダに固定することにより、この情報を撤廃しました。
      ●従来はHTML開始タグなどの項目は開始直後にファイルに書き込まれていたため、
         後から設定ファイルを再ロードしても反映することが出来ませんでした。
         (これが1行目から記述しなければいけなかった理由です)
         今回はそれぞれを独立して保持するようにしたため、
         HTML開始タグなどの項目をファイルに書き込むのを最後まで引き伸ばせるようになりました。
         これにより実行中に何度も設定ファイルを読み込むような方法に対応できるようになりました。
   
   ●ヘッダー置換命令の制限緩和
      従来の「ini」「title」「exrepsX」「exrepeX」はファイルの先頭に記述されている必要がありました。
      今回はこれらは排他命令となり、ファイル中のどこの1行にしても処理できるようになりました。
      ただし、「exrepsX」「exrepeX」は実行後に「ini」命令を使うと解除されてしまいます。
   
   ●置換命令の強化
      従来は10個、各500バイトまでだった「repX」「setrepX=」で使う置換テーブルはパワーアップして、
      100個、各30000バイトまでになりました。
      また、ファイルの更新時刻、現在時刻、変換中のファイル名などが100〜104番に追加されました。
      100〜104番は「repX」命令で参照できますが、「setrepX=」命令での設定はできません。
      
   ●table=命令の重複
      従来は「table=」命令を複数回重ねると正常に処理できませんでした。
      今回は多重数をカウントし、重複して「table=」命令を使用できるようになりました。
   
   ●要素分割と自動置換
      分割キーで分割した後の文字列と設定ファイルに登録された自動置換キーが一致した場合、
      自動的に登録された文字列に置換される新機能です。
      
   ●C/C++言語色変えモードの追加
      当サイトのプログラミング講座C/C++編のソース色変え用のプログラムが統合された新機能です。
      実行結果はプログラミング講座C/C++編の「条件分岐「if / else」(前編)(C/C++)」あたり以降をご覧ください。
      
   ●HTML構造維持処理の強化
      従来は貧弱で、ないも同然だったHTML構造維持処理が、大幅に強化されました。
      これにより複雑な定義でもある程度、対応できるようになりました。
      HTML構造維持処理とは、「後から定義したものを先に閉じる」というHTMLの階層構造を維持する処理です。
      IEなどは階層構造を無視した記述をしても、普通に表示されてしまうのであまり目立ちはしないのですが・・・
      
      例としては、以下のような記述があります。
      ↓命令行(1〜4を太字、2〜6を大字、3〜5を斜体、1〜8を青字、3〜7を緑字にする(重なった場合後発優先))
      |1-4b,2-6big,3-5i,1-8color=blue,3-7color=green|0 1 2 3 4 5 6 7 8 9
      ↓ブラウザでの見え方
2 3 4 5 6 7 8 9
      ↓HTMLソース(長いので3行に分割しました)
      0&nbsp;<b><font color=blue>1&nbsp;<big>2</big></font>&nbsp;<i><big><font color=green>3&nbsp;4
      </font></big></i></b>&nbsp;<i><big><font color=green>5</font></big></i>&nbsp;<big><font color=green>6
      </font></big>&nbsp;<font color=green>7</font>&nbsp;<font color=blue>8</font>&nbsp;9<br>

      
      ・・・とこのようになんかものすごい事になってますが、
      2の直後にくる文字色変更のために、その後に定義された<big>が一度解除され、再定義されています。
      4の直後では一番最初に定義された<b>を解除するために、<i><big><font>が再定義されています。
      5の直後ではこの時点で一番最初に定義された<i>を解除するために、<big><font>が再定義されています。
      6の直後ではまたこの時点で一番最初に定義された<big>を解除するために、<font>が再定義されています。
      7の直後は普通に文字色変更のために<font>を解除しています。
      ・・・といった感じです。
      こんな定義使うことはそうないとは思いますが、
      ここまで来るとタグ挿入型のエディタやテキストエディタではなかなか記述するのは大変だと思うので、
      そういう時は普段そういうエディタを使っている人もコレを持ち出してくれるといいなぁと思います。
   
   ●color=とsize=命令の仕様変更(Ver1.01〜)
      color=とsize=命令は、先頭文字が " でなかった場合に自動的に "" で要素を囲むようになりました。
      従来は |color=#888888| とすると <font color=#888888> と出力されていましたが、
      Ver1.01以降では <font color="#888888"> と出力されるようになりました。

   ●link=,target=,name=命令の仕様変更(Ver1.01〜)
      link=,target=,name=の各命令は従来は無条件に "" で要素を囲んでいましたが、
      先頭文字が " でなかった場合のみ、自動的に "" で要素を囲むようになりました。

   ●base命令の追加
      設定してから再設定するまでの全ての行に割り当てられる命令を設定する新機能です。
      |base|tt
      のように設定すると再設定するまで全ての行に「tt」(等幅)命令を指定したことになります。
      また、この方法で設定すると通常の命令同様、HTML構造維持処理の管轄に入ります。
      必要なら一度終了した後、再定義するなどの動作も行います。
      特に、テーブルの中など、再定義が多発する面倒な場所で最も効果を発揮します。
      (まさにすぐ下の全部等幅になってるテーブルは開始直後で |base|tt を使い、終点で |base| を使用して作っています)
   
   ●追加された新命令
      HTMLConverterになる際、いくつか命令が新しく追加されました。
      追加された命令は以下の通りです。
命令効果分類
cppsrcC/C++ソース色変えモードの開始。多重できません。排他命令
endcppsrcC/C++ソース色変えモードの終了。排他命令
base自動的に指定される命令文字列(単独、行命令指定)を設定します。設定値は行データ。
ここで指定した命令文字列は各行の先頭に書いたのと同義です。
解除するには空文字列を再設定してください。
排他命令
setsplit分割キーを再設定します。新しい分割キーは行データ。排他命令
setjoin接合キーを再設定します。新しい接合キーは行データ。排他命令
/*スキップの開始。*/命令が出現するまで他の命令や文字列は無視されます。排他命令
*/スキップの終了。排他命令
br<br>(改行)になります。単独命令
srclineoutC/C++ソース色変えモードで行番号出力をONにします。単独命令
nosrclineoutC/C++ソース色変えモードで行番号出力をOFFにします。単独命令
center<center>(中央揃え)になります。継続命令
hX<h1〜h6>タグになります。Xは番号。この命令はnextを暗黙に指定します。(1.02以上)継続命令
      

7.正規表現について

   HTMLConverterで使用される正規表現は、独自の指定方法を持ちます。
   Perl互換の指定方法も使用できるようにしたかったのですが、現状うまく実装できていないので・・・
   (これは当サイト配布のSOLDOUTItemEditorの正規表現と同じです)
   
   パターン指定の一例

   A.「文字列 abc にマッチ」= abc
   B.「文字列 abc か def にマッチ」= %[%(abc%)%(def%)%]
   C.「数字が続く限りマッチ」= %/d
   D.「1〜3個のアルファベット(最長)にマッチ」= %1,3l
   E.「アルファベットが続く限りかつ文字列 012 が続かない」= %*l%!(012%)


   比較対象に zxcabc0123def という文字列を使い、オプションを使わないと、
   上記は以下のように処理されます。(^があるところがマッチ範囲)

   A. zxcabc0123def
         ^^^
   B. zxcabc0123def
         ^^^
   C. zxcabc0123def
            ^^^^
   D. zxcabc0123def
      ^^^
   E. zxcabc0123def
      ^^^^^


   以下に独自形式のメモを記しておきます。(使う人がいるのかという疑問もありますが^^;)
   上の例と照らし合わせて見ていただければ^^;

特殊文字は必ず%から始まる。指定パターンは以下の通り

基本形:%[判定指定][最低数(v,V,u,U,t,hのみ番号)][.最低数(v,V,u,U,t,hのみ)][,最大数]指定文字

   判定指定: 
   +:最短マッチにする。 
   *:最長マッチにする。 
   !:否定にマッチする。(マッチした場合は長さ0) 
   /:純粋最長マッチにする。(その先のパターンにマッチするかチェックしない) 
   最低数:最低この数がマッチしないとマッチしない 
   最高数:この数までマッチした場合は検索を終了する。 
   番号:抽出オブジェクトがある場合、その要素番号。 
   繰り返しが指定されている場合、一回ごとにリセットされる。 

指定文字:先頭の%は最初の%のことです(10進数字は%%dじゃなくて%dです)       
1.固定指定。数量子は使用不可。 
   %%:%文字 
2.グループ指定。 
   %(〜%):指定した範囲をまとめる。)には数量子指定不可。 
   %{〜%}:指定した範囲がマッチした場合、抽出する。}には数量子指定不可。 
   %[〜%]:指定した範囲のオブジェクトのうち、いずれかに該当する場合にマッチする。 
          ]には数量子指定不可。 
3.通常特殊文字 
   %d:10進数字(0-9)に該当。 
   %D:10進数字(0-9)以外に該当。 
   %x:16進数字(0-9a-f)に該当。 
   %X:16進数字(0-9A-F)に該当。 
   %n:16進数字(0-9a-fA-F)に該当。 
   %N:16進数字(0-9a-fA-F)以外に該当。 
   %a:小文字アルファベット(a-z)に該当。 
   %A:大文字アルファベット(A-Z)に該当。 
   %w:ホワイトスペース(\t )に該当。 
   %W:ホワイトスペースと改行(\t \r\n)に該当。 
   %i:ホワイトスペース(\t )以外に該当。 
   %I:ホワイトスペースと改行(\t \r\n)以外に該当。 
   %l:全てのアルファベット(a-zA-Z)に該当。 
   %L:全てのアルファベットと数字(a-zA-Z0-9)に該当。 
   %b:全てのアルファベット(a-zA-Z)以外に該当。 
   %B:全てのアルファベットと数字(a-zA-Z0-9)以外に該当。 
   %y:1バイト記号(!"#$%&'()=~|`{+*}<>?_-^\@[;:],./)に該当。 
   %Y:1バイト記号(!"#$%&'()=~|`{+*}<>?_-^\@[;:],./)以外に該当。 
   %k:全ての1バイト可視文字(a-zA-Z0-9!"#$%&'()=~|`{+*}<>?_-^\@[;:],./)に該当。 
   %K:全ての可視文字(%kに2バイト文字を加えたもの)に該当。 
   %c:コントロールキャラクタ(0x01-0x1f,0x7f)に該当。 
   %C:改行以外の(半、全とも)1文字に該当。 
   %s:プログラム識別子(a-zA-Z0-9_)に該当。 
   %S:プログラム識別子(a-zA-Z0-9_)以外に該当。 
   %j:全ての文字(半、全とも)1文字に該当。 
   %J:全ての全角1文字に該当。 
   %?:全ての半角1文字に該当。 
   %g:行頭に該当。 
   %G:行末に該当。 
   %^:文字列の先頭に該当。 
   %$:文字列の最後に該当。 
   %z:次のオブジェクトに該当。(%*zaの場合、aの最長マッチになる)
4.参照文字 
   %v:抽出済み配列に該当。番号指定は最初が0で後に向かう。番号指定がない場合は0とみなす。 
   %V:抽出済み配列に該当。番号指定は最後が0で前に向かう。番号指定がない場合は0とみなす。 
5.範囲指定 
   %-:この後に続く2文字の範囲に該当する。 
         2文字には特殊文字や全角文字は使えない。 
         オブジェクトの範囲を取るわけではないので注意。 
6.マッチング制御 
   %p:これ以降の文字列はマッチ範囲から除外される。(ただしマッチしなければマッチは失敗する) 
   %P:%pに加え、この直後で文字列が終了した場合もマッチに成功する。 
   %e:抽出時のみ、抽出される範囲をここで終了する。 
       その後もマッチは続行、%pと組み合わせた場合は抽出範囲はこっちが優先 
7.抽出済み配列操作 
   %t:最後に抽出した文字列を番号指定値に代入する。番号指定がない場合は0とみなす。 
       番号指定値が抽出した総数以上の場合は指定値まで配列が増え、隙間は空文字列で埋められる。 
   %T:配列の最後に空文字列を追加する。 
   %h:配列の番号指定値の要素を削除する。番号指定がない場合は0とみなす。 
   %H:配列の最後の要素を削除する。 




8.更新履歴

ver1.03(07/09/11)
[修正]「span=」命令が正しく動作しなかった問題を修正
v1.02(06/08/25)
[追加]「hX」命令を追加
v1.01(06/06/16)
[変更]color=,size=命令の""囲み制御を変更
[変更]link=,target=,name=命令の""囲み制御を変更
v1.00(06/05/26)
初版公開。



HTMLConverter version 1.03 解説 終わり
開発元 fuku研究所