Perl: Javascript :: V8-Vorlagen - aus der Perl

8

Sucht nach Template-Engine wie HTML :: Mason (oder Mason), also "kompiliert" Source-Komponenten in Perl-Code, aber statt Perl-Code "kompiliert" Komponenten in JavaScript-Code und nach dem Ausführen / Ausführen mit JavaScript :: V8 Perl Modul.

Motivation: Suchen Sie nach einer Lösung für die sichere Vorlagensprache, was Benutzer bearbeiten kann, ohne die Serversicherheit zu gefährden . JavaScript ist eine voll ausgestattete Sprache, daher ist es wahrscheinlich besser / schneller als einige "Mini-Sprachen" wie TT oder ähnliches. Das Beste für mich wäre eine Erweiterung (Neuschreiben) von Mason für das Zusammenstellen in Joose / JavaScript anstelle von Moose / Perl. ;)

Und ja, wollen Sie dies von Perl mit Javascript :: V8 tun, weil auf diese Weise ist möglich, alle perl's Macht über Javascript :: V8 $ context- & gt; bind_function in sehr sicherer Weise verfügbar.

Fragen:

  • Weiß jemand etwas? (fand nichts in CPAN) ...

EDIT: In Mason können Sie zum Beispiel

schreiben %Vor%

wäre schön die Möglichkeit zu haben, das obige in JS zu schreiben, wie:

%Vor%

Die obige Quelle sollte in JavaScript (Joose) "kompiliert" und mit Javascript :: V8 ausgeführt werden. (wie in Mason - die Quelle wird in Perl / Moose-Objekt kompiliert und mit Perl ausgeführt) ...

Wie Sie sehen können, wird for(var i in list) in reines JS geschrieben und nicht in "Mini-Sprache" ...

    
kobame 10.07.2011, 16:01
quelle

2 Antworten

9

Nach Jahren wiedergesehen und bearbeitet:)

Hier ist das EJS :: Template . Es tut genau das, was Sie gefragt haben - kompiliert die Vorlagen in JS und verwendet V8 (oder sogar JE ) Engines zum Auswerten. Leider gibt es noch keine Javascript :: Duktape Engine-Unterstützung (noch).

Auch hier ist ein Beispiel, wie man die Jemplate (serverseitig) von der großen @ ysth-Antwort mit der Duktape-Engine verwendet.

%Vor%

erzeugt

%Vor%

Sie können alle Jemplate-Aufrufe weglassen, indem Sie die Vorlagen vorher mit dem jemplate -Befehl kompilieren, wie zB:

%Vor%

Laden Sie einfach jemplate_source.js und prüfen Sie es in der JS-Engine.

Nur zur Kenntnisnahme: Auf meinem Noteboook habe ich mit dem originalen TemplateToolkit 10k / sec. Das obige Jemplate / Duktape nur 5k / sec.

Die meine ursprüngliche Antwort:

Hier ist Shotenjin , was von einem Tenjin-Vorlagensystem abgeleitet ist. (Das Perl Tenjin ist hier .

.)

Shotenjin ist joose basiert, also mit etwas plus Arbeit wird möglich sein Shotenjin von einem Perl mit Javascript :: V8 verwenden. Aber es ist immer noch nicht genau für das, was Sie suchen.

EDIT: Für das, was du schaust ist schon fertig - leider für den RUBY. Ссылка

EDIT2: Gerade entdeckt: Hier ist Template :: JavaScript , was TT in JS kompiliert und mit v8 Server ausgeführt wird Seite ...

    
jm666 10.07.2011, 18:55
quelle
4

Jemplate

(Das stimmt, ich stimme nicht ganz mit Ihrer Prämisse von "Javascript ist voll ausgestattete Sprache, so dass es wahrscheinlich besser / schneller als einige" Mini-Sprachen "wie TT oder ähnliches" - IMO gibt es absolut keinen Grund, was Sie tun fragen.)

    
ysth 10.07.2011 16:37
quelle

Tags und Links