--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/degal/template.py Wed Jun 03 19:03:28 2009 +0300
@@ -0,0 +1,65 @@
+# DeGAL - A pretty simple web image gallery
+# Copyright (C) 2007 Tero Marttila
+# http://marttila.de/~terom/degal/
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the
+# Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+from mako import exceptions
+from mako.lookup import TemplateLookup
+
+import settings, helpers
+
+import log
+
+_lookup = TemplateLookup(
+ directories=[settings.TEMPLATE_DIR],
+ module_directory='%s/cache' % settings.TEMPLATE_DIR,
+ output_encoding='utf-8',
+ filesystem_checks=False, # this may need to be changed if used in a long-term process
+)
+
+TEMPLATE_GLOBALS = dict(
+ h = helpers,
+ version = settings.VERSION,
+)
+
+class Template (object) :
+ def __init__ (self, name) :
+ self.name = name
+ self.tpl = _lookup.get_template("%s.%s" % (name, settings.TEMPLATE_EXT))
+
+ def render (self, **data) :
+ data.update(TEMPLATE_GLOBALS)
+
+ try :
+ log.debug("render %s with %s", self.name, data)
+ return self.tpl.render(**data)
+ except :
+ data = exceptions.text_error_template().render()
+ log.error(data)
+
+ raise
+
+ def render_to (self, file, **data) :
+ fh = open(file, "w")
+ fh.write(self.render(**data))
+ fh.close()
+
+# templates
+gallery = Template("gallery")
+image = Template("image")
+