Clearsilver Template Klasse

Code-Stücke können hier veröffentlicht werden.
Antworten
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

hallo, ich hab eine Klasse für die Clearsilver template Engine geschrieben.

Zu finden ist das ganze Hier, als Beispiel dient die main() funktion.
Viel spass! =)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Sieht ja erst einmal ganz nett aus, aber:

- mir zu wenig Doku :-D (Sonst würde man evtl. verstehen, wozu es kwargs und das vardict in der setvars-Methode gibt!)
- wieso postest Du die Demo Template Datei nicht auch?
- wozu dient die Basis-Klasse mit dem häßlichen Namen "_SafeRender"?
- wieso nutzt Du keine Properties an kritischen Stellen? Vielleicht überblicke ich auf die Schnelle nicht alles, aber ich sehe da für die "_"-Methoden keinen anderen Sinn.
- der import von neo_cgi erscheint mir überflüssig!

Ein wenig Off-Topic: Gibt es konkrete Vorteile im Vgl. zu anderen Python-Template-Engines wie Mako, Jinja2 und Co.?

Edit: Habe mir mal ein wenig das Konzept von HDF angeguckt. Imho ist die Punkt-Struktur ja noch ok, aber wieso verwenden die kein JSON? Wäre doch imho angenehmer, als sich ein neues Custom-Format anzueignen...
stuhlbein
User
Beiträge: 89
Registriert: Freitag 9. Januar 2009, 16:08

Hyperion hat geschrieben: - mir zu wenig Doku :-D (Sonst würde man evtl. verstehen, wozu es kwargs und das vardict in der setvars-Methode gibt!)
Dokus schreiben nervt ;) Aber zu deiner frage:
Die setvars() methode erlaubt es dem user, Variablen, die später im Template verfügbar sein sollen, zu definieren. Das optionale `**kwargs` argument erlaubt dabei keyword-arguments (sic): TemplateInstance.setvars(meineVariable="MeinVariablenInhalt")
- wieso postest Du die Demo Template Datei nicht auch?
Bittesehr (Ja, könnte natürlich etwas ausführlicher sein... ;)).
- wozu dient die Basis-Klasse mit dem häßlichen Namen "_SafeRender"?
Ursprünglich diente die Klasse zum "sicheren" rendern von Dateien und/oder Strings, womit man das werfen von Exceptions hätte ausschalten können (daher auch die Variable `raise_on_error`).
Das betrifft momentan aber ohnehin nur das laden der HDF konfiguration.
- wieso nutzt Du keine Properties an kritischen Stellen? Vielleicht überblicke ich auf die Schnelle nicht alles, aber ich sehe da für die "_"-Methoden keinen anderen Sinn.
Wie meinst du das?
- der import von neo_cgi erscheint mir überflüssig!
Unnötig ist dieser Import nicht, da neo_cgi die anderen Module `neo_util` und `neo_cs` bereitstellt (ich weiss selbst nicht wie... :))
Ein wenig Off-Topic: Gibt es konkrete Vorteile im Vgl. zu anderen Python-Template-Engines wie Mako, Jinja2 und Co.?
Meine erfahrung zeigte, dass Clearsilver selbst in F/CGI Skripten schneller als Mako/Jinja2 und co. ist. Wird in den nächsten tagen aber noch getestet. Mir persönlich gefällt einfach nur die klare, unverschnörkelte Syntax der Templates.
Edit: Habe mir mal ein wenig das Konzept von HDF angeguckt. Imho ist die Punkt-Struktur ja noch ok, aber wieso verwenden die kein JSON? Wäre doch imho angenehmer, als sich ein neues Custom-Format anzueignen...
Frag das die Entwickler von Clearsilver, Die nutzung von JSON wäre da vermutlich doch simmvoller gewesen ;).
Antworten