window.addEventListener('load', function(evt) { let main = document.querySelector('main'); let nav = document.querySelector('nav'); let wrapper = document.querySelector('div.wrapper'); let hash = window.location.hash.slice(1, window.location.hash.length); if (hash.length == 0) { main.innerHTML = '

No presentation selected!

'; } else { fetch(`presentations/${hash}/default.pug`).then(function(response) { response.text().then(function(template) { if (response.status == 200) { main.innerHTML = jade.render(template, {}); initSlideshow(); } else { main.innerHTML = '

Presentation does not exists!

'; } }).catch(function(error) { console.log(error); }); }); fetch(`presentations/${hash}/meta.json`).then(function(response) { response.json().then(function(data) { document.title = data.title; }).catch(function(error) { console.log(error); }); }); } function initSlideshow() { // mathjax formulas MathJax.Hub.Config({ //displayAlign: 'left', extensions: ['tex2jax.js'], jax: ['input/TeX', 'output/SVG'], tex2jax: { skipTags: ['script', 'noscript', 'style', 'textarea', 'code'], inlineMath: [ ['$', '$'], ["\\(", "\\)"] ], displayMath: [ ['$$', '$$'], ["\\[", "\\]"] ], } }); MathJax.Hub.Configured(); // syntax highlighting Prism.highlightAll(); // initializes slides function showSlide(slides, op) { let tmpIdx = currentIdx + op; if (tmpIdx >= 0 && tmpIdx < slides.length) { slides.forEach(function(slide) { slide.classList.add('hide'); }); slides[tmpIdx].classList.remove('hide'); nav.innerHTML = `${tmpIdx+1} / ${slides.length}`; currentIdx = tmpIdx; } } // fixes images relative path document.querySelectorAll('img').forEach(function(image) { image.src = `presentations/${hash}/${image.getAttribute('src')}`; }); let slides = document.querySelectorAll('section'); let currentIdx = 0; showSlide(slides, currentIdx); document.addEventListener('keydown', function(evt) { switch (evt.code) { case 'ArrowRight': { showSlide(slides, 1); break; } case 'ArrowLeft': { showSlide(slides, -1); break; } case 'KeyF': { if (wrapper.requestFullscreen) { wrapper.requestFullscreen(); } else if (wrapper.mozRequestFullScreen) { wrapper.mozRequestFullScreen(); } else if (wrapper.webkitRequestFullscreen) { wrapper.webkitRequestFullscreen(); } else if (wrapper.msRequestFullscreen) { wrapper.msRequestFullscreen(); } break; } } }, false); //var elem = document.getElementById("myvideo"); //if (elem.requestFullscreen) { // elem.requestFullscreen(); //} } }, false); // hide mouse after 5seconds (function() { var mouseTimer = null, cursorVisible = true; function disappearCursor() { mouseTimer = null; document.body.style.cursor = 'none'; cursorVisible = false; } document.onmousemove = function() { if (mouseTimer) { window.clearTimeout(mouseTimer); } if (!cursorVisible) { document.body.style.cursor = 'default'; cursorVisible = true; } mouseTimer = window.setTimeout(disappearCursor, 2000); }; })();