-
Notifications
You must be signed in to change notification settings - Fork 0
/
bsbase-min.js
53 lines (46 loc) · 2.03 KB
/
bsbase-min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
const body = document.body;
const wrapperEl = document.querySelector(".wrapper");
const headerEl = document.getElementById('header');
const mainEl = document.getElementById('main');
const footerEl = document.getElementById('footer');
const footerCopyrightEl = document.getElementById('footer-copyright');
const footerRepoEl = document.getElementById('footer-repo');
const brandingEl = document.getElementById('branding');
const themeSwitcher = document.getElementById('theme-switcher');
// Theme switcher
document.addEventListener('DOMContentLoaded', () => {
function setTheme(theme) {
const body = document.body;
const themeColorMeta = document.querySelector('meta[name="theme-color"]');
if (theme === 'dark') {
body.setAttribute('data-theme', 'dark');
themeSwitcher.innerText = "LIGHT";
themeColorMeta.content = "#202020";
} else {
body.removeAttribute('data-theme');
themeSwitcher.innerText = "DARK";
themeColorMeta.content = "#FFFFFF";
}
}
// Load saved theme from local storage
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
setTheme(savedTheme);
}
themeSwitcher.addEventListener('click', () => {
const body = document.body;
const currentTheme = body.getAttribute('data-theme');
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
setTheme(newTheme);
localStorage.setItem('theme', newTheme);
});
// Get the author meta tag content and current year
const repoMetaTag = document.querySelector('meta[name="repo"]');
const authorMetaTag = document.querySelector('meta[name="author"]');
const authorName = authorMetaTag ? authorMetaTag.content : '';
const repoURL = repoMetaTag ? repoMetaTag.content : '';
const currentYear = new Date().getFullYear();
// Set the footer content
footerRepoEl.innerHTML = `<a href="https://${repoURL}">${repoURL}</a>`
footerCopyrightEl.innerHTML = `${authorName} ${currentYear}`;
});