Basic Usage

K2HR3 テンプレートエンジン

K2HR3システムは、動的なリソース(RESOURCE)を定義するときに利用できる テンプレート(TEMPLATE) 記法を提供します。
このテンプレート(TEMPLATE)で記述された内容は、K2HR3テンプレートエンジン により展開されます。
K2HR3テンプレートエンジンとテンプレート(TEMPLATE)について、以下に説明します。

適用

K2HR3システムでは、リソース(RESOURCE)データとして文字列を設定することができます。
設定されている文字列は、ユーザ(USER)、ロール(ROLE)から読み出しができます。
リソース(RESOURCE)に設定された文字列の読み出しにおいて、本仕様を満たしたテンプレートとして文字列を展開することができます。

概要

K2HR3テンプレートエンジンの基本的な記述方法、仕様について説明します。

テンプレート解析範囲

テンプレートとして読み込む文字列の中に、以下のキーワードで区切られた範囲(以下ステートメント)の文字列をK2HR3テンプレートエンジンが解析、展開します。

{{ .... }}

テンプレートエンジン指定

この機能は現在プレースホルダとして予約されており、固定値(K2HR3テンプレートエンジン)のみサポートしています。

テンプレートエンジンの指定を可能とするステートメントです。
文字列の先頭から開始されている必要があります。
K2HR3テンプレートエンジンを使用する場合には、省略してください。(もしくは例のように記述してください。)

コメント指定

以下の記述のようにしたステートメントは、テンプレートエンジンにより展開された場合、出力(表示)されません。
一般的なコメントとして利用するためのステートメントです。

{{# This is comment strings.... }}

変数表示

以下のように記述することで、テンプレート内で利用している変数(後述)などの値を表示することができます。
表示する変数は、定数を指定することもできます。

{{= 'print static string' }}
{{= true }}
{{= 1000 }}
{{= %variable% }}

エスケープ

テンプレートの解析範囲を指定するために利用されているキーワードをテンプレートとして認識したくない場合があります。
また、文字列(後述)を指定するために利用されているキーワードをテンプレートとして認識したくない場合もあります。
これらのエスケープする方法を以下に示します。

定数

K2HR3テンプレートエンジンのサポートする定数を以下に示します。

数値

K2HR3テンプレートエンジンのサポートする数値の表現には以下のような方法があります。

文字列

ステートメント内に文字列を記述するには、シングルクォートもしくは、ダブルクォートで範囲を指定します。

'This is string in single quote'
"This is string in double quote"

変数

K2HR3テンプレートエンジンはテンプレートを展開するときに、展開する単位で変数を永続的に利用できます。
変数とは、以下に示すいずれかの形式を持っています。

%variable%
%var_array%[0]
%var_object%{'key'}

複数段の配列、オブジェクトはサポートしていません。

変数は、テンプレートの中で自由に定義できます。
または、K2HR3システムに登録されているリソース(RESOURCE)、ロール(ROLE)のYRNパスを指定でき、これらのリソース(RESOURCE)、ロール(ROLE)のデータを展開できます

%yrn:yahoo:yjcore:::resource:k2hr3api_res%

構文

K2HR3テンプレートエンジンで利用できる制御構文を以下に示します。

演算子

利用できる演算子を列挙します。条件演算子は主に制御構文の条件文として利用されます。

注意1

変数、定数は基本的に型(数値、文字列、論理値)を持っています。
2項演算子にて、型の異なる変数、定数を指定した場合には、可能な限り左辺の型に揃えられます。

注意2

演算子の優先順位は、一般的な優先順位に従います。以下のテンプレートを展開した結果は、”20”となります。

{{ %tmp_priority_data00% = 1 + 3 * 2 * 3 + 1 }}
{{= %tmp_priority_data00% }}

サンプル

以下にサンプルのテンプレート文字列(複数行)を示します。

{{#!k2hr3template }}
{{# 上記の行は省略が可能です。}}
テンプレート展開例

1) 変数を使ったループ例
  {{ for %val% = 0 ; %val% < 2 ; ++%val% }}
    - ループ内の展開:現在の変数%val%の値は、{{= %val% }}です。
  {{ done }}

3) 計算
  {{ %val% = 10 + 10 * 9 / 3 }}
  %val% は、40となっているはずです。
 計算結果 = {{= %val% }}

以上、ここまで。

上記のテンプレート文字列をK2HR3テンプレートエンジンにより展開した結果を以下に示します。(改行は見やすく調整してます。)

テンプレート展開例

1) 変数を使ったループ例
    - ループ内の展開:現在の変数%val%の値は、0です。
    - ループ内の展開:現在の変数%val%の値は、1です。

3) 計算
  %val% は、40となっているはずです。
 計算結果 = 40

以上、ここまで。
Basic Usage