blob: 91392001b14f0c4fd7b199fd5539287571a7de8d [file] [log] [blame]
module.exports = function (grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
options: {
force: true
},
js: ['dist/js/'],
css: ['dist/css/'],
assets: ['dist/assets/*']
},
assemble: {
options: {
partials: 'src/includes/*.hbs',
layout: 'src/layouts/html.hbs',
flatten: true
},
html: {
files: {
'dist/': ['src/pages/html/*.hbs']
}
},
markdown: {
options: {
layout: 'src/layouts/markdown.hbs'
},
files: {
'dist/': ['src/pages/markdown/*.md']
}
}
},
compass: {
dist: {
options: {
config: 'config.rb'
}
}
},
concat: {
options: {
separator: ';'
},
foundation: {
src: [
'bower_components/foundation/js/foundation/foundation.js',
'bower_components/foundation/js/foundation/foundation.topbar.js'
],
dest: 'dist/assets/js/foundation.js'
},
modernizr: {
src: [
'bower_components/modernizr/modernizr.js'
],
dest: 'dist/assets/js/modernizr.js'
},
nifi: {
src: [
'src/js/app.js'
],
dest: 'dist/js/app.js'
}
},
copy: {
dist: {
files: [{
expand: true,
cwd: 'src/images/',
src: ['**/*.{png,jpg,gif,svg,ico}'],
dest: 'dist/images/'
}, {
expand: true,
cwd: 'bower_components/jquery/dist',
src: ['jquery.min.js'],
dest: 'dist/assets/js/'
}, {
expand: true,
cwd: 'bower_components/webfontloader',
src: ['webfontloader.js'],
dest: 'dist/assets/js/'
}, {
expand: true,
cwd: 'bower_components/font-awesome/css',
src: ['font-awesome.min.css'],
dest: 'dist/assets/stylesheets/'
}, {
expand: true,
cwd: 'bower_components/font-awesome',
src: ['fonts/*'],
dest: 'dist/assets/'
}]
}
},
watch: {
grunt: {
files: ['Gruntfile.js'],
tasks: ['dev']
},
css: {
files: 'src/scss/*.scss',
tasks: ['css']
},
script: {
files: 'src/js/*.js',
tasks: ['js']
},
images: {
files: 'src/images/*.{png,jpg,gif,svg,ico}',
tasks: ['img']
},
assemble: {
files: ['src/{includes,layouts}/*.hbs', 'src/pages/{html,markdown}/*.{hbs,md}'],
tasks: ['assemble']
}
}
});
grunt.loadNpmTasks('grunt-newer');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('assemble');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('img', ['newer:copy']);
grunt.registerTask('css', ['clean:css', 'compass']);
grunt.registerTask('js', ['clean:js', 'concat']);
grunt.registerTask('dev', ['clean', 'assemble', 'css', 'js', 'img', 'copy', 'watch']);
grunt.registerTask('default', ['clean', 'assemble', 'css', 'js', 'img', 'copy']);
};