Seite 1 von 1

Genshi vs. jinja

Verfasst: Donnerstag 19. Oktober 2006, 10:49
von jens
Da Genshi letztens hier im Forum erwähnt wurde, würde ich gern mehr über die Unterschiede bzw. Vor-/Nachteile wissen...

Verfasst: Donnerstag 19. Oktober 2006, 13:23
von Leonidas
Ich würde mal sagen, dass du am besten es selbt ausprobierst.

Sie sind etwa so verschieden wie Cheetah und Kid: Jnja ist für Textsachen generell gedacht und Genshi prodziert hauptsächlich XML.

Verfasst: Donnerstag 19. Oktober 2006, 13:33
von jens
Leonidas hat geschrieben:Ich würde mal sagen, dass du am besten es selbt ausprobierst.
Schon klar... Es wäre auch besser alles selber zu programmieren... Soviel Zeit hat aber wohl keiner... oder du?

Verfasst: Donnerstag 19. Oktober 2006, 14:55
von Y0Gi
Genshi kann auch Text, sollte dann ähnlich wie Cheetah oder Django-Templating aussehen.

Nachteile von Genshi sehe ich jetzt keine. Generell als Vorteil von XML-fähigen TEs sehe ich, dass man bei der Generierung von X(HT)ML sauberer mit Attributen/Elementen lösen kann als mit dem Text-Template-Ansatz, weil man so sehr oft auf die Endblöcke verzichten kann (wenn man es auf ein ohnehin bestehendes Element anwendet). Klar? ;)

Verfasst: Donnerstag 19. Oktober 2006, 15:05
von jens
Zur Größe:

Genshi - 172KB
jinja - 109KB

Also der Unterschied ist schon mal nicht so groß...

Verfasst: Donnerstag 19. Oktober 2006, 15:05
von Leonidas
jens hat geschrieben:Es wäre auch besser alles selber zu programmieren...
Nein, wäre es nicht (nicht unbedingt zumindest). Denn sowohl bei Genshi als auch Djngo/Jinja sitzen fähige Programmierer dahinter, so dass ein selbstprogrammiertes Templating-System nicht so ohne weiteres besser sein würde. Daher mache ich es auch so, dass wenn ich ein Modul suche, erstmal schaue ob es das gibt und erst dann gucke ob ich das selbst implementiere.
jens hat geschrieben:Soviel Zeit hat aber wohl keiner... oder du?
Nein. Ich pflege aber auch das Rad nicht immer neu zu erfinden.

Verfasst: Donnerstag 19. Oktober 2006, 15:10
von Leonidas
Y0Gi hat geschrieben:Genshi kann auch Text, sollte dann ähnlich wie Cheetah oder Django-Templating aussehen.
So wie Genshi sicher für XML-Sachen gut geeignet sind, so finde ich das hier beschriebene Text-Templating verglichen mit den Django-Templates eher ziemlich arm. Mir fehlen hier die Vererbung (die zuerst etwas seltsam anmutet aber sich als sehr inuitiv erweist), Filter und Tags.

Verfasst: Donnerstag 19. Oktober 2006, 15:13
von Y0Gi
Aber immerhin kann es das überhaupt. Für die XHTML-Templates verwendet man eben die XML-Syntax, wie es ja Sinn macht. Oft heißt es ja "XML-only ist Mist, weil man ja auch mal Emails oder Logfiles erzeugen möchte" und genau das geht mit der Text-Syntax auch wunderbar und auf ausgefalleneres wie Vererbung kann man da auch verzichten.

Verfasst: Donnerstag 19. Oktober 2006, 15:37
von jens
Hm... Nach dem kurz Studium der Genshi Dokus, ist Genshi wesendlich mehr als nur ein Templatesystem wie jinja...

Wobei ich da einiges etwas komisch finde. z.B. #choose

Code: Alles auswählen

#choose
  #when 0 == 1
    0
  #end
  #when 1 == 1
    1
  #end
  #otherwise
    2
  #end
#end
Warum macht man das so kompliziert? Warum sich nicht näher an Python halten? Also z.B. so:

Code: Alles auswählen

#if 0 == 1:
    0
  #elif 1 == 1:
    1
  #else:
    2
  #endif
Neu wäre evtl. das endif...

Verfasst: Donnerstag 19. Oktober 2006, 16:24
von Y0Gi
Das ist vielleicht Geschmackssache oder hatte tatsächlich einen Grund. Ich bin allerdings bisher sehr gut ohne diese gegenüber Kid hinzugekommenen Direktiven ausgekommen, also mach dir keinen Kopf ;)

Verfasst: Donnerstag 19. Oktober 2006, 17:01
von jens
Naja, ich bleibe erstmal wohl bei jinja... Das ist in PyLucid relativ neu eingebaut und funktioniert... Sehe keinen Grund zu wechseln...

Verfasst: Donnerstag 19. Oktober 2006, 18:32
von mitsuhiko
jens hat geschrieben:Warum macht man das so kompliziert? Warum sich nicht näher an Python halten? Also z.B. so:

Code: Alles auswählen

#if 0 == 1:
    0
  #elif 1 == 1:
    1
  #else:
    2
  #endif
Neu wäre evtl. das endif...
Weils dann nicht mehr mit XML geht. Die direktiven müssen bei Genshi für Text und XML gehen.

Verfasst: Donnerstag 19. Oktober 2006, 19:26
von jens
Den Zusammenhang sehe ich jetzt nicht so ganz...

Verfasst: Freitag 20. Oktober 2006, 02:37
von Y0Gi
Exkurs XML: Elemente müssen Start- und End-Tag haben oder in sich geschlossen sein. Sowas wie elif hat kein Ende-Gegenstück.

Verfasst: Freitag 20. Oktober 2006, 08:47
von jens
Verstehe... Naja, der ganze Block kann man ja mit #endif markieren... Für die Einzelteile müsste man sich halt mehr verrenken :)

Naja, egal... Ich nutze es eh nicht :)