Hi Christoph,
thanks a lot for your patience! Finally I got it working and I'm very
happy and relieved. Now I can start the big projects using GAE and Kid
Templating ;) Here is my final Template Manager with caching and path
completion:
class KidTemplateManager:
cache = {}
def __init__(self, root):
self.root = root
def load(self, path):
import kid
path = os.path.abspath(os.path.join(self.root, path))
template = self.cache.get(path)
if not template:
template = kid.load_template(
path, cache=False,
ns=dict(load=self.load, c=c))
self.cache[path] = template
return template
Thankfully
Dirk
Christoph Zwerschke schrieb:
> Dirk Holtwick wrote:
>> Sorry, I ran into another problem :(
>>
>> If I use files instead of variables it does not work anymore. I attached
>> an example. Do you have an idea? Seems as if the namespace "ns" is not
>> passed correctly... but thats just an idea.
>
> Your master.html and index.html files seem a bit screwed up. Also, the
> pool should be a dictionary, not a list. And you don't need to read the
> file, load_template takes a filename as well. So try this:
>
> -------------------
>
> master = """\
> <html xmlns:py="http://purl.org/kid/ns#">
> <body py:match="item.tag == 'body'">
> <p>my header</p>
> <div py:replace="item[:]" />
> <p>my footer</p>
> </body>
> </html>"""
>
> open('master.html', 'w').write(master)
>
> page = """\
> <html xmlns:py="http://purl.org/kid/ns#"
> py:extends="load('master.html')">
> <body>
> <p>my content</p>
> </body>
> </html>"""
>
> open('index.html', 'w').write(page)
>
>
> class KidTemplateManager:
>
> def __init__(self):
> self.pool = {}
> self.load('master.html')
>
> def load(self, path):
> template = self.pool.get(path)
> if not template:
> template = kid.load_template(
> path, cache=False,
> ns=dict(load=self.load))
> self.pool[path] = template
> return template
>
> template = KidTemplateManager().load("index.html")
> print template.serialize()
>
> -------------------
>
> -- Christoph
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> kid-template-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/kid-template-discuss
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
kid-template-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kid-template-discuss