Skip to content

Commit

Permalink
Merge branch 'dev' of https://github.com/theone1984/reveal.js into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
hakimel committed Nov 26, 2013
2 parents 544020b + 08808ab commit 75845a9
Showing 1 changed file with 63 additions and 51 deletions.
114 changes: 63 additions & 51 deletions js/reveal.js
Original file line number Diff line number Diff line change
Expand Up @@ -242,58 +242,70 @@ var Reveal = (function(){

}

/**
* Loads the dependencies of reveal.js. Dependencies are
* defined via the configuration option 'dependencies'
* and will be loaded prior to starting/binding reveal.js.
* Some dependencies may have an 'async' flag, if so they
* will load after reveal.js has been started up.
*/
function load() {

var scripts = [],
scriptsAsync = [];

for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
var s = config.dependencies[i];

// Load if there's no condition or the condition is truthy
if( !s.condition || s.condition() ) {
if( s.async ) {
scriptsAsync.push( s.src );
}
else {
scripts.push( s.src );
}

// Extension may contain callback functions
if( typeof s.callback === 'function' ) {
head.ready( s.src.match( /([\w\d_\-]*)\.?js$|[^\\\/]*$/i )[0], s.callback );
}
}
}

// Called once synchronous scripts finish loading
function proceed() {
if( scriptsAsync.length ) {
// Load asynchronous scripts
head.js.apply( null, scriptsAsync );
}

start();
}

if( scripts.length ) {
head.ready( proceed );

// Load synchronous scripts
head.js.apply( null, scripts );
}
else {
proceed();
}

}
/**
* Loads the dependencies of reveal.js. Dependencies are
* defined via the configuration option 'dependencies'
* and will be loaded prior to starting/binding reveal.js.
* Some dependencies may have an 'async' flag, if so they
* will load after reveal.js has been started up.
*/
function load() {
var scripts = [],
scriptsAsync = [],
scriptsToApply = 0;

// Called once synchronous scripts finish loading
function proceed() {
if( scriptsAsync.length ) {
// Load asynchronous scripts
head.js.apply( null, scriptsAsync );
}

start();
}

function loadDependency(s) {
head.ready( s.src.match( /([\w\d_\-]*)\.?js$|[^\\\/]*$/i )[0], function() {
// Extension may contain callback functions
if( typeof s.callback === 'function' ) {
s.callback.apply(this);
}

scriptsToApply--;
if (scriptsToApply === 0) {
proceed();
}
});
}

for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
var s = config.dependencies[i];

// Load if there's no condition or the condition is truthy
if( !s.condition || s.condition() ) {
if( s.async ) {
scriptsAsync.push( s.src );
}
else {
scripts.push( s.src );
}

loadDependency(s);
}
}

if( scripts.length ) {
scriptsToApply = scripts.length;

// Load synchronous scripts
head.js.apply( null, scripts );
}
else {
proceed();
}

}

/**
* Starts up reveal.js by binding input events and navigating
Expand Down

0 comments on commit 75845a9

Please sign in to comment.