mirror of
https://codeberg.org/Kankys/NewLukasBlog.git
synced 2026-11-11 06:14:36 +01:00
Opravy střední priority - sjednocení cest, lazy loading, minifikace
- Sjednoceny všechny relativní cesty na absolutní (od kořene /web/) - Přidáno loading="lazy" pro všechny obrázky pod foldem - Vytvořeny minifikované verze: - web/js/min/shared.min.js (125 → 3 řádky) - web/css/min/shared.min.css - web/css/min/variables.min.css - Přidány dev dependencies: cssnano, terser - Vytvořen minify.js skript pro budoucí minifikaci Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
c816b42bc8
commit
31833adfb7
52 files changed
+4207
-51
No files matched your search
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
npm notice run npx
|
||||
npm notice run 'terser' js/shared.js
|
||||
function setupMobileMenu(){const menuIcon=document.querySelector(".menu-icon");const menuList=document.querySelector("nav");const hamburgerIcon=document.querySelector(".fa-solid");if(menuIcon&&hamburgerIcon&&menuList){menuIcon.addEventListener("click",()=>{if(hamburgerIcon.classList.contains("fa-bars")){hamburgerIcon.classList.add("fa-xmark");hamburgerIcon.classList.remove("fa-bars");menuList.style.display="block"}else{hamburgerIcon.classList.add("fa-bars");hamburgerIcon.classList.remove("fa-xmark");menuList.style.display="none"}})}}function scrollToTop(){document.body.scrollTop=0;document.documentElement.scrollTop=0}function setupScrollToTopButton(buttonId="scrollToTopBtn"){const scrollToTopBtn=document.getElementById(buttonId);if(scrollToTopBtn){window.onscroll=function(){if(document.body.scrollTop>20||document.documentElement.scrollTop>20){scrollToTopBtn.style.display="block"}else{scrollToTopBtn.style.display="none"}}}}function setupThemeToggle(config={}){const defaults={toggleButtonId:"toggleButton",storageKey:"themePreference",defaultTheme:"dark"};const options={...defaults,...config};const toggleButton=document.getElementById(options.toggleButtonId);if(!toggleButton)return;const savedTheme=localStorage.getItem(options.storageKey)||options.defaultTheme;let isDarkMode=savedTheme==="dark";if(isDarkMode){document.body.classList.add("dark-theme")}else{document.body.classList.remove("dark-theme")}function toggleTheme(){isDarkMode=!isDarkMode;if(isDarkMode){document.body.classList.add("dark-theme");localStorage.setItem(options.storageKey,"dark")}else{document.body.classList.remove("dark-theme");localStorage.setItem(options.storageKey,"light")}if(options.onToggle){options.onToggle(isDarkMode)}}toggleButton.addEventListener("click",toggleTheme)}function setupImageZoom(selector=".picture",scale=2.2){const images=document.querySelectorAll(selector);images.forEach((img,index)=>{img.addEventListener("mouseenter",()=>{img.style.transform=`scale(${scale})`});img.addEventListener("mouseleave",()=>{img.style.transform="scale(1)"})})}document.addEventListener("DOMContentLoaded",function(){setupMobileMenu();setupScrollToTopButton();setupThemeToggle();setupImageZoom()});
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function setupMobileMenu(){const e=document.querySelector(".menu-icon"),t=document.querySelector("nav"),o=document.querySelector(".fa-solid");e&&o&&t&&e.addEventListener("click",()=>{o.classList.contains("fa-bars")?(o.classList.add("fa-xmark"),o.classList.remove("fa-bars"),t.style.display="block"):(o.classList.add("fa-bars"),o.classList.remove("fa-xmark"),t.style.display="none")})}function scrollToTop(){document.body.scrollTop=0,document.documentElement.scrollTop=0}function setupScrollToTopButton(e="scrollToTopBtn"){const t=document.getElementById(e);t&&(window.onscroll=function(){document.body.scrollTop>20||document.documentElement.scrollTop>20?t.style.display="block":t.style.display="none"})}function setupThemeToggle(e={}){const t={toggleButtonId:"toggleButton",storageKey:"themePreference",defaultTheme:"dark",...e},o=document.getElementById(t.toggleButtonId);if(!o)return;let n="dark"===(localStorage.getItem(t.storageKey)||t.defaultTheme);n?document.body.classList.add("dark-theme"):document.body.classList.remove("dark-theme"),o.addEventListener("click",function(){n=!n,n?(document.body.classList.add("dark-theme"),localStorage.setItem(t.storageKey,"dark")):(document.body.classList.remove("dark-theme"),localStorage.setItem(t.storageKey,"light")),t.onToggle&&t.onToggle(n)})}function setupImageZoom(e=".picture",t=2.2){document.querySelectorAll(e).forEach((e,o)=>{e.addEventListener("mouseenter",()=>{e.style.transform=`scale(${t})`}),e.addEventListener("mouseleave",()=>{e.style.transform="scale(1)"})})}document.addEventListener("DOMContentLoaded",function(){setupMobileMenu(),setupScrollToTopButton(),setupThemeToggle(),setupImageZoom()});
|
||||
Reference in new issue
Block a user