def __init__(self, context, settings, path, theme, output_path, readers_cache_name='', **kwargs): self.context = context self.settings = settings self.path = path self.theme = theme self.output_path = output_path for arg, value in kwargs.items(): setattr(self, arg, value) self.readers = Readers(self.settings, readers_cache_name) # templates cache self._templates = {} self._templates_path = list(self.settings['THEME_TEMPLATES_OVERRIDES']) theme_templates_path = os.path.expanduser( os.path.join(self.theme, 'templates')) self._templates_path.append(theme_templates_path) theme_loader = FileSystemLoader(theme_templates_path) simple_theme_path = os.path.dirname(os.path.abspath(__file__)) simple_loader = FileSystemLoader( os.path.join(simple_theme_path, "themes", "simple", "templates")) self.env = Environment( loader=ChoiceLoader([ FileSystemLoader(self._templates_path), simple_loader, # implicit inheritance PrefixLoader({ '!simple': simple_loader, '!theme': theme_loader }) # explicit ones ]), **self.settings['JINJA_ENVIRONMENT'] ) logger.debug('Template list: %s', self.env.list_templates()) # provide utils.strftime as a jinja filter self.env.filters.update({'strftime': DateFormatter()}) # get custom Jinja filters from user settings custom_filters = self.settings['JINJA_FILTERS'] self.env.filters.update(custom_filters) # get custom Jinja globals from user settings custom_globals = self.settings['JINJA_GLOBALS'] self.env.globals.update(custom_globals) # get custom Jinja tests from user settings custom_tests = self.settings['JINJA_TESTS'] self.env.tests.update(custom_tests) signals.generator_init.send(self)
def __init__(self, context, settings, path, theme, output_path, readers_cache_name='', **kwargs): self.context = context self.settings = settings self.path = path self.theme = theme self.output_path = output_path for arg, value in kwargs.items(): setattr(self, arg, value) self.readers = Readers(self.settings, readers_cache_name) # templates cache self._templates = {} self._templates_path = [] self._templates_path.append( os.path.expanduser(os.path.join(self.theme, 'templates'))) self._templates_path += self.settings['EXTRA_TEMPLATES_PATHS'] theme_path = os.path.dirname(os.path.abspath(__file__)) simple_loader = FileSystemLoader( os.path.join(theme_path, "themes", "simple", "templates")) self.env = Environment( trim_blocks=True, lstrip_blocks=True, loader=ChoiceLoader([ FileSystemLoader(self._templates_path), simple_loader, # implicit inheritance PrefixLoader({'!simple': simple_loader}) # explicit one ]), extensions=self.settings['JINJA_EXTENSIONS'], ) logger.debug('template list: {0}'.format(self.env.list_templates())) # provide utils.strftime as a jinja filter self.env.filters.update({'strftime': DateFormatter()}) # get custom Jinja filters from user settings custom_filters = self.settings['JINJA_FILTERS'] self.env.filters.update(custom_filters) signals.generator_init.send(self)
def __init__(self, *args, **kwargs): for idx, item in enumerate( ('context', 'settings', 'path', 'theme', 'output_path', 'markup')): setattr(self, item, args[idx]) for arg, value in kwargs.items(): setattr(self, arg, value) # templates cache self._templates = {} self._templates_path = [] self._templates_path.append( os.path.expanduser(os.path.join(self.theme, 'templates'))) self._templates_path += self.settings.get('EXTRA_TEMPLATES_PATHS', []) theme_path = os.path.dirname(os.path.abspath(__file__)) simple_loader = FileSystemLoader( os.path.join(theme_path, "themes", "simple", "templates")) self.env = Environment( trim_blocks=True, loader=ChoiceLoader([ FileSystemLoader(self._templates_path), simple_loader, # implicit inheritance PrefixLoader({'!simple': simple_loader}) # explicit one ]), extensions=self.settings.get('JINJA_EXTENSIONS', []), ) logger.debug('template list: {0}'.format(self.env.list_templates())) # provide utils.strftime as a jinja filter self.env.filters.update({'strftime': DateFormatter()}) # get custom Jinja filters from user settings custom_filters = self.settings.get('JINJA_FILTERS', {}) self.env.filters.update(custom_filters) signals.generator_init.send(self)