summaryrefslogtreecommitdiff
path: root/renderer.py
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2010-03-17 00:17:58 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2010-03-17 00:17:58 +0100
commit775692ed79e61c835c1b7ce15b0041640bed6de6 (patch)
treefb68d9d36aa9915e060a10193aaba0a165e4326a /renderer.py
parent33ba646433a3696b29bc57f107694457d6a20e2e (diff)
downloadweb-775692ed79e61c835c1b7ce15b0041640bed6de6.tar.gz
web-775692ed79e61c835c1b7ce15b0041640bed6de6.tar.bz2
web-775692ed79e61c835c1b7ce15b0041640bed6de6.zip
Clean up
Diffstat (limited to 'renderer.py')
-rw-r--r--renderer.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/renderer.py b/renderer.py
new file mode 100644
index 0000000..3d10fac
--- /dev/null
+++ b/renderer.py
@@ -0,0 +1,36 @@
+import os
+import web
+import mako
+from mako.lookup import TemplateLookup
+
+import helper
+
+class Renderer:
+ def __init__ (self):
+ self.lookup = TemplateLookup(
+ directories=[helper.appdir('templates')],
+ module_directory = "/tmp/portato/",
+ input_encoding='utf-8',
+ output_encoding='utf-8',
+ format_exceptions = True)
+
+ def render (self, tpl, level = "pages" , **kwargs):
+ try:
+ t = self.get_tpl(tpl, level)
+ except mako.exceptions.TopLevelLookupException, e:
+ raise web.ctx.app_stack[-1].notfound(tpl)
+
+ return t.render(h = helper, url = helper.url, w = web, **kwargs)
+
+ __call__ = render
+
+ def get_tpl (self, tpl, level):
+ return self.lookup.get_template(self.get_tpl_name(tpl, level))
+
+ def get_tpl_name (self, tpl, level):
+ if not tpl.endswith(".mako"):
+ tpl = tpl+".mako"
+
+ return os.path.join(level, tpl)
+
+render = Renderer()