| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | /* global module:false */module.exports = function(grunt) {	// Project configuration	grunt.initConfig({		pkg: grunt.file.readJSON('package.json'),		meta: {			banner:				'/*!\n' +				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +				' * http://lab.hakim.se/reveal-js\n' +				' * MIT licensed\n' +				' *\n' +				' * Copyright (C) 2013 Hakim El Hattab, http://hakim.se\n' +				' */'		},		// Tests will be added soon		qunit: {			files: [ 'test/*.html' ]		},		uglify: {			options: {				banner: '<%= meta.banner %>\n'			},			build: {				src: 'js/reveal.js',				dest: 'js/reveal.min.js'			}		},		cssmin: {			compress: {				files: {					'css/reveal.min.css': [ 'css/reveal.css' ]				}			}		},		sass: {			main: {				files: {					'css/theme/default.css': 'css/theme/source/default.scss',					'css/theme/beige.css': 'css/theme/source/beige.scss',					'css/theme/night.css': 'css/theme/source/night.scss',					'css/theme/osi.css': 'css/theme/source/osi.scss',					'css/theme/serif.css': 'css/theme/source/serif.scss',					'css/theme/simple.css': 'css/theme/source/simple.scss',					'css/theme/sky.css': 'css/theme/source/sky.scss',					'css/theme/moon.css': 'css/theme/source/moon.scss',					'css/theme/solarized.css': 'css/theme/source/solarized.scss'				}			}		},		jshint: {			options: {				curly: false,				eqeqeq: true,				immed: true,				latedef: true,				newcap: true,				noarg: true,				sub: true,				undef: true,				eqnull: true,				browser: true,				expr: true,				globals: {					head: false,					module: false,					console: false				}			},			files: [ 'Gruntfile.js', 'js/reveal.js' ]		},		connect: {			server: {				options: {					port: 8000,					base: '.'				}			}		},		zip: {			'reveal-js-presentation.zip': [				'index.html',				'css/**',				'js/**',				'lib/**',				'images/**',				'plugin/**'			]		},		watch: {			main: {				files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],				tasks: 'default'			},			theme: {				files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],				tasks: 'themes'			}		}	});	// Dependencies	grunt.loadNpmTasks( 'grunt-contrib-qunit' );	grunt.loadNpmTasks( 'grunt-contrib-jshint' );	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );	grunt.loadNpmTasks( 'grunt-contrib-uglify' );	grunt.loadNpmTasks( 'grunt-contrib-watch' );	grunt.loadNpmTasks( 'grunt-contrib-sass' );	grunt.loadNpmTasks( 'grunt-contrib-connect' );	grunt.loadNpmTasks( 'grunt-zip' );	// Default task	grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] );	// Theme task	grunt.registerTask( 'themes', [ 'sass' ] );	// Package presentation to archive	grunt.registerTask( 'package', [ 'default', 'zip' ] );	// Serve presentation locally	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );	// Run tests	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );};
 |