pridaný responzívny panel a ukladanie stavu podľa URL, pridané verzovanie CSS a JS pomocou MD5 hashov, aktualizovaná dokumentácia
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.