index.html.itex: Claim my stuff (the pyafm stack and sawsim)
[reveal.js.git] / Gruntfile.js
index 22502f616b6afc04772fc26c6b6b62e890a493f7..892469a4e40641af1bf57d292a71e5c28b7373a7 100644 (file)
@@ -15,10 +15,6 @@ module.exports = function(grunt) {
                                ' */'
                },
 
-               jshint: {
-                       files: [ 'Gruntfile.js', 'js/reveal.js' ]
-               },
-
                // Tests will be added soon
                qunit: {
                        files: [ 'test/**/*.html' ]
@@ -42,6 +38,21 @@ module.exports = function(grunt) {
                        }
                },
 
+               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/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,
@@ -54,18 +65,45 @@ module.exports = function(grunt) {
                                undef: true,
                                eqnull: true,
                                browser: true,
-                               expr: true
+                               expr: true,
+                               globals: {
+                                       head: false,
+                                       module: false,
+                                       console: false
+                               }
                        },
-                       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: {
-                       files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
-                       tasks: 'default'
+                       main: {
+                               files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
+                               tasks: 'default'
+                       },
+                       theme: {
+                               files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
+                               tasks: 'themes'
+                       }
                }
 
        });
@@ -75,8 +113,20 @@ module.exports = function(grunt) {
        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' ] );
 
+       // Theme task
+       grunt.registerTask( 'themes', [ 'sass' ] );
+
+       // Package presentation to archive
+       grunt.registerTask( 'package', [ 'default', 'zip' ] );
+
+       // Serve presentation locally
+       grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
+
 };