Seite 1 von 1

Ein Templatesystem (noch eins ;))

Verfasst: Freitag 23. Dezember 2005, 01:23
von Necoro
Bevor ich in dieses Forum guckte (also eben) wusste ich noch nicht einmal, dass es sowas noch ein paar Mal gib ... aber ich wurde eines besseren belehrt...
Nevertheless: Ich habe mich auch an ein Templatesystem gewagt (Name: N:PyTpl - Nec's Python Templatesystem) ... es war für mich auch u.a. ein Anfang in Python...

Zum Skript:
Es ist halt ein Templatesystem, d.h. es ersetzt bestimmte Tags (bei mir Taggys) durch vorgegeben Templates (bei mir (Tag)-Argumente)... Ich habe aber, wie ich das überflogen hab, eine andere Heransgehensweise an die Sache (vllt seh ich das nur auch net).
Leider kann es noch keine Schleifen (kommt aber noch) - dafür könnte es automatisch Sitemaps erstellen ^^

joa also:
Skript: hier
Template-Beispiele: hier
meine HP (welches mein System benutzt und von dem auch die Tpl-Beispiele sind ... man kann also mal gleich den Vergleich ziehen): hier

Das ganze ist als CGI ausgelegt, lässt sich aber innerhalb von zwei Minuten in etwas mod_python-kompatibles umwandeln ...

Also: Würde mich über etwas Feedback freuen =)

In diesem Sinne
gn8 =)
Nec

/edit: ich glaube, mir ist ein teil der unterschiede klar geworden:
1.) der user soll nix am quellcode ändern, sondern er bestimmt, wie die tags heißen - im template-file
2.) vererbung: wenn ich zwei sachen habe, die sich bis auf eine kleinigkeit gleichen, braucht doch nur das zweite vom ersten zu erben und das kleine Detail zu verändern =)
3.) html ist nur eine möglichkeit - es ist prinzipiell ein Templatesystem und kann für viel und nicht nur HTML eingesetzt werden

Verfasst: Freitag 23. Dezember 2005, 09:16
von jens
Das du das gesehen:
http://pythonwiki.pocoo.org/Template_Engines
http://www.python-forum.de/viewtopic.php?t=4231

Es gibt Templates wie Sand am Meer ;)

In Python selber gibt es auch zwei Methoden, mit dem sich aber keine Schleifen realisieren lassen:
Die String Formatting Operations und die Template-Strings

Verfasst: Freitag 23. Dezember 2005, 11:09
von Necoro
genau dieses template-wiki hab ich mir auch gestern angeschaut gehabt =) ... und obige Unterschiede festgestellt :) ... weil was ich so bei den Dokus gelesen hab, muss man dafür teilweise am Python-Skript rumbasteln ... nervige Angelegenheit, wie ich finde ;) --- ich will ja auch, dass das jmd verwendet, der so absolut keine Ahnung von Py hat ^^

Verfasst: Dienstag 27. Dezember 2005, 22:06
von Necoro
Soo ... Version 0.2 is da =) ... größte Verbesserung: es gibt Schleifen (sogar verschachtelte möglich ^^)

Version 0.3

Verfasst: Donnerstag 5. Januar 2006, 17:51
von Necoro
So … nun ist N:PyTpl 0.3 raus:
Änderungen / Neuerungen:
- erlaubt konstante Tags / Taggys, welche in einer Schleife nicht mit durchlaufen werden
- Taggyflags stehen nun genauso wie bei Tagflags hinter dem Namen
- Systemtags, welche man nicht ändern sollte, haben nun immer die Form $__xxx__ –> Umbenennung einiger Systemtags
- Aliase für $LOOPEND und $LOOPSTART
- $PARENTS erlaubt nun zwei Argumente: das erste steuert den Templ.-namen - und das zweite den angezeigten
Und um nochmal auf die Ähnlichkeiten/Unterschiede zu anderen einzugehen: Jinja scheint das ein wenig so zu machen, wie ich ^^

Re: Version 0.3

Verfasst: Donnerstag 5. Januar 2006, 19:45
von mitsuhiko
Necoro hat geschrieben:Und um nochmal auf die Ähnlichkeiten/Unterschiede zu anderen einzugehen: Jinja scheint das ein wenig so zu machen, wie ich ^^
Naja. Jinja ist da schon eine Spur größer :-)

Verfasst: Donnerstag 5. Januar 2006, 20:16
von Necoro
Es ging auch eher um die Herangehensweise ^^ ...

Verfasst: Montag 13. März 2006, 23:47
von Necoro
soo ... ist ein wenig Zeit vergangen ... habe gerade Version 0.5.1 fertiggestellt (ChangeLog: http://download.necoro.net/ChangeLog.npt) ... nun ja - und jetzt leide ich ein wenig unter einem "lack of ideas"...

hat jmd eine nette Idee, was man noch verwirklichen könnte? (jaja ... ich lasse net locker :lol: )

ich wollte noch eine gewisse Dynamik mit hereinbringen (Unterstützung für Inline-PHP und ~-Python) - hatte da schon was, aber musste denn feststellen, dass es nur für 2.4 funktioniert :/ ... *umschreiben ich das muss*

Aaaaaaalso: Wenn jmd Vorschläge, Verbesserungen (auch Verbesserungen am Quellcode) hat ... bin offen :)

btw: http://download.necoro.net/npt-0.5.1.tar.gz <--- aktuelle Version