45 lines
1.1 KiB
JavaScript
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 || []));
|