Pretty && Source : Generátor pohľadných zdrojákov Nedávno som si robil novú stránku pričom som došiel na nepríjemnú skutočnosť: Pokiaľ robím dynamické stránky (PHP & mySQL) vždy je problém (je to zdĺhavé a nechutne pracné) to spraviť tak aby bol výsledný zdroják (HTML/XHTML) aj pozerateľný. Nehovoriac o tom keď vkladám do hotovej šablóny s krásnym formátovaním nejaké HTML kódy. V mojom prípade to bol formátovaný text. Výsledkom býva krásna šablóna prešlahaná nechutným bordelom. Pfuj. Preto som rozmýšlal ako toto nejako obísť. Napadla ma myšlienka parsovania (X)HTML ako takého automaticky. Došiel som na jednoduché pravidlá parsovania takmer akéhokoľvek XML (už aj HTML) do oku-ľahodiaceho výstupu. Výsledkom je vcelku užitočný skript, o ktorý už prejavilo záujem niekoľko ľudí. Ako to funguje? --------------- Základom sú tri polia, ktoré obsahujú mená tagov pričom: prvé pole tagov ($parse_intent) - obsahuje tagy, za ktorými sa bude diať odsadzovanie. Čiže napríklad
alebo . druhé pole tagov ($parse_break) - obsahuje mená tagov, za ktorými bude zalomenie riadku. Toto zalomenie však bude až za zatváracím poprípade nepárovým tagom. Ideálne pre nepárové tagy ako ale aj tretie pole tagov ($parse_static) - obsahuje mená tagov, ktorých obsah sa nebude formátovať. Prečo? Jediným dôvodom bol zatiaľ tag <pre>. Je hádam jasné prečo. Nedávno som ešte pridal jedno doplnkové pole ($tags_single) kvôli parsovaniu HTML zdrojákov. Pretože v HTML nieje jednoduchý systém ako identifikovať nepárový tag. V XML (XHTML) to je jednoduché <br />. Ako mám použiť tento skript na svojej stránke? -------------------------------------------------- Najprv musíš všetok kód generovať do reťazca(string). Tu žiadne echo, printf nepoužívaj ! Teraz už len jednoducho preženieš tento string parserom (ako je to vo vzorovom príklade) a výstup parser jednoducho vypíš (echo,printf). Na čo si mám dávať bacha? ----------------------------- V prvom rade musíš zaručiť (hlavne pri ľudmi generovanom obsahu) aby bol zdroják validný (rozumej pozatvárané tagy, komentáre, ...) inak môže psParser robiť nepredpokladateľné veci. Pri tagoch si však treba dávať na veľké písmená pretože XML (a na neho je Pretty && Source stavaný primárne) je case-sensitive. Nakoniec nastav cestu k parseru v súbore ps-config.php hodnota PS_PATH. (len ak zmeníš meno adresára/cesty) Ďaľšie mini-fičúrie ------------------------ 1. Spôsob vypisovania komentárov (odsadené/neodsadené) Hodnota OUTPUT_COMMENT_INTENTED (true/false) 2. Zmena odsadzovacieho reťazca (pre tých čo majú radšej dve medzeri ako tabulátor) Hodnota OUTPUT_INTENT 3. Pri stránkach kde stačí formátovať iba časť kódu je možné nastaviť štartovací počet tabulátorov. (bázu) Jednoducho cez argument konštruktora psParser($base_intent); Už píšeš blbosti, chcem vidieť či to stojí za to? -------------------------------------------------------- Ukážka parsovaného XHTML dokumentu http://johno.host.sk/knowhow/pretty_source/test.php No toto by sa mi po prdeli hodilo, kde to stiahnem? --------------------------------------------------- http://johno.host.sk/knowhow/pretty_source/ Dúfam, že ti tento skript pomôže a budem rád keď mi pošleš linku na miesto kde to uvidím v praxi. Prípadné bugy, želania, reporty sem alebo na mail. PS. Vďaka hvge za tag|wall, ktorý ma v mnohom inšpiroval. (teda najmä štýlom programovania)