.. _ref-compilers: ========= Compilers ========= Coffee Script compiler ====================== The Coffee Script compiler uses `Coffee Script `_ to compile your javascripts. To use it add this to your ``PIPELINE_COMPILERS`` :: PIPELINE_COMPILERS = ( 'pipeline.compilers.coffee.CoffeeScriptCompiler', ) ``PIPELINE_COFFEE_SCRIPT_BINARY`` --------------------------------- Command line to execute for coffee program. You will most likely change this to the location of coffee on your system. Defaults to ``'/usr/bin/env coffee'``. ``PIPELINE_COFFEE_SCRIPT_ARGUMENTS`` ------------------------------------ Additional arguments to use when coffee is called. Defaults to ``''``. LESS compiler ============= The LESS compiler uses `LESS `_ to compile your stylesheets. To use it add this to your ``PIPELINE_COMPILERS`` :: PIPELINE_COMPILERS = ( 'pipeline.compilers.less.LessCompiler', ) ``PIPELINE_LESS_BINARY`` ------------------------ Command line to execute for lessc program. You will most likely change this to the location of lessc on your system. Defaults to ``'/usr/bin/env lessc'``. ``PIPELINE_LESS_ARGUMENTS`` --------------------------- Additional arguments to use when lessc is called. Defaults to ``''``. SASS compiler ============= The SASS compiler uses `SASS `_ to compile your stylesheets. To use it add this to your ``PIPELINE_COMPILERS`` :: PIPELINE_COMPILERS = ( 'pipeline.compilers.sass.SASSCompiler', ) ``PIPELINE_SASS_BINARY`` ------------------------ Command line to execute for sass program. You will most likely change this to the location of sass on your system. Defaults to ``'/usr/bin/env sass'``. ``PIPELINE_SASS_ARGUMENTS`` --------------------------- Additional arguments to use when sass is called. Defaults to ``''``. Stylus compiler =============== The Stylus compiler uses `Stylus ` to compile your stylesheets. To use it add this to your ``PIPELINE_COMPILERS`` :: PIPELINE_COMPILERS = ( 'pipeline.compilers.stylus.StylusCompiler', ) ``PIPELINE_STYLUS_BINARY`` -------------------------- Command line to execute for stylus program. You will most likely change this to the location of stylus on your system. Defaults to ``'/usr/bin/env stylus'``. ``PIPELINE_STYLUS_ARGUMENTS`` ----------------------------- Additional arguments to use when stylus is called. Defaults to ``''``. Write your own compiler class ============================= You can write your own compiler class, for example if you want to implement other types of compilers. To do so, you just have to create a class that inherits from ``pipeline.compilers.CompilerBase`` and implements ``match_file`` and ``compile_file`` when needed. Finally, specify it in the tuple of compilers ``PIPELINE_COMPILERS`` in the settings. Example ------- A custom compiler for an imaginary compiler called jam :: from pipeline.compilers import CompilerBase class JamCompiler(CompilerBase): output_extension = 'js' def match_file(self, filename): return filename.endswith('.jam') def compile_file(self, infile, outfile, outdated=False, force=False): if not outdated and not force: return # No need to recompiled file return jam.compile(infile, outfile)