diff --git a/pelican/generators.py b/pelican/generators.py index b7612fa2..f8be3827 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals, print_function import os +import imp import math import random import logging @@ -62,6 +63,14 @@ class Generator(object): ]), extensions=self.settings['JINJA_EXTENSIONS'], ) + try: + theme_functions = imp.load_source('theme_functions', self._templates_path[0]+'/functions.py') + except IOError: + theme_functions = None + + if theme_functions and '__export__' in vars(theme_functions): + for func_name in theme_functions.__export__: + self.env.globals[func_name] = getattr(theme_functions, func_name) logger.debug('template list: {0}'.format(self.env.list_templates())) diff --git a/pelican/themes/simple/templates/functions.py b/pelican/themes/simple/templates/functions.py new file mode 100644 index 00000000..de40bd78 --- /dev/null +++ b/pelican/themes/simple/templates/functions.py @@ -0,0 +1,9 @@ +# encoding: utf-8 + +__export__ = ["helperFunction"] + +def helperFunction(): + return "
I'm from a helper function!
" + +def anotherHelper(): + return "I'm not being exported!"