tubestats-presentation/Gruntfile.js

188 lines
3.5 KiB
JavaScript
Raw Normal View History

2012-11-11 15:01:05 +00:00
/* global module:false */
module.exports = function(grunt) {
var port = grunt.option('port') || 8000;
var root = grunt.option('root') || '.';
if (!Array.isArray(root)) root = [root];
2012-11-11 15:01:05 +00:00
// Project configuration
grunt.initConfig({
2013-02-27 07:26:24 +00:00
pkg: grunt.file.readJSON('package.json'),
2012-11-11 15:01:05 +00:00
meta: {
2013-02-27 18:20:24 +00:00
banner:
2012-11-11 15:01:05 +00:00
'/*!\n' +
2013-02-27 07:26:24 +00:00
' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
2012-11-11 15:01:05 +00:00
' * http://lab.hakim.se/reveal-js\n' +
' * MIT licensed\n' +
' *\n' +
' * Copyright (C) 2016 Hakim El Hattab, http://hakim.se\n' +
2012-11-11 15:01:05 +00:00
' */'
},
qunit: {
files: [ 'test/*.html' ]
2012-11-11 15:01:05 +00:00
},
2013-02-27 07:26:24 +00:00
uglify: {
2013-02-27 18:20:24 +00:00
options: {
banner: '<%= meta.banner %>\n'
},
build: {
src: 'js/reveal.js',
dest: 'js/reveal.min.js'
}
2012-11-11 15:01:05 +00:00
},
2013-03-04 21:34:47 +00:00
sass: {
2014-10-06 07:51:12 +00:00
core: {
2013-03-04 21:34:47 +00:00
files: {
'css/reveal.css': 'css/reveal.scss',
2014-10-06 07:51:12 +00:00
}
},
themes: {
files: [
{
expand: true,
cwd: 'css/theme/source',
src: ['*.scss'],
dest: 'css/theme',
ext: '.css'
}
]
2013-03-09 00:29:15 +00:00
}
2013-03-04 21:34:47 +00:00
},
autoprefixer: {
dist: {
src: 'css/reveal.css'
}
},
cssmin: {
compress: {
files: {
'css/reveal.min.css': [ 'css/reveal.css' ]
}
}
},
2012-11-11 15:01:05 +00:00
jshint: {
options: {
curly: false,
eqeqeq: true,
immed: true,
esnext: true,
2012-11-11 15:01:05 +00:00
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
eqnull: true,
browser: true,
2013-03-09 00:29:15 +00:00
expr: true,
globals: {
head: false,
module: false,
2013-11-27 18:16:03 +00:00
console: false,
2014-04-09 00:08:21 +00:00
unescape: false,
define: false,
exports: false
2013-03-09 00:29:15 +00:00
}
2012-11-11 15:01:05 +00:00
},
2013-03-09 00:29:15 +00:00
files: [ 'Gruntfile.js', 'js/reveal.js' ]
2012-11-11 15:01:05 +00:00
},
connect: {
server: {
options: {
port: port,
base: root,
2015-02-25 14:35:30 +00:00
livereload: true,
open: true
}
},
},
zip: {
'reveal-js-presentation.zip': [
'index.html',
'css/**',
'js/**',
'lib/**',
'images/**',
'plugin/**',
2015-10-26 13:42:12 +00:00
'**.md'
]
},
2012-11-11 15:01:05 +00:00
watch: {
2014-10-06 07:51:12 +00:00
js: {
files: [ 'Gruntfile.js', 'js/reveal.js' ],
tasks: 'js'
2013-03-04 21:34:47 +00:00
},
theme: {
files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
2014-10-06 07:51:12 +00:00
tasks: 'css-themes'
},
css: {
2014-10-06 07:51:12 +00:00
files: [ 'css/reveal.scss' ],
tasks: 'css-core'
2014-09-12 20:49:13 +00:00
},
2015-02-25 14:35:30 +00:00
html: {
files: root.map(path => path + '/*.html')
},
2015-10-26 13:42:12 +00:00
markdown: {
files: root.map(path => path + '/*.md')
2016-01-08 12:58:35 +00:00
},
2015-07-02 05:51:01 +00:00
options: {
livereload: true
2015-10-26 13:42:12 +00:00
}
},
retire: {
2016-06-28 13:43:11 +00:00
js: ['js/reveal.js', 'lib/js/*.js', 'plugin/**/*.js'],
node: ['.'],
options: {}
2012-11-11 15:01:05 +00:00
}
});
2013-02-03 16:27:28 +00:00
2012-11-11 15:01:05 +00:00
// Dependencies
2013-08-22 23:06:41 +00:00
grunt.loadNpmTasks( 'grunt-contrib-qunit' );
2013-02-27 07:26:24 +00:00
grunt.loadNpmTasks( 'grunt-contrib-jshint' );
grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
grunt.loadNpmTasks( 'grunt-contrib-uglify' );
grunt.loadNpmTasks( 'grunt-contrib-watch' );
2014-07-17 15:11:22 +00:00
grunt.loadNpmTasks( 'grunt-sass' );
grunt.loadNpmTasks( 'grunt-contrib-connect' );
grunt.loadNpmTasks( 'grunt-autoprefixer' );
grunt.loadNpmTasks( 'grunt-zip' );
2016-06-28 13:43:11 +00:00
grunt.loadNpmTasks( 'grunt-retire' );
2012-11-11 15:01:05 +00:00
// Default task
2014-10-06 07:51:12 +00:00
grunt.registerTask( 'default', [ 'css', 'js' ] );
// JS task
grunt.registerTask( 'js', [ 'jshint', 'uglify', 'qunit' ] );
// Theme CSS
grunt.registerTask( 'css-themes', [ 'sass:themes' ] );
2012-11-11 15:01:05 +00:00
2014-10-06 07:51:12 +00:00
// Core framework CSS
grunt.registerTask( 'css-core', [ 'sass:core', 'autoprefixer', 'cssmin' ] );
2013-03-04 21:34:47 +00:00
2014-10-06 07:51:12 +00:00
// All CSS
grunt.registerTask( 'css', [ 'sass', 'autoprefixer', 'cssmin' ] );
// Package presentation to archive
grunt.registerTask( 'package', [ 'default', 'zip' ] );
// Serve presentation locally
grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
// Run tests
grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
2012-11-11 15:01:05 +00:00
};