Ищем механизм шаблонов, такой как HTML :: Mason (или Mason), поэтому what "компилирует" исходные компоненты в код Perl, но вместо perl-кода будет "компилировать" компоненты в код JavaScript и после запуска / выполнения их с помощью модуля Perl Javascript :: V8.
Мотивация: Ищу решение для безопасный язык шаблонов, который может редактировать пользователей без ущерба для безопасности сервера . JavaScript - это полнофункциональный язык, поэтому его использование, вероятно, лучше / быстрее, чем некоторые «мини-языки», такие как TT или аналогичные. Лучшим для меня было бы расширение (переписывание) Mason для компиляции в Joose / JavaScript вместо Moose / Perl. ;)
И да, хочу сделать это из perl с помощью Javascript :: V8, потому что таким образом можно очень безопасно использовать всю мощь perl через Javascript :: V8 $ context-> bind_function.
Вопросы:
РЕДАКТИРОВАТЬ: в Mason вы можете написать, например,
% #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, а не на "мини-языке"…