pridaný responzívny panel a ukladanie stavu podľa URL, pridané verzovanie CSS a JS pomocou MD5 hashov, aktualizovaná dokumentácia
61 lines
2.2 KiB
Markdown
61 lines
2.2 KiB
Markdown
# 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:
|
|
|
|
```nginx
|
|
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:
|
|
|
|
```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.
|