init
This commit is contained in:
commit
b03965b764
52 changed files with 3576 additions and 0 deletions
|
@ -0,0 +1,109 @@
|
|||
/**
|
||||
* reveal-header
|
||||
* A filter that adds header text and logo.
|
||||
*
|
||||
* MIT License
|
||||
* Copyright (c) 2023-2024 Shafayet Khan Shafee.
|
||||
*/
|
||||
|
||||
function header() {
|
||||
|
||||
// add the header structure as the firstChild of div.reveal-header
|
||||
function add_header() {
|
||||
let header = document.querySelector("div.reveal-header");
|
||||
let reveal = document.querySelector(".reveal");
|
||||
reveal.insertBefore(header, reveal.firstChild);
|
||||
|
||||
let header_title_p_placeholder = document.querySelector('div.header-title > p');
|
||||
let header_title_h2_placeholder = document.createElement('h2');
|
||||
header_title_p_placeholder.replaceWith(header_title_h2_placeholder);
|
||||
|
||||
logo_img = document.querySelector('.header-logo > img');
|
||||
if (logo_img?.getAttribute('src') == null) {
|
||||
if (logo_img?.getAttribute('data-src') != null) {
|
||||
logo_img.src = logo_img?.getAttribute('data-src') || "";
|
||||
logo_img.removeAttribute('data-src');
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
function make_h2_title() {
|
||||
let h2_text = Reveal.getCurrentSlide().getAttribute('data-h2-text');
|
||||
let header_title_placeholder = document.querySelector('div.header-title > h2');
|
||||
header_title_placeholder.innerText = h2_text;
|
||||
|
||||
let header_div = document.querySelector('div.reveal-header');
|
||||
|
||||
if(Reveal.getCurrentSlide().id == 'title-slide' ||
|
||||
Reveal.getCurrentSlide().classList.contains('title-slide') || h2_text == ''
|
||||
) {
|
||||
header_div.style.visibility = 'hidden';
|
||||
} else {
|
||||
header_div.style.visibility = 'visible';
|
||||
header_title_placeholder.style.color = 'white';
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
function linkify_logo(logo, href) {
|
||||
const logo_cloned = logo.cloneNode(true);
|
||||
const link = document.createElement('a');
|
||||
link.href = href;
|
||||
link.target = '_blank';
|
||||
link.appendChild(logo_cloned);
|
||||
logo.replaceWith(link);
|
||||
};
|
||||
|
||||
function get_clean_attrs(elem, attrName) {
|
||||
let attrVal = elem.getAttribute(attrName);
|
||||
if (attrVal != null) {
|
||||
elem.removeAttribute(attrName);
|
||||
}
|
||||
return attrVal;
|
||||
};
|
||||
|
||||
|
||||
if (Reveal.isReady()) {
|
||||
add_header();
|
||||
|
||||
const slides = Reveal.getSlides();
|
||||
slides.forEach(slide => {
|
||||
const h2Element = slide.querySelector('h2');
|
||||
|
||||
if (h2Element) {
|
||||
h2Element.style.display = 'none';
|
||||
const h2Text = h2Element.textContent;
|
||||
slide.setAttribute('data-h2-text', h2Text);
|
||||
} else {
|
||||
slide.setAttribute('data-h2-text', '');
|
||||
};
|
||||
});
|
||||
|
||||
make_h2_title();
|
||||
|
||||
/*************** linkifying the header and footer logo ********************/
|
||||
const header_logo = document.querySelector('div.header-logo');
|
||||
if (header_logo != null) {
|
||||
const header_logo_link = get_clean_attrs(header_logo, 'data-header-logo-link');
|
||||
const footer_logo_link = get_clean_attrs(header_logo, 'data-footer-logo-link');
|
||||
|
||||
if (header_logo_link != null) {
|
||||
const header_logo_img = document.querySelector('div.header-logo').firstElementChild;
|
||||
linkify_logo(header_logo_img, header_logo_link);
|
||||
};
|
||||
|
||||
};
|
||||
/****************************** END ***************************************/
|
||||
|
||||
Reveal.on( 'slidechanged', event => {
|
||||
make_h2_title();
|
||||
});
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
window.addEventListener("load", (event) => {
|
||||
header();
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue