view piecrust/processing/pygments_style.py @ 549:7453baeb0839

bake: Set the flags, don't combine. We don't want to combine old flags with new ones, especially if something went different between the last bake and the current one.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 04 Aug 2015 21:21:08 -0700
parents ee3fe63cc51d
children 727110ea112a
line wrap: on
line source

import yaml
from pygments.formatters import HtmlFormatter
from piecrust.processing.base import SimpleFileProcessor


class PygmentsStyleProcessor(SimpleFileProcessor):
    PROCESSOR_NAME = 'pygments_style'

    def __init__(self):
        super(PygmentsStyleProcessor, self).__init__({'pygstyle': 'css'})

    def _doProcess(self, in_path, out_path):
        with open(in_path, 'r') as fp:
            config = yaml.load(fp)

        style_name = config.get('style', 'default')
        class_name = config.get('class', '.highlight')
        fmt = HtmlFormatter(style=style_name).get_style_defs(class_name)

        with open(out_path, 'w') as fp:
            fp.write(fmt)

        return True