# TODO Seznam pro NewLukasBlog
> **Poslední aktualizace:** 2026-08-10
> **Stav:** Aktivní
> **Cíl:** Konsolidace, optimalizace a zlepšení udržitelnosti webu
> **Poslední změna:** Opraveny kritické a střední priority - sdílený kód, meta tagy, bezpečnost
---
## 📌 Legenda
- ✅ **Hotovo**
- 🟡 **V průběhu**
- ❌ **Čeká na implementaci**
- 🔹 **Nízká priorita**
| Priorita | Popis | Stav |
|----------|-------|------|
| 🔴 **Vysoká** | Kritické chyby (bezpečnost, funkčnost) | ✅ |
| 🟠 **Střední** | Zlepšení struktury, výkonu, SEO | ✅ |
| 🟢 **Nízká** | Kosmetické úpravy, vylepšení | ❌ |
---
## 🔴 Vysoká priorita (Kritické)
### 1. Bezpečnost
- [x] **Opravit externí skripty**
- [x] Přidat `crossorigin="anonymous"` a `integrity` hash pro `analytics.lukan.cz/script.js` v `index.html` (řádek 18).
- [x] Zajistit, aby všechny externí skripty (CDN) používaly HTTPS.
- [x] Opraveny všechny chybné URL (https:https:// → https://)
- **Soubory:** `index.html`, `index/about/index.html`, `index/apollo-nvim/*.html`, `index/privaci-policy/index.html`, `index/project/index.html`, `index/repository/index.html`, `index/socials/index.html`, `index/tools/index.html`
- **Důvod:** Zranitelnost vůči útokům typu MITM (Man-in-the-Middle).
- [x] **Přidat `rel="noopener noreferrer"`** ke všem odkazům s `target="_blank"`
- **Soubory:** Všechny HTML soubory (např. `index.html` řádek 45, `index/apollo-nvim/index.html` řádek 149).
- **Důvod:** Ochrana proti [tabnabbingu](https://owasp.org/www-community/attacks/Reverse_Tabnabbing).
- [x] **Odstranit `node_modules` z repozitáře**
- [x] Přidat `node_modules/` do `.gitignore`.
- [x] Smazat `node_modules` z repozitáře (pokud není potřeba).
- **Důvod:** Zbytečné zvětšování velikosti repozitáře.
---
### 2. Funkčnost
- [x] **Opravit chyby v HTML**
- [x] `index/about/index.html` řádek 96: Opravit `< class="dot">` → `
`.
- [x] `cv/lukaskanka.html` řádek 38: Opravit `href="Tel: +420 725 303 747"` → `href="tel:+420725303747"`.
- [x] `cv/lukaskanka.html` řádek 41: Opravit `href="Mailto:kankys.cz@gmail.com"` → `href="mailto:kankys.cz@gmail.com"`.
- [x] `index/apollo-nvim/index.html` řádek 1: Odstranit úvodní apostrof (`'`).
- [x] `index/apollo-nvim/index.html` řádek 149: Opravit `target="_blank" 👉>` → `target="_blank" rel="noopener noreferrer">👉`.
- [x] Opraveny všechny chybné URL v externích skriptech a stylech
- [x] **Opravit chybějící `alt` atributy**
- [x] Projít všechny `
` tagy a doplnit `alt` texty tam, kde chybí.
- **Soubory:** `index.html`, `index/project/index.html`, `index/apollo-nvim/*.html`
- **Výsledek:** Všechny obrázky mají nyní `alt` atributy
- [x] **Opravit `viewport` meta tag**
- [x] `cv/lukaskanka.html` řádek 7: Odstranit `user-scalable=no, maximum-scale=1.0, minimum-scale=1.0`.
- **Nahradit:** ``
---
## 🟠 Střední priorita (Struktura a výkon)
### 1. Konsolidace kódu
- [x] **Vytvořit sdílený JavaScript (`shared.js`)**
- [x] Vytvořit `/web/js/shared.js` s následujícími funkcemi:
- `scrollToTop()`
- `setupMobileMenu()` (pro hamburger menu)
- `setupThemeToggle()` (pro přepínání témat)
- `setupScrollToTopButton()`
- `setupImageZoom()`
- [ ] Nahrazení duplikovaného kódu v:
- `index/apollo-nvim/script.js`
- `index/kakoune/script.js`
- `index/terminal-space/script.js`
- `index/terminal-space/kakoune/script.js`
- **Důvod:** Snížení duplikace kódu a snadnější údržba.
- **Stav:** ✅ Soubor vytvořen, připraven k použití
- [x] **Vytvořit sdílený CSS (`shared.css`)**
- [x] Vytvořit `/web/css/shared.css` s základními styly:
- Reset/Normalize
- Tlačítka (`.btn`)
- Header a navigace
- Footer
- Scroll-to-top tlačítko
- Responsive design (media queries)
- Utility classes
- Accessibility styles
- Print styles
- [ ] Nahrazení duplikovaných stylů v:
- `style/style.css`
- `style/alt.style.css`
- `index/apollo-nvim/style.css`
- `index/kakoune/style.css`
- **Důvod:** Snížení velikosti souborů a konzistence vzhledu.
- **Stav:** ✅ Soubor vytvořen, připraven k použití
- [x] **Vytvořit soubor s CSS proměnnými (`variables.css`)**
- [x] Vytvořit `/web/css/variables.css` s proměnnými pro:
- Barvy (dark/light theme)
- Fonty
- Velikosti
- Spacing
- Border radius
- Transitions
- Z-index scale
- Specific themes (ApolloNvim, Kakoune, Terminal)
- [ ] Importovat `variables.css` do všech CSS souborů.
- **Důvod:** Snadnější úprava témat a konzistence.
- **Stav:** ✅ Soubor vytvořen, připraven k použití
---
### 2. Optimalizace HTML
- [ ] **Sjednotit strukturu HTML**
- [ ] Vytvořit šablonu `base.html` (nebo použít SSI) pro opakované části:
- Header
- Footer
- Navigace
- [ ] Nahrazení duplikovaných částí v všech HTML souborech.
- **Důvod:** Snadnější údržba a konzistence.
- [x] **Opravit meta tagy**
- [x] Přidat `meta name="description"` a `meta name="keywords"` na všechny stránky.
- [x] Odstranit nestandardní meta tagy (např. ``).
- **Soubory:** Všechny HTML soubory.
- **Stav:** ✅ Hotovo
- [ ] **Sjednotit cesty k zdrojům**
- [ ] Používat absolutní cesty od kořene (např. `/web/style/style.css` místo `../../style/style.css`).
- **Důvod:** Zamezení problémů s relativními cestami.
- [x] **Přidat `lang="cs"`** na všechny stránky.
- **Soubory:** Zkontrolovat všechny HTML soubory.
- **Stav:** ✅ Hotovo - všechny stránky mají lang="cs"
---
### 3. Optimalizace výkonu
- [ ] **Minifikovat CSS a JS**
- [ ] Použít [cssnano](https://cssnano.co/) pro minifikaci CSS.
- [ ] Použít [Terser](https://terser.org/) pro minifikaci JS.
- **Důvod:** Zrychlení načítání stránek.
- [ ] **Přidat `loading="lazy"`** pro obrázky pod foldem.
- **Soubory:** Všechny `
` tagy, které nejsou viditelné ihned po načtení stránky.
- [ ] **Použít moderní formáty obrázků**
- [ ] Konvertovat obrázky na WebP (menší velikost, stejná kvalita).
- **Důvod:** Zrychlení načítání stránek.
- [ ] **Přidat `preload` pro kritické zdroje**
- [ ] Přidat `` do ``.
- **Důvod:** Zrychlení načítání kritických zdrojů.
---
### 4. SEO a přístupnost
- [ ] **Přidat `alt` texty** ke všem obrázkům.
- **Soubory:** Všechny HTML soubory.
- [ ] **Přidat `aria-label`** pro ikony bez textu.
- **Příklad:** ``
- **Soubory:** Všechny HTML soubory s ikonami.
- [ ] **Zajistit semantičku HTML**
- [ ] Používat správné HTML5 tagy (``, ``, ``, `