Perl: Javascript :: шаблоны V8 - из perl

Ищем механизм шаблонов, такой как 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.

Вопросы:

  • Кто-нибудь знает что-нибудь подобное? (ничего не нашел в CPAN) ...

РЕДАКТИРОВАТЬ: в 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, а не на "мини-языке"…

8
задан cytinus 27 July 2011 в 21:28
поделиться