HTML プリプロセッサー用 H言語 コマンド詳細


コマンド

コマンドは、# で始まります。コマンドは以下の通りです。

#include 指定されたファイルを読み込みます。
#define マクロを定義します。
#defineStyle スタイルを簡単に定義します。

オプション変更コマンド

#macroSeparator マクロ引数の区切り文字を変更します。
#macroPrefix マクロの接頭接尾文字を変更します。
#macroNestMax マクロのネストの上限を変更します。
#argumentPrefix 引数置換の接頭接尾文字を変更します。
#tabCount TAB->SPACE 変換の桁数を変更します。
#fileNameCorrection ファイル名補正の方法を指示します。

ブロックコマンド

#defineBlock
#endBlock
マクロ定義ブロック
#text
#endtext
プレーンテキストブロック
#HTML
#endHTML
HTML ブロック
#para
#endpara
複数段落ブロック
#tr
#endtr
テーブルの行定義ブロック
#call
#endcall
ブロックの各行を引数として指定マクロを呼び出します。

制御コマンド

#if
#elseif
#else
#endif
条件によってコンパイルするブロックを切り替えます。
#repeat
#endrepeat
ブロックを指定回数繰り返します。
#irp
#endirp
引数リストを1つずつ指定マクロに代入してブロックをコンパイルします。
#irpc
#endirpc
指定文字列を1文字ずつマクロに代入してブロックをコンパイルします。

マクロ変更コマンド

#eval 式を計算しその値をマクロに登録します。
#set 文字列をマクロに登録します。
#insert 引数リストに文字列を挿入します。
#delete 引数リストから引数を削除します。
#date 現在の日付および時刻を指定書式でマクロに登録します。
#fileName ファイル名前の正当性をチェックしマクロに登録します。
#fileDate ファイルのタイムスタンプを指定書式でマクロに登録します。
#fileSize ファイルのサイズをマクロに登録します。
#toupper 文字列をすべて大文字に変換してマクロに登録します。
#tolower 文字列をすべて小文字に変換してマクロに登録します。
#substr 文字列中の部分文字列をマクロに登録します。
#exist ファイルが存在するか調べ結果をマクロに登録します。

これらのコマンドはソースファイル中のどこにでも置くことができます。


マクロ引数の区切り文字を変更

 #macroSeparator 半角1文字

マクロの引数を区切る文字を変更します。指定できるのは半角1文字だけです。

デフォルトは , です。


マクロの接頭接尾文字を変更

 #macroPrefix 半角1文字

マクロの前後を括る文字を変更します。指定できるのは文字コード 0x40 未満の半角1文字です。指定できる文字を以下に示します。

!"#$%&'()*+,-./:;<=>?

デフォルトは $ です。


マクロのネストの上限を変更

 #macroNestMax 数値

マクロのネストの上限を変更します。

デフォルトは10です。


引数置換の接頭接尾文字を変更

 #argumentPrefix 半角1文字

置換文字列名の前後を括る文字を変更します。指定できるのは文字コード 0x40 未満の半角1文字です。指定できる文字を以下に示します。

!"#$%&'()*+,-./:;<=>?

デフォルトは % です。


TAB->SPACE 変換の桁数を変更

 #tabCount タブ桁数

TAB文字をスペースに変換する場合の桁数を指定します。この数字にマイナスの値を指定するとTAB文字は変換されずそのまま出力されます。

デフォルトは -1 です。


ファイル名補正の方法を指示します。

	#fileNameCorrection NON | OUTPUT | FILE

$a, $img, $fileName マクロ および #fileName コマンドを使用したときのファイル名の補正方法を指示します。デフォルトは NON です。

NON を指定すると、ファイル名補正をしません。

OUTPUT を指定すると、出力される .HTML ファイルに記述されるファイル名を既存のものにあわせます。この機能を利用すれば、ファイル名の大文字小文字を気にする必要がなくなります。

FILE を指定すると、ファイルおよびフォルダー名を、.HTS ファイルに記述されているファイルにリネームします。このモードを日常的にお使いになることはお勧めできません。ファイルコピー時にファイル名が変換されてしまったようなときに使ってください。


マクロ定義ブロック

 #defineBlock マクロ名
  H言語
 #endBlock

ブロックマクロを定義します。

定義したマクロ名は、本文中にマクロ名を$で括って記述することにより変換されます。マクロ内呼び出し内や引数内ではマクロを記述することができません。


プレーンテキストブロック

 #text [PRE タグの属性]
 #endtext

このブロック内の文字列は、<pre></pre>で括られます。また、<は&lt;に、>は&gt;、&は&amp;、"は&quot;に変換されます。


HTML ブロック

 #HTML
 #endHTML

このブロック内の文字列は、TAB->SPACE変換, 行結合を除いて一切の変換を行わずに出力されます。


複数段落ブロック

 #para 段落に付加するタグ
 #endpara

複数行にわたる段落を処理します。

各行には、ブロック開始時に指定したタグが付加されます。また、空行は読み飛ばされます。

	例:
	#para <p class=nb11i>
		サンプル1行目

		サンプル3行目
	#endpara

		↓

	<p class=nb11i>
	  サンプル1行目
	</p>
	<p class=nb11i>
	  サンプル2行目
	</p>

テーブルの行定義

 #tr <tr>タグの属性, 1列目の<td>タグの属性, 2列目の<td>タグの属性, …
  各セルのタグ, 1列目の内容, 2列目の内容, …
  各セルのタグ, 1列目の内容, 2列目の内容, …
   :
 #endtr

テーブルを簡単に定義します。

まず, #tr に属性を指定します。この属性が各行のセルのタグに付加されます。

各行は、セルのタグの中身を記述し、その後にセルの内容を記述します。

	例:
  <table width="100%" border=1 cellpadding=4 summary="t">
    #tr , class=nt, class=n, class=n, class=n, class=n, class=n
      th abbr="contents", 枚数          ,  1000,  2000,  3000,  4000,  5000
      td                  用紙代        , \1000, \2000, \3000, \4000, \5000
      td                  第1地帯送料   ,  \770,  \930, \1010, \1170, \1250
      td                  代引き手数料  ,  \250,  \250,  \250,  \250,  \250
      td                  ゆうパック箱代,  \100,  \140,  \140,  \200,  \200
      td                  為替振出し料金,  \100,  \100,  \100,  \100,  \100
      td                  計            , \2220, \3420, \4500, \5720, \6800
    #endtr
  </table>

条件コンパイル

 #if "文字列" 演算子 "文字列"
  評価の結果が真の時にコンパイルされるブロック
 #elseif "文字列" 演算子 "文字列"
  評価の結果が真の時にコンパイルされるブロック
 #else
  評価の結果が真の時にコンパイルされるブロック
 #endif

文字列は "" で括らなければなりません。

指定できる演算子は、== != < <= >= > の6種類です。

比較は文字列として行いますので、"123" と "56" は、"56" の方が大きくなります。

各行には、ブロック開始時に指定したタグが付加されます。また、空行は読み飛ばされます。


繰り返し

 #repeat 繰り返し回数
 #endrepeat

ブロックをして回数コンパイルします。


引数指定繰り返し

 #irp 引数を代入する引数またはマクロ名, 引数, 引数, …
 #endirp

第2引数以降で指定された引数を左から順に1つずつ第1引数で指定した番号の引数またはマクロに登録してブロックをコンパイルします。

引数が空文字列の場合はスキップします。

	例:
	#irp 0, a.gif, b.gif, c.jpg
	<$img %0%$>
	#endirp

	  ↓

	<img a.gif width=128 height=96 alt="a.gif">
	<img b.gif width=144 height=32 alt="b.gif">
	<img c.jpg width=480 height=40 alt="c.jpg">

文字列繰り返し

 #irpc 引数を代入する引数またはマクロ名, 文字列
 #endirpc

第2引数で指定された文字列を左から1文字ずつ第1引数で指定した番号の引数またはマクロに登録してブロックをコンパイルします。

	例:
	#irpc 0, abc
	<$img %0%.gif$>
	#endirp

	  ↓

	<img a.gif width=128 height=96 alt="a.gif">
	<img b.gif width=144 height=32 alt="b.gif">
	<img c.gif width=480 height=40 alt="c.gif">

マクロ呼び出し

 #call 呼び出すマクロ名
  第1引数
  第2引数
   :
 #endcall

ブロック内の各行を引数にしてマクロを呼び出します。


整数式を計算

 #eval 引数番号またはマクロ名 = 式 [,書式]

指定された式を計算した結果を指定された書式で指定マクロに登録します。

省略時の書式は %i です。扱うとこができるのは整数のみです。


 #set 引数番号またはマクロ名 = 文字列

マクロ登録


 #insert 引数番号 [= 文字列]

引数挿入

指定された番号以降の引数を1つずつずらし、指定された番号の

位置に指定された文字列を設定します。


 #delete 引数番号 [,削除する数] 

引数削除

指定された番号から指定された数分の引数を削除し以降の引数を詰めます。


現在日付

 #date  引数番号またはマクロ名[ = 書式]

現在の日付および時刻を指定された書式で指定されたマクロに登録します。

書式文字列は、C言語の strftime() と同じです。


ファイル名

	#fileName 引数番号またはマクロ名 = ファイル名

指定されたファイル名の正当性をチェックしてマクロに登録します。

ファイル名は、ローカルファイルを URL形式 (\ ではなく / で区切る)で記述してください。

##fileNameCorrection に OUTPUT を指定することによって正確な名前を取得することができます。


ファイル日付

	#fileDate 引数番号またはマクロ名 = [ファイル名], [書式]

指定されたファイルのタイムスタンプを指定された書式でマクロに登録します。

ファイル名を省略したときには、コマンドラインで指定したソースファイルの日付を取得します。

書式文字列は、C言語の strftime() と同じです。


 #fileSize 引数番号またはマクロ名 = ファイル名

ファイルサイズ

指定されたファイルのファイルサイズを表す文字列を指定されたマクロに登録します。


 #exist 引数番号またはマクロ名 = ファイル名

ファイル存在の確認

指定されたファイルが存在するときに、"TRUE" 存在しないときに "FALSE" を指定マクロに設定します。


 #toupper 引数番号またはマクロ名 = 文字列

大文字に変換


 #tolower 引数番号またはマクロ名 = 文字列

小文字に変換


 #substr 引数番号またはマクロ名 = 文字列, 先頭位置(0〜), 文字数

部分文字列の取得



Homeへ 間違い、ウソ、わかりにくい所など、お気づきの点がございましたら、kiya@asahi.email.ne.jp までE-Mailをいただければと思います。 FreeSoftへ