.. _ref-compilers: ========= Compilers ========= Coffee Script compiler ====================== The Coffee Script compiler uses `Coffee Script `_ to compile your javascript. To use it add this to your ``PIPELINE['COMPILERS']`` :: PIPELINE['COMPILERS'] = ( 'pipeline.compilers.coffee.CoffeeScriptCompiler', ) ``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'``. ``COFFEE_SCRIPT_ARGUMENTS`` ------------------------------------ Additional arguments to use when coffee is called. Defaults to ``''``. Live Script compiler ====================== The LiveScript compiler uses `LiveScript `_ to compile your javascript. To use it add this to your ``PIPELINE['COMPILERS']`` :: PIPELINE['COMPILERS'] = ( 'pipeline.compilers.livescript.LiveScriptCompiler', ) ``LIVE_SCRIPT_BINARY`` --------------------------------- Command line to execute for LiveScript program. You will most likely change this to the location of lsc on your system. Defaults to ``'/usr/bin/env lsc'``. ``LIVE_SCRIPT_ARGUMENTS`` ------------------------------------ Additional arguments to use when lsc 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', ) ``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'``. ``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', ) ``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'``. ``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', ) ``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'``. ``STYLUS_ARGUMENTS`` ----------------------------- Additional arguments to use when stylus is called. Defaults to ``''``. ES6 compiler ============ The ES6 compiler uses `Babel `_ to convert ES6+ code into vanilla ES5. Note that for files to be transpiled properly they must have the file extension **.es6** To use it add this to your ``PIPELINE['COMPILERS']`` :: PIPELINE['COMPILERS'] = ( 'pipeline.compilers.es6.ES6Compiler', ) ``BABEL_BINARY`` -------------------------- Command line to execute for babel program. You will most likely change this to the location of babel on your system. Defaults to ``'/usr/bin/env babel'``. ``BABEL_ARGUMENTS`` ----------------------------- Additional arguments to use when babel 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) 3rd Party Compilers =================== Here is an (in)complete list of 3rd party compilers that integrate with django-pipeline Compass (requires RubyGem) -------------------------- :Creator: `Mila Labs `_ :Description: Compass compiler for django-pipeline using the original Ruby gem. :Link: `https://github.com/mila-labs/django-pipeline-compass-rubygem` Compass (standalone) -------------------- :Creator: `Vitaly Babiy `_ :Description: django-pipeline-compass is a compiler for `django-pipeline `_. Making it really easy to use scss and compass with out requiring the compass gem. :Link: `https://github.com/vbabiy/django-pipeline-compass` Libsass (standalone) -------------------- :Creator: `Johanderson Mogollon `_ :Description: libsasscompiler is a compiler for `django-pipeline `_. Making it really easy to use scss/sass with the super fast libsass library. :Link: `https://github.com/sonic182/libsasscompiler`