Jinja 1

Du hast eine Idee für ein Projekt?
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Donnerstag 1. März 2007, 21:22

Hm, irgend wie gefallen mir diese Makros einfach nicht wirklich. Da ich sie aber in diesem Zusammenhang nie verwendet habe mags auch nur am Namen liegen ;)
Django kennt ja noch "Inclusion Tags" siehe http://www.djangoproject.com/documentat ... es_python/. Etwas umständlicher als ich es gerne hätte aber vermutlich besser weil expliziter..
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 2. März 2007, 08:19

blackbird hat geschrieben:Ich werfe nur mal eben Macros ein die genau eine solche Situation vermeiden sollten:

productlist.html:

Code: Alles auswählen

{% include 'product_helper.html' %}
<h1>Neustes Produkt</h1>
{{ show_product(newestproduct) }}
<h1>Alle Produkte</h1>
{% for product in products %}
  {{ show_product(product) }}
{% endfor %}
product_helper.html:

Code: Alles auswählen

{% macro show_product product %}
  <strong>{{ product.name }}</strong> - {{ product.price }}
{% endmacro %}
Hm. lässt sich das nicht über die normale block-includes lösen?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Freitag 2. März 2007, 17:11

Ich wüsste nicht wie... Kannst du mal ein Beispiel machen?
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 5. März 2007, 10:00

Hm. Dann ist block und macro also dahingehend Unterschiedlich: Macro kann man eine Variable übergeben, block allerdings nicht.

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:

Dienstag 6. März 2007, 13:05

So. Jinja 1 ist jetzt glaub ich in Feature Freeze. Jetzt werden nur noch Fehler gesucht und behoben. So schaut jetzt die Syntax und Designerdokumentation aus: http://pocoo.org/~mitsuhiko/jinjadocs/designerdoc.html

Wer Fehler findet oder noch Verbesserungen hat, her damit :D
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 6. März 2007, 14:08

Mit fällt zuerst das |e im ersten Beispiel auf. Weiter unten erklärt es sich dann, das |e ein Alias für |escape ist... Ich würde allerdings in dem ersten Beispiel lieber escape ausschreiben.

Schön wäre es, wenn die Überschriften Anker sind.

IMHO würde ich "Macro" umbenennen. Wie hier im Thread schon mal erwähnt wurde, hat das Wort alleine schon ein negativen Beigeschmack.
Wie wäre es mit subroutine oder einfach nur "def" ?

Der Unterschied zwischen include und extends ist mir nicht so ganz klar. Kann man das nicht vereinheitlichen?

Beim Abschnitt "Scopes", sagt mit foil ehr weniger was. IMHO passt Layer da besser.

Ansonsten, schöne Seite!
Was ist eigentlich mit dem JavaScript Zeug???

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:

Mittwoch 7. März 2007, 07:41

jens hat geschrieben:Mit fällt zuerst das |e im ersten Beispiel auf. Weiter unten erklärt es sich dann, das |e ein Alias für |escape ist... Ich würde allerdings in dem ersten Beispiel lieber escape ausschreiben.
Gute idee, werd ich machen,
Schön wäre es, wenn die Überschriften Anker sind.
Sind sie ja.
IMHO würde ich "Macro" umbenennen. Wie hier im Thread schon mal erwähnt wurde, hat das Wort alleine schon ein negativen Beigeschmack.
Wie wäre es mit subroutine oder einfach nur "def" ?
1.) enddef schaut seltsam aus, 2.) def ist ein Blöder name für solche aufrufbaren Blöcke, mir ist nichtmal klar für was es bei Python/Ruby steht. Und was ist so negativ am Wort macro?
Der Unterschied zwischen include und extends ist mir nicht so ganz klar. Kann man das nicht vereinheitlichen?
Nein. extends aktiviert die Inheritance. Include binded ein anderes Template file an einer Stelle ein als wäre es hier geschrieben worden.
Beim Abschnitt "Scopes", sagt mit foil ehr weniger was. IMHO passt Layer da besser.
mit "stack of foils" hab ich versucht bei einem Beispiel aus dem realen Leben zu bleiben
Was ist eigentlich mit dem JavaScript Zeug???
Weil ein Teil der Semantik im Translator steckt fang ich den JS Translator erst an, wenn sich am Python Translator nichts mehr ändert.
TUFKAB – the user formerly known as blackbird
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Mittwoch 7. März 2007, 13:51

blackbird hat geschrieben:
Schön wäre es, wenn die Überschriften Anker sind.
Sind sie ja.
Ich glaube er meint, dass ein "#" oder so hinter jeder Überschrift steht wie im Wiki. Fände ich auch gut :D
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 7. März 2007, 13:57

Ne, ich hab das Menü übersehen und nur auf die Überschriften selber geschaut, diese verweisen aber nicht per Anker auf sich selber...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Mittwoch 7. März 2007, 20:27

blackbird hat geschrieben:def ist ein Blöder name für solche aufrufbaren Blöcke, mir ist nichtmal klar für was es bei Python/Ruby steht.
Blind geraten: define?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Mittwoch 7. März 2007, 21:05

lumax hat geschrieben:
blackbird hat geschrieben:def ist ein Blöder name für solche aufrufbaren Blöcke, mir ist nichtmal klar für was es bei Python/Ruby steht.
Blind geraten: define?
Wirds wohl auch sein. Allerdings definiert man eben nicht nur Funktionen. Von daher finde ich es ein nettes Keyword für Python, aber sicher nicht für eine Template Engine.
TUFKAB – the user formerly known as blackbird
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Montag 12. März 2007, 20:04

So. Unabhängig von dieser Diskussion schreitet Jinja voran :D Letzte wichtige Neuerung: Debugging Support. Unabhängig vom Framework :D
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 13. März 2007, 08:54

blackbird hat geschrieben:Debugging Support
Das ist ja super! Die django Jungs sollten wirklich mal überlegen auf jinja zu setzten :lol:

Der passende Blog Eintrag: http://pocoo.org/blog/jinja-progress/

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:

Dienstag 13. März 2007, 18:35

jens hat geschrieben:Das ist ja super! Die django Jungs sollten wirklich mal überlegen auf jinja zu setzten :lol:
Ich zweifle nicht an, dass Jinja sicher toll ist, aber die Django-Leute wissen, warum sie ihr System einsetzen und eben so weit wie möglich von anderen Systemen unabhängig bleiben wollen. Und ja, die Tracebacks in den Django-Templates dürften besser sein - die auszubessern ist aber einfacher als auf ein ganzes neues Templete-System zu setzen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Dienstag 13. März 2007, 23:53

jens hat geschrieben:Das ist ja super! Die django Jungs sollten wirklich mal überlegen auf jinja zu setzten :lol:
Für django ist die django Template Engine denke ich ideal. Jinja ist ganz anders aufgebaut und die Templates sind nicht ganz kompatibel. Ein Wechsel für die Entwickler wäre eine schlechte Idee.
TUFKAB – the user formerly known as blackbird
Gesperrt