lib/template.py
author terom
Fri, 21 Dec 2007 20:45:03 +0000
changeset 13 c229bcb1de41
parent 12 c2d8e9a754a1
child 14 4b5478da5850
permissions -rw-r--r--
image breadcrumb links back to page that said image is on
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.template.debug("render %s with %s", self.name, data)
            return self.tpl.render(**data)
        except :
            data = exceptions.text_error_template().render()
            log.template.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")