def load_template_if_needed(self): """ Loads and configures the template environement from the site configuration if its not done already. """ class GeneratorProxy(object): """ An interface to templates and plugins for providing restricted access to the methods. """ def __init__(self, preprocessor=None, postprocessor=None, context_for_path=None): self.preprocessor = preprocessor self.postprocessor = postprocessor self.context_for_path = context_for_path if not self.template: logger.info("Generating site at [%s]" % self.site.sitepath) self.template = Template.find_template(self.site) logger.debug("Using [%s] as the template", self.template.__class__.__name__) logger.info("Configuring the template environment") self.template.configure(self.site, engine=GeneratorProxy( context_for_path=self.context_for_path, preprocessor=self.events.begin_text_resource, postprocessor=self.events.text_resource_complete)) self.events.template_loaded(self.template)
def __init__(self, site, gopher, gopher_menu): self.site = site self.gopher = gopher self.gopher_menu = gopher_menu plugins = Plugin(site) plugins.load_all(site) self.events = Plugin.get_proxy(site) generator_proxy = GeneratorProxy( context_for_path=None, preprocessor=self.events.begin_text_resource, postprocessor=self.events.text_resource_complete, ) self.templates = Template.find_template(site) self.templates.configure(self.site, engine=generator_proxy) self.events.template_loaded(self.templates) self.site.content.load() self.templates.env.globals.update(self.site.config.context.data) self.events.begin_generation() self.events.begin_site()