社内テンプレート エンジンの次のバージョン用のテンプレート内にテンプレート コードを含めるために使用する適切な文字ペアを探しています。
現在のものは単純な {} を使用していますが、これによりパーサーが非常に複雑になり、テンプレートのリテラル テキストで実際のコード ブロックとランダムな {} 文字を区別できるようになります。
asp.net や php で使用されているようなデュアル char の組み合わせがより良いアプローチだと思いますが、問題は char 文字ペアを使用する必要があるか、または決して使用されず、簡単に記述できる完全な単一 char があるかどうかです。
満たす必要があるいくつかの基準:
- HTMLEncode で変更することはできません。ソースは Web ベースの HTML エディターとプレーン テキスト エリアで編集でき、どのエディターを使用しても同じままである必要があります。
- & chars のようなコード ブロックの内部部分をエンコードした可能性のある HTML エディターで編集した後、正規表現を使用してコード部分をクリーンアップします。
- 英語とスウェーデン語の両方のキーボード レイアウトで非常に書きやすいはずです。
- 非常にまれな組み合わせである必要があります。テンプレートは HTML とテキストを生成し、CSS と Javascript のリテラル テキストを JSON に含めることができるため、非常にまれでない限り、これらと衝突する可能性のある組み合わせはすべて不適切です。これは、JSON で発生する可能性がある {{}} がアウトであることを意味します。
- コード ブロック内のコードには、フィールド名だけでなく、if/while 構造も同様に、スペース、アンダースコア、ドル、およびその他の多くの組み合わせが含まれます。
- パーサーは Antlr で生成されます
できるだけ多くの状況で機能する 1 つまたは複数の組み合わせを見つけるための提案と異議を探しています。さまざまな状況で複数の代替ペアを使用することもできます。