Genshi vs. jinja

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 19. Oktober 2006, 10:49

Da Genshi letztens hier im Forum erwähnt wurde, würde ich gern mehr über die Unterschiede bzw. Vor-/Nachteile wissen...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 19. Oktober 2006, 13:23

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 19. Oktober 2006, 13:33

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?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Donnerstag 19. Oktober 2006, 14:55

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? ;)
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 19. Oktober 2006, 15:05

Zur Größe:

Genshi - 172KB
jinja - 109KB

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 19. Oktober 2006, 15:05

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 19. Oktober 2006, 15:10

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Donnerstag 19. Oktober 2006, 15:13

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.
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 19. Oktober 2006, 15:37

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Donnerstag 19. Oktober 2006, 16:24

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 ;)
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 19. Oktober 2006, 17:01

Naja, ich bleibe erstmal wohl bei jinja... Das ist in PyLucid relativ neu eingebaut und funktioniert... Sehe keinen Grund zu wechseln...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 19. Oktober 2006, 18:32

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.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 19. Oktober 2006, 19:26

Den Zusammenhang sehe ich jetzt nicht so ganz...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Freitag 20. Oktober 2006, 02:37

Exkurs XML: Elemente müssen Start- und End-Tag haben oder in sich geschlossen sein. Sowas wie elif hat kein Ende-Gegenstück.
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 20. Oktober 2006, 08:47

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 :)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten