From 34bb3899c1ad9116d7be58898ea5da44a71c3e0e Mon Sep 17 00:00:00 2001 From: Alexandre Chataignon Date: Fri, 3 Mar 2017 06:19:48 +0100 Subject: [PATCH] Permit filters.py file in template dir to define custom jinja filters --- sigal/writer.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sigal/writer.py b/sigal/writer.py index 5356fe3..d2b566f 100644 --- a/sigal/writer.py +++ b/sigal/writer.py @@ -26,8 +26,10 @@ from __future__ import absolute_import import codecs import jinja2 import logging +import imp import os import sys +import types from distutils.dir_util import copy_tree from jinja2 import Environment, FileSystemLoader, ChoiceLoader, PrefixLoader @@ -81,6 +83,13 @@ class Writer(object): **env_options ) + # handle optional filters.py + filters_py = os.path.join(self.theme, 'filters.py') + if os.path.exists(filters_py): + mod = imp.load_source('filters', filters_py) + for name in [name for name in dir(mod) if isinstance(getattr(mod, name), types.FunctionType)]: + env.filters[name] = getattr(mod, name) + try: self.template = env.get_template(self.template_file) except TemplateNotFound: