mirror of https://github.com/metafizzy/isotope
Filter & sort magical layouts
http://isotope.metafizzy.co
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.2 KiB
87 lines
2.2 KiB
/*jshint node: true, strict: false */ |
|
|
|
// -------------------------- grunt -------------------------- // |
|
|
|
module.exports = function( grunt ) { |
|
|
|
var banner = ( function() { |
|
var src = grunt.file.read('js/isotope.js'); |
|
var re = new RegExp('^\\s*(?:\\/\\*[\\s\\S]*?\\*\\/)\\s*'); |
|
var matches = src.match( re ); |
|
var banner = matches[0].replace( 'Isotope', 'Isotope PACKAGED' ); |
|
return banner; |
|
})(); |
|
|
|
grunt.initConfig({ |
|
// ----- global settings ----- // |
|
namespace: 'isotope', |
|
dataDir: 'tasks/data', |
|
|
|
// ----- tasks settings ----- // |
|
|
|
jshint: { |
|
docs: [ 'js/**/*.js' ], |
|
options: grunt.file.readJSON('.jshintrc') |
|
}, |
|
|
|
requirejs: { |
|
pkgd: { |
|
options: { |
|
baseUrl: 'bower_components', |
|
include: [ |
|
'jquery-bridget/jquery.bridget', |
|
'isotope/js/isotope' |
|
], |
|
out: 'dist/isotope.pkgd.js', |
|
optimize: 'none', |
|
paths: { |
|
isotope: '../', |
|
jquery: 'empty:' |
|
}, |
|
wrap: { |
|
start: banner |
|
} |
|
} |
|
} |
|
}, |
|
|
|
uglify: { |
|
pkgd: { |
|
files: { |
|
'dist/isotope.pkgd.min.js': [ 'dist/isotope.pkgd.js' ] |
|
}, |
|
options: { |
|
banner: banner |
|
} |
|
} |
|
} |
|
|
|
}); |
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint'); |
|
grunt.loadNpmTasks('grunt-contrib-uglify'); |
|
grunt.loadNpmTasks('grunt-requirejs'); |
|
|
|
grunt.registerTask( 'pkgd-edit', function() { |
|
var outFile = grunt.config.get('requirejs.pkgd.options.out'); |
|
var contents = grunt.file.read( outFile ); |
|
// get requireJS definition code |
|
var definitionRE = /define\(\s*'isotope\/js\/isotope'(.|\n)+isotopeDefinition\s*\)/; |
|
var definition = contents.match( definitionRE )[0]; |
|
// remove name module |
|
var fixDefinition = definition.replace( "'isotope/js/isotope',", '' ) |
|
// ./item -> isotope/js/item |
|
.replace( /'.\//g, "'isotope/js/" ); |
|
contents = contents.replace( definition, fixDefinition ); |
|
grunt.file.write( outFile, contents ); |
|
grunt.log.writeln( 'Edited ' + outFile ); |
|
}); |
|
|
|
grunt.registerTask( 'default', [ |
|
'jshint', |
|
'requirejs', |
|
'pkgd-edit', |
|
'uglify' |
|
]); |
|
|
|
};
|
|
|