HTML :: Mason(またはMason)のようなテンプレートエンジンを探しているので、ソースコンポーネントをperlコードに「コンパイル」しますが、perl-codeの代わりにコンポーネントをJavaScriptコードに「コンパイル」し、Javascript::V8で実行/実行しますperlモジュール。
動機:安全なテンプレート言語の解決策を探しています。サーバーのセキュリティを損なうことなくユーザーを編集できるものです。JavaScriptはフル機能の言語であるため、それを使用することは、TTなどの一部の「ミニ言語」よりもおそらく優れています。私にとって最良の方法は、Moose/PerlではなくJoose/JavaScriptにコンパイルするためのMasonの拡張(書き直し)です。;)
そして、はい、Javascript :: V8を使用してperlからこれを実行したいのです。これは、Javascript :: V8 $context->bind_functionを介してすべてのperlの機能を非常に安全な方法で利用できるためです。
質問:
- 誰か知ってる?(CPANには何も見つかりませんでした)..。
編集:メイソンでは、例えば書くことができます
% #perl version
% my(@list) = qw(Jane John Doe);
<ul>
% foreach my $item (@list) {
<li><% uc($item) %></li>
% }
</ul>
JSで上記のように書く可能性があるといいでしょう:
% //javascript version
% var list = ["Jane", "John", "Doe"];
<ul>
% for(var i in list) {
<li><% perl_uc($list[i]) %></li>
<!-- the "perl_uc" is the real perl uc() what is binded
with Javascript::V8::bind_function(perl_uc => sub { return uc(@_) }
-->
% }
</ul>
上記のソースはJavaScript(Joose)に「コンパイル」され、Javascript::V8で実行される必要があります。(Masonのように-ソースはperl / Mooseオブジェクトにコンパイルされ、perlで実行されます)...
ご覧のとおり、for(var i in list)
は「ミニ言語」ではなく、純粋なJSで記述されています…</ p>