grunt-contrib-haml

Compile Haml to HTML

grunt-contrib-haml

Compile Haml to HTML

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-contrib-haml --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-contrib-haml');

Run this task with the grunt haml command.

This task requires you to have Ruby and Haml. If you're on OS X or Linux you probably already have Ruby installed, try ruby -v in your terminal. When you've confirmed you have Ruby installed, run gem install haml to install Haml.

Any HAML options are also valid. Ex. { format: 'html5' } will run haml with --format html5.

Type: String|Array

Add a (or multiple) Haml import path.

Type: Boolean

Run haml with bundle exec: bundle exec haml.

Type: String

Specifiy default character encoding. Same as running haml with the -E option.

grunt.initConfig({
  haml: {                              // Task 
    dist: {                            // Target 
      files: {                         // Dictionary of files 
        'main.html': 'main.haml',       // 'destination': 'source' 
        'widgets.html': 'widgets.haml'
      }
    },
    dev: {                             // Another target 
      options: {                       // Target options 
        bundleExec: true,
        style: 'expanded'
      },
      files: {
        'main.html': 'main.haml',
        'widgets.html': [
          'button.haml',
          'tab.haml',
          'debug.haml'  // Maybe you need one extra file in dev 
        ]
      }
    }
  }
});
 
grunt.loadNpmTasks('grunt-contrib-haml');
 
grunt.registerTask('default', ['jshint', 'haml']);
grunt.initConfig({
  haml: {
    dist: {
      files: {
        'main.html': 'main.haml'
      }
    }
  }
});

If you specify an array of src paths they will be concatenated. However, in most cases you would want to just @import them into main.haml.

grunt.initConfig({
  haml: {
    dist: {
      files: {
      'main.html': [
          'reset.haml',
          'main.haml'
        ]
      }
    }
  }
});

You can specify multiple destination: source items in files.

grunt.initConfig({
  haml: {
    dist: {
      files: {
        'main.html': 'main.haml',
        'widgets.html': 'widgets.haml'
      }
    }
  }
});
  • 2013-08-19 v0.1.1 Bug fix #1 (Thanks @shahata)
  • 2013-03-23 v0.1.0 Initial release. Mostly a modification of https://github.com/gruntjs/grunt-contrib-sass

Task submitted by Jason Chen