Buscando motor de plantillas como HTML :: Mason (o Mason), entonces lo que "compila" los componentes fuente en el código perl, pero en lugar de código perl "compilarán" componentes en código JavaScript y después de ejecutar/ejecutarlos con Javascript :: V8 perl module.Perl: Javascript :: Plantillas V8 - del perl
motivación: Buscando solución para segura lenguaje plantilla, lo que puede editar los usuarios sin comprometer la seguridad del servidor. JavaScript es un lenguaje completo, por lo que su uso es probablemente mejor/más rápido que algunos "mini idiomas" como TT o similar. Lo mejor para mí sería una extensión (reescritura) de Mason para compilar en Joose/JavaScript en lugar de Moose/Perl. ;)
Y sí, quiero hacer esto desde perl con Javascript :: V8 porque de esta manera es posible tener toda la potencia de Perl disponible a través de Javascript :: V8 $ context-> bind_function de una manera muy segura.
Preguntas:
- Alguien sabe algo así? (Encontrado nada en CPAN) ...
EDIT: en Mason se puede escribir por ejemplo
% #perl version
% my(@list) = qw(Jane John Doe);
<ul>
% foreach my $item (@list) {
<li><% uc($item) %></li>
% }
</ul>
sería bueno tener posibilidad de escribir lo anterior en JS, como:
% //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>
La fuente anterior debe ser "compilada" en JavaScript (Joose) y ejecutada con Javascript :: V8. (Como en Mason - la fuente se compila en Perl objeto/alces y ejecutada con Perl) ...
Como se puede ver, el for(var i in list)
está escrito en puro JS, y no en "mini-lenguaje" ...
Dijiste " Javascript es un lenguaje con todas las funciones, por lo que su uso es probablemente mejor/más rápido que algunos 'min i idiomas '". Realmente crees que un mini lenguaje como TT (que es un subconjunto de Perl y se compila en Perl, lo que significa que las plantillas compiladas son solo subrutinas) va a ser más lento que transformar tu plantilla en Javascript, invocando a otro intérprete completamente diferente, enviando datos a ese intérprete, ejecutándolo y luego recogiendo datos de ese intérprete? Eso suena lento como melaza. Si bien creo que este es un proyecto ordenado, no creo que sea tan práctico. – mpeters
Err, ¿por qué no permitirlo con TT? Creo que puedes estar bajo una mala impresión. TT está diseñado para la separación de MVC, no como Embperl o Mason o similar. – ysth
siempre que no tenga habilitado EVAL_PERL, ¿qué posible problema de seguridad ve? Estoy desconcertado. – ysth