Files
NewLukasBlog/web/TODO.md
T
kankys dca15a3ebf Bezpečnostní a funkční opravy
- Přidáno crossorigin="anonymous" pro externí skripty
- Přidáno rel="noopener noreferrer" ke všem odkazům s target="_blank"
- Opraveny chyby v HTML (Tel:, Mailto:, viewport, chybějící ul)
- Odstraněn node_modules z repozitáře
- Vytvořen .gitignore

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-08-09 21:47:14 +02:00

9.8 KiB

TODO Seznam pro NewLukasBlog

Poslední aktualizace: 2026-08-09 Stav: Aktivní Cíl: Konsolidace, optimalizace a zlepšení udržitelnosti webu Poslední změna: Opraveny bezpečnostní problémy a funkční chyby


📌 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

  • Opravit externí skripty

    • Přidat crossorigin="anonymous" a integrity hash pro analytics.lukan.cz/script.js v index.html (řádek 18).
    • Zajistit, aby všechny externí skripty (CDN) používaly HTTPS.
    • Soubory: index.html, index/about/index.html, index/apollo-nvim/*.html
    • Důvod: Zranitelnost vůči útokům typu MITM (Man-in-the-Middle).
  • 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.
  • Odstranit node_modules z repozitáře

    • Přidat node_modules/ do .gitignore.
    • Smazat node_modules z repozitáře (pokud není potřeba).
    • Důvod: Zbytečné zvětšování velikosti repozitáře.

2. Funkčnost

  • Opravit chyby v HTML

    • index/about/index.html řádek 96: Opravit < class="dot"> → <ul class="dot">.
    • cv/lukaskanka.html řádek 38: Opravit href="Tel: +420 725 303 747" → href="tel:+420725303747".
    • cv/lukaskanka.html řádek 41: Opravit href="Mailto:kankys.cz@gmail.com" → href="mailto:kankys.cz@gmail.com".
    • index/apollo-nvim/index.html řádek 1: Odstranit úvodní apostrof (').
    • index/apollo-nvim/index.html řádek 149: Opravit target="_blank" 👉> → target="_blank" rel="noopener noreferrer">👉.
  • Opravit chybějící alt atributy

    • Projít všechny <img> tagy a doplnit alt texty tam, kde chybí.
    • Soubory: index.html, index/project/index.html, index/apollo-nvim/*.html
  • Opravit viewport meta tag

    • cv/lukaskanka.html řádek 7: Odstranit user-scalable=no, maximum-scale=1.0, minimum-scale=1.0.
    • Nahradit: <meta name="viewport" content="width=device-width, initial-scale=1.0">

🟠 Střední priorita (Struktura a výkon)

1. Konsolidace kódu

  • Vytvořit sdílený JavaScript (shared.js)

    • 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)
    • 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.
  • Vytvořit sdílený CSS (shared.css)

    • 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)
    • 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.
  • Vytvořit soubor s CSS proměnnými (variables.css)

    • Vytvořit /web/css/variables.css s proměnnými pro:
      • Barvy (dark/light theme)
      • Fonty
      • Velikosti
    • Importovat variables.css do všech CSS souborů.
    • Důvod: Snadnější úprava témat a konzistence.

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.
  • Opravit meta tagy

    • Přidat meta name="description" a meta name="keywords" na všechny stránky.
    • Odstranit nestandardní meta tagy (např. <meta name="Kankys Matrix" ...>).
    • Soubory: Všechny HTML soubory.
  • 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.
  • Přidat lang="cs" na všechny stránky.

    • Soubory: Zkontrolovat všechny HTML soubory.

3. Optimalizace výkonu

  • Minifikovat CSS a JS

    • Použít cssnano pro minifikaci CSS.
    • Použít Terser pro minifikaci JS.
    • Důvod: Zrychlení načítání stránek.
  • Přidat loading="lazy" pro obrázky pod foldem.

    • Soubory: Všechny <img> 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 <link rel="preload" href="style.css" as="style"> do <head>.
    • 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: <i class="fa fa-home" aria-label="Domů"></i>
    • Soubory: Všechny HTML soubory s ikonami.
  • Zajistit semantičku HTML

    • Používat správné HTML5 tagy (<main>, <section>, <article>, <nav>, <footer>).
    • Zkontrolovat hierarchii nadpisů (<h1> až <h6>).
  • Přidat rel="noopener noreferrer" ke všem externím odkazům.


🟢 Nízká priorita (Vylepšení)

1. Vzhled a UX

  • Sjednotit témata

    • Používat stejné barvy a styly napříč všemi stránkami.
    • Zajistit, aby dark/light mode fungoval konzistentně.
  • Zlepšit mobilní zobrazení

    • Zkontrolovat a opravit responsive design na všech stránkách.
    • Testovat na různých zařízeních.
  • Přidat animace

    • Přidat plynulé přechody (transitions) pro interaktivní prvky.
    • Důvod: Zlepšení uživatelského zážitku.

2. Struktura projektu

  • Přejmenovat soubory

    • Sjednotit přípony na .html (např. index.php → index.html).
    • Opravit chybné názvy souborů (např. index/apollo-nvim/index.html odkazuje na index.php).
  • Organizovat soubory

    • Vytvořit složku /web/css/ a přesunout tam všechny CSS soubory.
    • Vytvořit složku /web/js/ a přesunout tam všechny JS soubory.
    • Vytvořit složku /web/img/ a přesunout tam všechny obrázky.
  • Vytvořit .gitignore

    • Přidat node_modules/, .DS_Store, *.log, atd.

3. Dokumentace

  • Aktualizovat README.md

    • Přidat popis struktury projektu.
    • Přidat návod na lokální spuštění.
    • Přidat informace o použitých technologiích.
  • Vytvořit CONTRIBUTING.md

    • Přidat pokyny pro přispěvatele.
    • Přidat kódovací standardy.

4. Pokročilá vylepšení

  • Použít statický generátor

    • Zvážit použití Eleventy, Hugo, nebo Jekyll.
    • Důvod: Snadnější údržba a automatizace.
  • Přidat Service Worker

    • Implementovat základní PWA (Progressive Web App) funkce.
    • Důvod: Offline přístup a zrychlení načítání.
  • Přidat analytiku

    • Integrovat Plausible nebo Umami pro sledování návštěvnosti.
    • Důvod: Získání přehledu o návštěvnosti.

📅 Plán implementace

Fáze 1: Kritické opravy (1-2 dny)

  • Opravit bezpečnostní problémy (externí skripty, rel="noopener noreferrer").
  • Opravit chyby v HTML (meta tagy, odkazy, alt texty).
  • Odstranit node_modules z repozitáře.

Fáze 2: Konsolidace kódu (2-3 dny)

  • Vytvořit shared.js a shared.css.
  • Vytvořit variables.css.
  • Nahrazení duplikovaného kódu.

Fáze 3: Optimalizace (1-2 dny)

  • Minifikovat CSS a JS.
  • Přidat loading="lazy" a preload.
  • Sjednotit cesty k zdrojům.

Fáze 4: SEO a přístupnost (1 den)

  • Přidat alt texty a aria-label.
  • Zajistit semantičku HTML.

Fáze 5: Vylepšení (1-2 dny)

  • Sjednotit témata a vzhled.
  • Zlepšit mobilní zobrazení.
  • Organizovat soubory.

📝 Poznámky

  • Testování: Po každé změně zkontrolovat funkčnost na různých prohlížečích (Chrome, Firefox, Safari).
  • Validace: Použít nástroje jako W3C Validator pro HTML a CSS.
  • Výkon: Použít Lighthouse pro testování výkonu a přístupnosti.

🔗 Odkazy


Poznámka: Tento seznam bude průběžně aktualizován. Pokud máš nějaké dotazy nebo návrhy, neváhej je přidat!