formations/javascript/slideshow-bootstrap.js

45 lines
1.1 KiB
JavaScript

(function(SLIDES) {
var remaining = SLIDES.length;
var slidesContent = [];
SLIDES.forEach(function(slideName, index) {
fetchSlide(slideName, slideLoadedHandler.bind(null, index));
});
function slideLoadedHandler(index, content) {
remaining--;
slidesContent[index] = content;
if(remaining === 0) {
createSlideShow();
}
}
function createSlideShow() {
remark.create({
source: slidesContent.join('\n---\n'),
highlightStyle: 'github',
highlightLanguage: 'javascript'
});
}
function fetchSlide(slideName, cb) {
var req = new XMLHttpRequest();
req.open('GET', slideName+'.md', true);
req.onload = function (e) {
req.onload = null;
if (req.readyState === 4) {
if (req.status === 200) {
var content = req.responseText.replace(/\r\n/g, '\n');
return cb(content);
} else {
console.error('Impossible de charger "'+slideName+'.md" !', req.statusText);
return cb(slideName+'.md');
}
}
};
req.send(null);
}
}(SLIDES = SLIDES || []));