123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- /**
- * Owl Carousel
- *
- * Bartosz Wojciechowski
- *
- * Copyright (c) 2014
- * Licensed under the MIT license.
- */
- module.exports = function(grunt) {
-
- if (!grunt.file.isDir('bower_components')) {
- grunt.fail.fatal('>> Please run "bower install" before continuing.');
- }
- require('load-grunt-tasks')(grunt);
-
- grunt
- .initConfig({
- pkg: grunt.file.readJSON('package.json'),
- app: grunt.file.readJSON('_config.json'),
- vendor: 'bower_components',
- banner: '/**\n' + ' * Owl Carousel v<%= pkg.version %>\n'
- + ' * Copyright 2013-<%= grunt.template.today("yyyy") %> <%= pkg.author.name %>\n'
- + ' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' + ' */\n',
-
- // assemble
- assemble: {
- options: {
- flatten: false,
- expand: true,
- production: false,
- assets: '<%= app.docs.dest %>/assets',
- postprocess: require('pretty'),
-
- // metadata
- pkg: '<%= pkg %>',
- app: '<%= app %>',
- data: [ '<%= app.docs.src %>/data/*.{json,yml}' ],
-
- // templates
- partials: '<%= app.docs.templates %>/partials/*.hbs',
- layoutdir: '<%= app.docs.layouts %>/',
-
- // extensions
- helpers: '<%= app.docs.src %>/helpers/*.js'
- },
- index: {
- options: {
- layout: 'home.hbs'
- },
- files: [ {
- expand: true,
- cwd: '<%= app.docs.pages %>/',
- src: '*.hbs',
- dest: '<%= app.docs.dest %>/'
- } ]
- },
- demos: {
- options: {
- layout: 'demos.hbs'
- },
- files: [ {
- expand: true,
- cwd: '<%= app.docs.pages %>/demos/',
- src: '*.hbs',
- dest: '<%= app.docs.dest %>/demos'
- } ]
- },
- docs: {
- options: {
- layout: 'docs.hbs'
- },
- files: [ {
- expand: true,
- cwd: '<%= app.docs.pages %>/docs/',
- src: '*.hbs',
- dest: '<%= app.docs.dest %>/docs'
- } ]
- }
- },
-
- // clean
- clean: {
- docs: [ '<%= app.docs.dest %>/**/*.*' ],
- dist: [ 'dist/**/*.*' ]
- },
-
- // sass
- sass: {
- docs: {
- options: {
- outputStyle: 'compressed',
- includePaths: [ '<%= app.docs.src %>/assets/scss/', 'bower_components/foundation/scss' ]
- },
- files: {
- '<%= app.docs.dest %>/assets/css/docs.theme.min.css': '<%= app.docs.src %>/assets/scss/docs.theme.scss'
- }
- },
- dist: {
- options: {
- outputStyle: 'nested'
- },
- files: [ {
- expand: true,
- flatten: true,
- cwd: 'src/scss/',
- src: '*scss',
- dest: 'src/css/',
- ext: '.css',
- extDot: 'last'
- } ]
- }
- },
-
- concat: {
- dist: {
- files: {
- 'dist/assets/owl.carousel.css': [ 'src/css/*.css', '!src/css/owl.theme*.css' ],
- 'dist/<%= pkg.name %>.js': '<%= app.src.scripts %>'
- }
- }
- },
-
- cssmin: {
- dist: {
- files: {
- 'dist/assets/<%= pkg.name %>.min.css': [ 'src/css/*.css', '!src/css/owl.theme*.css' ],
- 'dist/assets/owl.theme.default.min.css': 'src/css/owl.theme.default.css',
- 'dist/assets/owl.theme.green.min.css': 'src/css/owl.theme.green.css'
- }
- }
- },
-
- jshint: {
- options: {
- jshintrc: 'src/js/.jshintrc'
- },
- dist: {
- src: [ '<%= app.src.scripts %>', 'Gruntfile.js' ]
- }
- },
-
- qunit: {
- dist: [ 'test/*.html' ]
- },
-
- jscs: {
- options: {
- config: 'src/js/.jscsrc',
- reporter: 'text.js',
- reporterOutput: 'jscs.report.txt'
- },
- dist: {
- src: [ '<%= app.src.scripts %>', 'Gruntfile.js' ]
- }
- },
-
- uglify: {
- dist: {
- files: {
- 'dist/<%= pkg.name %>.min.js': '<%= app.src.scripts %>'
- }
- }
- },
-
- // copy
- copy: {
- themes: {
- expand: true,
- flatten: true,
- cwd: 'src/css/',
- src: [ 'owl.theme.*' ],
- dest: 'dist/assets'
- },
- distImages: {
- expand: true,
- flatten: true,
- cwd: 'src/',
- src: [ 'img/*.*' ],
- dest: 'dist/assets'
- },
-
- distToDocs: {
- expand: true,
- cwd: 'dist/',
- src: [ '**/*.*' ],
- dest: '<%= app.docs.dest %>/assets/owlcarousel'
- },
-
- srcToDocs: {
- expand: true,
- cwd: 'src/js',
- src: [ '**/*.js' ],
- dest: '<%= app.docs.dest %>/assets/owlcarousel/src'
- },
-
- docsAssets: {
- expand: true,
- cwd: '<%= app.docs.src %>/assets/',
- src: [ 'css/*.css', 'vendors/*.js', 'vendors/*.map', 'img/*.*', 'js/*.*' ],
- dest: '<%= app.docs.dest %>/assets/'
- },
- readme: {
- files: [ {
- 'dist/LICENSE': 'LICENSE',
- 'dist/README.md': 'README.md'
- } ]
- }
- },
-
- // connect
- connect: {
- options: {
- port: 9000,
- open: true,
- livereload: true,
- hostname: 'localhost'
- },
- docs: {
- options: {
- base: "<%= app.docs.dest %>"
- }
- }
- },
-
- // watch
- watch: {
- options: {
- livereload: true
- },
- templates: {
- files: [ '<%= app.docs.templates %>/**/*.hbs' ],
- tasks: [ 'assemble' ]
- },
- sass: {
- files: [ '<%= app.docs.src %>/assets/**/*.scss' ],
- tasks: [ 'sass:docs' ]
- },
- sassDist: {
- files: [ 'src/**/*.scss' ],
- tasks: [ 'sass:dist', 'concat:dist', 'cssmin:dist', 'copy:themes','copy:distToDocs' ]
- },
- jsDocs: {
- files: [ '<%= app.docs.src %>/assets/**/*.js' ],
- tasks: [ 'copy:docsAssets' ]
- },
- js: {
- files: [ 'src/**/*.js' ],
- tasks: [ 'jscs:dist', 'jshint:dist', 'qunit:dist', 'uglify:dist', 'concat:dist', 'copy:distToDocs', 'copy:srcToDocs' ]
- },
- helpers: {
- files: [ '<%= app.src %>/helpers/*.js' ],
- tasks: [ 'assemble' ]
- },
- test: {
- files: [ 'test/*.html', 'test/unit/*.js' ],
- tasks: [ 'qunit:dist' ]
- }
- },
-
- // compress zip
- compress: {
- zip: {
- options: {
- archive: 'docs/download/owl.carousel.<%= pkg.version %>.zip'
- },
- files: [ {
- expand: true,
- cwd: 'dist/',
- src: [ '**' ],
- dest: 'owl.carousel.<%= pkg.version %>'
- } ]
- }
- },
-
- // publish to github pages
- 'gh-pages': {
- options: {
- base: 'docs'
- },
- src: '**/*'
- }
- });
-
- grunt.loadNpmTasks('assemble');
-
- // tasks
- grunt.registerTask('dist', [ 'clean:dist', 'sass:dist', 'concat:dist', 'cssmin:dist', 'copy:themes', 'copy:distImages', 'jscs:dist', 'uglify:dist', 'copy:readme' ]);
-
- grunt.registerTask('docs', [ 'dist', 'clean:docs', 'assemble', 'sass:docs', 'copy:docsAssets', 'copy:distToDocs', 'zip' ]);
-
- grunt.registerTask('test', [ 'jshint:dist', 'qunit:dist' ]);
-
- grunt.registerTask('default', [ 'dist', 'docs', 'test' ]);
-
- grunt.registerTask('serve', [ 'connect:docs', 'watch' ]);
-
- grunt.registerTask('zip', [ 'compress' ]);
-
- grunt.registerTask('deploy', [ 'docs', 'gh-pages' ]);
-
- };
|