メインコンテンツまでスキップ

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)側からコンテキスト(関数や定数)を注入することで、文脈に応じて柔軟に利用可能な関数や定数を追加できます。

また、コンテキスト用のプラグインを開発すれば、プロジェクト固有のヘルパー関数や定数をテンプレート内から直接呼び出せるようになります。