from pelican import signals, generators from itertools import chain from jinja2 import Environment, FileSystemLoader import os from pprint import pprint def generate_micron(generator): template_path = os.path.join(generator.settings.get('THEME'), 'templates') out_path = generator.settings.get('MICRON_PATH', 'micron/') environment = Environment(loader=FileSystemLoader(template_path)) if not os.path.exists(out_path): os.mkdir(out_path) for obj in generator.articles: filename = obj.slug + ".mu" template = environment.get_template( obj.template + '.mu') context = dict() context.update({ 'article' : obj }) context.update(obj.settings) content = template.render(context) output_micron = os.path.join(out_path, filename) with open(output_micron, 'w') as mf: mf.write(content) def register(): signals.article_generator_finalized.connect(generate_micron)