Grun can automate reperitive tasks for you. It is a JavaScript Task Runner. This post discusses how to install Grunt a automate a few tasks.
Lets start by installing Grunt and a few plugins:
npm install grunt safeps --save npm install grunt-cli -g npm install grunt-contrib-uglify --save-dev npm install grunt-contrib-htmlmin --save-dev npm install --save-dev grunt-shell
After the install we need configure the automation in a Gruntfile. I wrote a CoffeeScript version of the configuration. It does executes the command docpad generate --env static
. The other thing it does is minify the HTML that is generated. Here is my Gruntfile.coffee
:
module.exports = (grunt) -> grunt.initConfig #http://blog.hypercubed.com/archives/2013/10/05/docpad-and-grunt/ shell: docpad: options: stdout: true command: "docpad generate --env static" #command to process files htmlmin: # Task to minimize the HTML files dist: # Target expand: true cwd: '/home/stan/make' #This is the current working directory src: ['out/*.html'] #Process html files from the source folder called 'out' dest: '' #*Put the processed files back in the same source folder* options: # Target options removeComments: true collapseWhitespace: true minifyJS:true grunt.loadNpmTasks('grunt-shell'); grunt.loadNpmTasks('grunt-contrib-htmlmin'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.registerTask('generate', ['shell:docpad']); grunt.registerTask "default", ['generate', 'htmlmin']