Files
MD2HTML/README.md
T
IgorMino 715a0e354b 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
2026-10-26 19:08:34 +01:00

2.2 KiB

MD2HTML

Koverzia Markdown do HTML, pouzitelne aj pre priame zobrazovanie Markdown suborov pomocou webservera.

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. CSS sa nacitava z //localhost/md2html/src/markdown.css.

Konfiguracia NGINX

Do prislusneho bloku server pridaj:

location ~ \.md$ {
    fastcgi_pass   127.0.0.1:9999;
    fastcgi_param  SCRIPT_FILENAME  $document_root/md2html/src/md2html.php;
    include        fastcgi_params;
}

Poziadavky na subory s priponou .md sa tak spracuju cez md2html/src/md2html.php. Konfiguracia predpoklada projekt v adresari md2html pod root daneho servera (napr. D:/www/md2html pri root D:/www;) a PHP FastCGI na 127.0.0.1:9999. 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:

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.