add extensions
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
/**
|
||||
* 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();
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user