pridaná generovaná navigácia z H1–H3 s unikátnymi ID,

pridaný responzívny panel a ukladanie stavu podľa URL,
pridané verzovanie CSS a JS pomocou MD5 hashov,
aktualizovaná dokumentácia
This commit is contained in:
2026-10-26 19:08:34 +01:00
parent 7b39f26c99
commit 715a0e354b
5 changed files with 325 additions and 15 deletions
+29
View File
@@ -6,6 +6,7 @@ Zdrojove subory su v adresari `src/`:
- `src/md2html.php`: vstupny bod konverzie Markdown do HTML.
- `src/markdown.css`: styly vystupneho HTML.
- `src/toc.js`: interaktivny obsah dokumentu bez externych JS zavislosti.
Zavislosti sa instaluju cez `composer install` v koreni projektu do `vendor/`.
Konfiguracia NGINX musi smerovat Markdown poziadavky na `src/md2html.php`.
@@ -29,3 +30,31 @@ Konfiguracia predpoklada projekt v adresari `md2html` pod `root` daneho servera
Subor `fastcgi_params` musi byt dostupny v konfiguracii NGINX.
Po uprave over konfiguraciu prikazom `nginx -t` a nacitaj ju prikazom `nginx -s reload`.
## Obsah dokumentu
Tlacidlo v lavom hornom rohu otvara obsah vytvoreny z nadpisov H1 az H3.
Na desktope panel uvolni miesto vedla dokumentu, na mobile sa zobrazi ako overlay.
Zatvorit ho mozno tlacidlom, klavesom Escape alebo na mobile kliknutim mimo panelu.
Panel ma vlastne scrollovanie a odkazy smeruju na unikatne ID nadpisov.
Existujuce jednoznacne ID zostavaju zachovane.
Stav sa uklada do localStorage pod klucom `md2html:toc:` + pathname + query string,
bez URL fragmentu. Pri nedostupnom ulozisku ovladanie funguje dalej.
Bez JavaScriptu zostava dokument citatelny, navigacne ovladanie je skryte.
## Testovanie
Testy vyzaduju PHP s DOM rozsirenim, nainstalovane Composer zavislosti a Node.js
s podporou `node:test` a `--test-isolation=none`. Nepouzivaju prehliadac ani dalsie balicky.
V PowerShelli z korena projektu spusti:
```powershell
php -l src/md2html.php
node --check src/toc.js
./tests/run.ps1
```
Testy overuju realny vystup Parsedownu a JS spravanie pomocou modelu DOM.
Vizualne rozlozenie, skutocne scrollovanie a ovladanie v prehliadaci treba overit
manualne na desktope aj mobile.