Process HAML templates using MtHaml, a PHP port of Haml.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
tasks
test
.editorconfig
.gitignore
.jshintrc
Gruntfile.js
LICENSE-MIT
README.md
composer.json
composer.lock
package.json

README.md

grunt-haml-php

Process HAML templates using MtHaml, a PHP port of Haml.

Getting Started

This plugin requires Grunt ~0.4.1

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-haml-php --save-dev

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

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

The "haml" task

This plugin requires composer in order to install PHP dependencies. Please follow the installation instructions before installing this plugin.

Overview

In your project's Gruntfile, add a section named haml to the data object passed into grunt.initConfig().

grunt.initConfig({
  haml: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    },
  },
})

Options

options.target

Type: String Default value: php

Set the target output generated by MtHaml. Valid options are php and twig.

options.writeError

Type: Boolean Default value: true

If enabled, write any compile errors to the output file. Otherwise do nothing.

options.enableDynamicAttributes

Type: Boolean Default value: true

Controls the enable_dynamic_attrs option of MtHaml. Disabling this removes the requirement for the MtHaml runtime.

Usage Examples

Simple file mapping

grunt.initConfig({
  haml: {
    compile: {
      files: {
        'dest/file1.html': ['src/file1.haml'],
      },
    },
  },
})

All haml files

This example compiles all haml files in a directory and adds a php extension.

grunt.initConfig({
  haml: {
    compile: {
      files: [{
        expand: true,
        src: ['src/templates/**/*.haml'],
        dest: 'dest/templates',
        ext: '.php'
      }],
    },
  },
})

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 12/9/2013 - v0.2.1 - Catch all php errors, regardless of system settings
  • 11/20/2013 - v0.2.0 - Add option for writing errors to output file
  • 11/14/2013 - v0.1.0 - Initial release.