/** * reveal-header * A filter that adds header text and logo. * * MIT License * Copyright (c) 2023 Shafayet Khan Shafee. */ function add_sc_sb_title() { function get_title() { var h1_arr = []; var h2_arr = []; Reveal.getSlides().forEach(el => { if (!el.matches('#title-slide')) { var h1 = el.querySelector('.title-slide h1')?.innerText; var h2 = el.querySelector('.title-slide h2')?.innerText; h1_arr.push(h1); h2_arr.push(h2); }; }); return [h1_arr, h2_arr] }; function fill_array(ar) { let last_val = ar[0] || " "; for (let i = 1; i < ar.length; i++) { if (typeof ar[i] === 'undefined') { ar[i] = last_val; } else { last_val = ar[i]; } } return ar }; if (Reveal.isReady()) { if (document.querySelector('div.reveal-header img').getAttribute('src').length == 0) { document.querySelector('div.reveal-header').classList.add('no-logo') } var [h1_array, h2_array] = get_title(); var filled_h1_array = fill_array(h1_array); var filled_h2_array = fill_array(h2_array); Reveal.getSlides().forEach((el, idx) => { if (!el.matches('#title-slide')) { el.setAttribute('data-sc-title', filled_h1_array[(idx - 1)]) el.setAttribute('data-sb-title', filled_h2_array[(idx - 1)]) } }); Reveal.on( 'slidechanged', event => { let sp = Reveal.getSlidesElement().querySelector('.stack.present'); if (sp != null) { let header = document.querySelector("div.reveal-header"); // handling h1 section title (`.sc-title`) var section_text = event.currentSlide.getAttribute('data-sc-title') || " "; if (event.currentSlide.matches('.title-slide.level1')) { header.querySelector('.sc-title p').innerText = ""; } else if (event.currentSlide.matches('.title-slide.level2')) { header.querySelector('.sc-title p').innerText = section_text; } else { header.querySelector('.sc-title p').innerText = section_text; }; // handling h2 section title (`.sb-title`) var sbsection_text = event.currentSlide.getAttribute('data-sb-title') || " "; if (event.currentSlide.matches('.title-slide.level1')) { header.querySelector('.sb-title p').innerText = ""; } else if (event.currentSlide.matches('.title-slide.level2')) { header.querySelector('.sb-title p').innerText = ""; } else { header.querySelector('.sb-title p').innerText = sbsection_text; }; }; }); }; }; window.addEventListener("load", (event) => { add_sc_sb_title(); });