inazuma code :概要
inazuma code は、パレット CMS のテンプレートエンジンのために設計されたドメイン固有言語(DSL: Domain-Specific Language)です。
テンプレートエンジンだけでは難しい、複雑なデータの加工や整形処理、関数の定義と実行、動的な値の生成 を行うための構文や機能を備えています。
また、パレット CMS 側から注入される コンテキスト(関数や定数) を利用することで、任意項目の設定情報やレコードの内容などのデータを柔軟に参照できます。
JavaScript に似た直感的な文法を持ちながらも、テンプレートエンジンと密に連携しやすいように最適化されています。
例:
@code
let price = 1200;
let tax = 0.1;
let total = price * (1 + tax);
@endcode
<p>合計金額:{{ total }}円</p>
上記の例では、inazuma code で計算した結果を {{ ... }}
構文を使ってテンプレート内に埋め込んでいます。
このように、inazuma code はテンプレートエンジンをより柔軟で強力にし、ロジックと表示を適切に組み合わせるための基盤となります。
主な特徴
1. 式ベースの設計
inazuma code は 式ベースの言語 です。
すべての構文が値を返すため、関数の戻り値や条件分岐、繰り返し処理の結果など、あらゆる処理の評価結果をそのまま別の式に組み込んだり、直接描画に利用できます。
この特性により、記述を簡潔に保ちながら複雑な処理を組み立てることが可能です。
2. JavaScript ライクな構文
JavaScript に似た文法を採用しているため、既存の Web 開発経験を活かして直感的に利用できます。
条件分岐や繰り返し、関数定義なども馴染みのある書き方で記述できます。
3. 安全なサンドボックス実行環境
各テンプレートは完全に独立したスコープで評価され、他のテンプレートの変数や関数に直接アクセスできません。
また、コンテキストとして渡されていないリソースの参照や、直接的な DB へのアクセス、サーバー上でのコードの実行はできません。
別のテンプレートにコンテキストを共有したい場合は、props
や @import:
/ @export:
を使って明示的に受け渡します。
4. 豊富な組み込み関数
文字列操作、数値計算、配列・オブジェクト処理など、日常的な開発で頻繁に使う機能を標準で搭載しています。
Web サイトや Web アプリケーションの開発で必要となる処理を素早く記述できます。
5. 高い拡張性
実行環境(パレット CMS)側からコンテキスト(関数や定数)を注入することで、文脈に応じて柔軟に利用可能な関数や定数を追加できます。
また、コンテキスト用のプラグインを開発すれば、プロジェクト固有のヘルパー関数や定数をテンプレート内から直接呼び出せるようになります。