add grunt.js build file (closes #235)
This commit is contained in:
parent
8e79f8592a
commit
d6d0f40c5e
|
@ -285,12 +285,19 @@ Then:
|
|||
3. Run ```node plugin/notes-server```
|
||||
|
||||
|
||||
## Folder Structure
|
||||
## Development Environment
|
||||
|
||||
reveal.js is built using the task-based command line build tool (grunt.js)[http://gruntjs.com]. Installation instructions here https://github.com/gruntjs/grunt#installing-grunt. With Node.js and grunt installed, you need to start by running ```npm install``` in the reveal.js root. When the dependencies have been installed you should run ```grunt watch``` to start monitoring files for changes.
|
||||
|
||||
If you want to customize reveal.js without running grunt.js you can alter the HTML to point to the uncompressed source files (css/reveal.css/js/reveal.js).
|
||||
|
||||
### Folder Structure
|
||||
- **css/** Core styles without which the project does not function
|
||||
- **js/** Like above but for JavaScript
|
||||
- **plugin/** Components that have been developed as extensions to reveal.js
|
||||
- **lib/** All other third party assets (JavaScript, CSS, fonts)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
MIT licensed
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,83 @@
|
|||
/* global module:false */
|
||||
module.exports = function(grunt) {
|
||||
|
||||
// Project configuration
|
||||
grunt.initConfig({
|
||||
pkg: '<json:package.json>',
|
||||
|
||||
inputJS: 'js/reveal.js',
|
||||
inputCSS: 'css/reveal.css',
|
||||
|
||||
outputJS: 'js/reveal.min.js',
|
||||
outputCSS: 'css/reveal.min.css',
|
||||
|
||||
meta: {
|
||||
version: '2.2',
|
||||
banner:
|
||||
'/*!\n' +
|
||||
' * reveal.js <%= meta.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
|
||||
' * http://lab.hakim.se/reveal-js\n' +
|
||||
' * MIT licensed\n' +
|
||||
' *\n' +
|
||||
' * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n' +
|
||||
' */'
|
||||
},
|
||||
|
||||
lint: {
|
||||
files: [ 'grunt.js', '<%= inputJS %>' ]
|
||||
},
|
||||
|
||||
// Tests will be added soon
|
||||
qunit: {
|
||||
files: [ 'test/**/*.html' ]
|
||||
},
|
||||
|
||||
min: {
|
||||
dist: {
|
||||
src: [ '<banner:meta.banner>', '<%= inputJS %>' ],
|
||||
dest: '<%= outputJS %>'
|
||||
}
|
||||
},
|
||||
|
||||
mincss: {
|
||||
compress: {
|
||||
files: {
|
||||
'<%= outputCSS %>': [ '<%= inputCSS %>' ]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
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
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
files: [ 'grunt.js', '<%= inputJS %>', '<%= inputCSS %>' ],
|
||||
tasks: 'default'
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// Dependencies
|
||||
grunt.loadNpmTasks( 'grunt-contrib-mincss' );
|
||||
|
||||
// Default task
|
||||
grunt.registerTask( 'default', [ 'lint', 'mincss', 'min' ] );
|
||||
|
||||
};
|
|
@ -12,7 +12,7 @@
|
|||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
|
||||
<link rel="stylesheet" href="css/reveal.css">
|
||||
<link rel="stylesheet" href="css/reveal.min.css">
|
||||
<link rel="stylesheet" href="css/theme/default.css" id="theme">
|
||||
|
||||
<!-- For syntax highlighting -->
|
||||
|
@ -164,6 +164,7 @@
|
|||
<a href="?theme=beige#/themes">Beige</a> -
|
||||
<a href="?theme=simple#/themes">Simple</a> -
|
||||
<a href="?theme=serif#/themes">Serif</a> -
|
||||
<a href="?theme=night#/night">Night</a> -
|
||||
<a href="?#/themes">Default</a>
|
||||
</p>
|
||||
<p>
|
||||
|
|
65
js/reveal.js
65
js/reveal.js
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* reveal.js 2.2 r45
|
||||
* reveal.js
|
||||
* http://lab.hakim.se/reveal-js
|
||||
* MIT licensed
|
||||
*
|
||||
|
@ -359,12 +359,12 @@ var Reveal = (function(){
|
|||
}
|
||||
|
||||
if ( config.controls && dom.controls ) {
|
||||
dom.controlsLeft.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateLeft ), false ); } );
|
||||
dom.controlsRight.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateRight ), false ); } );
|
||||
dom.controlsUp.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateUp ), false ); } );
|
||||
dom.controlsDown.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateDown ), false ); } );
|
||||
dom.controlsPrev.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigatePrev ), false ); } );
|
||||
dom.controlsNext.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateNext ), false ); } );
|
||||
dom.controlsLeft.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateLeft ), false ); } );
|
||||
dom.controlsRight.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateRight ), false ); } );
|
||||
dom.controlsUp.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateUp ), false ); } );
|
||||
dom.controlsDown.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateDown ), false ); } );
|
||||
dom.controlsPrev.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigatePrev ), false ); } );
|
||||
dom.controlsNext.forEach( function( el ) { el.addEventListener( 'click', preventAndForward( navigateNext ), false ); } );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -384,12 +384,12 @@ var Reveal = (function(){
|
|||
}
|
||||
|
||||
if ( config.controls && dom.controls ) {
|
||||
dom.controlsLeft.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateLeft ), false ); } );
|
||||
dom.controlsRight.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateRight ), false ); } );
|
||||
dom.controlsUp.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateUp ), false ); } );
|
||||
dom.controlsDown.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateDown ), false ); } );
|
||||
dom.controlsPrev.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigatePrev ), false ); } );
|
||||
dom.controlsNext.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateNext ), false ); } );
|
||||
dom.controlsLeft.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateLeft ), false ); } );
|
||||
dom.controlsRight.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateRight ), false ); } );
|
||||
dom.controlsUp.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateUp ), false ); } );
|
||||
dom.controlsDown.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateDown ), false ); } );
|
||||
dom.controlsPrev.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigatePrev ), false ); } );
|
||||
dom.controlsNext.forEach( function( el ) { el.removeEventListener( 'click', preventAndForward( navigateNext ), false ); } );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -542,7 +542,7 @@ var Reveal = (function(){
|
|||
*/
|
||||
function getPreviousVerticalIndex( stack ) {
|
||||
if( stack && stack.classList.contains( 'stack' ) ) {
|
||||
return parseInt( stack.getAttribute( 'data-previous-indexv' ) || 0 );
|
||||
return parseInt( stack.getAttribute( 'data-previous-indexv' ) || 0, 10 );
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -912,9 +912,9 @@ var Reveal = (function(){
|
|||
// autoSlide value otherwise use the global configured time
|
||||
var slideAutoSlide = slides[index].getAttribute( 'data-autoslide' );
|
||||
if( slideAutoSlide ) {
|
||||
autoSlide = parseInt( slideAutoSlide );
|
||||
autoSlide = parseInt( slideAutoSlide, 10 );
|
||||
} else {
|
||||
autoSlide = config.autoSlide
|
||||
autoSlide = config.autoSlide;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -950,17 +950,23 @@ var Reveal = (function(){
|
|||
for( var j = 0; j < verticalSlides.length; j++ ) {
|
||||
|
||||
// Stop as soon as we arrive at the present
|
||||
if( verticalSlides[j].classList.contains( 'present' ) ) break mainLoop;
|
||||
if( verticalSlides[j].classList.contains( 'present' ) ) {
|
||||
break mainLoop;
|
||||
}
|
||||
|
||||
pastCount++
|
||||
pastCount++;
|
||||
|
||||
}
|
||||
|
||||
// Stop as soon as we arrive at the present
|
||||
if( horizontalSlide.classList.contains( 'present' ) ) break;
|
||||
if( horizontalSlide.classList.contains( 'present' ) ) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Don't count the wrapping section for vertical slides
|
||||
if( horizontalSlide.classList.contains( 'stack' ) === false ) pastCount++;
|
||||
if( horizontalSlide.classList.contains( 'stack' ) === false ) {
|
||||
pastCount++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -987,14 +993,14 @@ var Reveal = (function(){
|
|||
} );
|
||||
|
||||
// Add the 'enabled' class to the available routes
|
||||
if( routes.left ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.right ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.up ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.down ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.left ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.right ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.up ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.down ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
|
||||
// Prev/next buttons
|
||||
if( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
if( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'enabled' ); } );
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1268,7 +1274,7 @@ var Reveal = (function(){
|
|||
// Check if there's a focused element that could be using
|
||||
// the keyboard
|
||||
var activeElement = document.activeElement;
|
||||
var hasFocus = !!( document.activeElement && ( document.activeElement.type || document.activeElement.href || document.activeElement.contentEditable !== 'inherit' ) );
|
||||
var hasFocus = !!( document.activeElement && ( document.activeElement.type || document.activeElement.href || document.activeElement.contentEditable !== 'inherit' ) );
|
||||
|
||||
// Disregard the event if there's a focused element or a
|
||||
// keyboard modifier key is present
|
||||
|
@ -1479,7 +1485,10 @@ var Reveal = (function(){
|
|||
|
||||
deactivateOverview();
|
||||
|
||||
slide( parseInt( this.getAttribute( 'data-index-h' ) ), parseInt( this.getAttribute( 'data-index-v' ) ) );
|
||||
var h = parseInt( event.target.getAttribute( 'data-index-h' ), 10 ),
|
||||
v = parseInt( event.target.getAttribute( 'data-index-v' ), 10 );
|
||||
|
||||
slide( h, v );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
15
package.json
15
package.json
|
@ -1,8 +1,13 @@
|
|||
{
|
||||
"author": "Hakim El Hattab",
|
||||
"name": "reveal.js",
|
||||
"description": "HTML5 Slideware with Presenter Notes",
|
||||
"version": "1.5.0",
|
||||
"version": "2.2.0",
|
||||
"description": "The HTML Presentation Framework",
|
||||
"homepage": "http://lab.hakim.se/reveal-js",
|
||||
"author": {
|
||||
"name": "Hakim El Hattab",
|
||||
"email": "hakim.elhattab@gmail.com",
|
||||
"web": "http://hakim.se"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/hakimel/reveal.js.git"
|
||||
|
@ -16,5 +21,7 @@
|
|||
"socket.io" : "~0.9.6",
|
||||
"mustache" : "~0.4.0"
|
||||
},
|
||||
"devDependencies": {}
|
||||
"devDependencies": {
|
||||
"grunt-contrib-mincss": "~0.3.2"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue