Exemple #1
0
    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)
Exemple #2
0
 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()