# Copyright 2016 Lars Wirzenius # # 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 3 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, see . # # =*= License: GPL-3+ =*= import time import jinja2 class HtmlRenderer(object): def render(self, template_name, variables): env = self._get_env() self._add_custom_filters(env) template = env.get_template(template_name) return template.render(**variables) def _get_env(self): loader = jinja2.PackageLoader('distixlib') return jinja2.Environment( loader=loader, autoescape=lambda _: True, extensions=['jinja2.ext.autoescape'], ) def _add_custom_filters(self, env): env.filters['date'] = self._date_filter def _date_filter(self, value): # pragma: no cover tm = time.gmtime(value) return time.strftime('%Y-%m-%d', tm)