Home

Awesome

grunt-absurd

Grunt plugin for AbsurdJS (https://github.com/krasimir/absurd)

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-absurd

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

grunt.loadNpmTasks('grunt-absurd');

The "absurd" task

Overview

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

grunt.initConfig({
  absurd: {
    task: {
      src: 'path to your .js file',
      dest: 'path to your .css file',
      options: {
        minify: true,
      }
    }
  },
})

Options

require

Type: Array Default: []

A list of files loaded before process the src files.

extCSS

Type: String Default: '.css'

The css file extension used in the output of morph: "component"

extHTML

Type: String Default: '.html'

The html file extension used in the output of morph: "component"

Other Absurd Options

morph

Type: null | 'html' | 'component' Default: null

combineSelectors

Type: Boolean Default: true

minify

Type: Boolean Default: false

keepCamelCase

Type: Boolean Default: false

Usage example

...
  grunt.initConfig({
    testSrc: 'tests/data',
    testResult: 'tests/results',

    absurd: {
      buildCSS: {
        options: {
          require: ['<%= testSrc %>/**/*.plugin.js'],
          minify: false,
          combineSelectors: false,
          keepCamelCase: true
        },
        expand: true,
        cwd: '<%= testSrc %>',
        src: ['**/*.css.js'],
        dest: '<%= testResult %>',
        ext: '.absurd.css'
      },
      compileCSS: {
        options: {
          require: ['<%= testSrc %>/**/*.plugin.js'],
          minify: false
        },
        src: ['<%= testSrc %>/**/*.css.js'],
        dest: '<%= testResult %>/compiledCSS.css',
      },
      buildHTML: {
        options: {
          minify: false,
          morph: 'html'
        },
        expand: true,
        cwd: '<%= testSrc %>/',
        src: ['**/*.html.js'],
        dest: '<%= testResult %>',
        ext: '.absurd.html'
      },
      compileHTML: {
        options: {
          minify: true,
          morph: 'html'
        },
        src: ['<%= testSrc %>/**/*.html.js'],
        dest: '<%= testResult %>/compiledHTML.html',
      },
      buildComponent: {
        options: {
          require: ['<%= testSrc %>/**/*.plugin.js'],
          minify: false,
          morph: 'component'
        },
        expand: true,
        cwd: '<%= testSrc %>/',
        src: ['**/*.component.js'],
        dest: '<%= testResult %>',
        ext: '.absurd'
      },
      compileComponent: {
        options: {
          require: ['<%= testSrc %>/**/*.plugin.js'],
          minify: true,
          morph: 'component'
        },
        src: ['<%= testSrc %>/**/*.component.js'],
        dest: '<%= testResult %>/compileComponent.absurd'
      }
    },
...

Use dynamic_mappings to create separate output files. use static_mappings to create single output file.